]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/base/lib_newterm.c
ncurses 5.9 - patch 20141101
[ncurses.git] / ncurses / base / lib_newterm.c
index 5318ba4e81ea7b3fa634022e5ae70abd970a4691..edbf956da04ef7321f35c38fb7bd0dc4c487504d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2013,2014 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            *
@@ -48,7 +48,7 @@
 
 #include <tic.h>
 
-MODULE_ID("$Id: lib_newterm.c,v 1.87 2011/04/16 16:42:10 tom Exp $")
+MODULE_ID("$Id: lib_newterm.c,v 1.92 2014/04/26 18:00:39 tom Exp $")
 
 #ifdef USE_TERM_DRIVER
 #define NumLabels      InfoOf(SP_PARM).numlabels
@@ -181,7 +181,7 @@ NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx
     START_TRACE();
     T((T_CALLED("newterm(%p, \"%s\", %p,%p)"),
        (void *) SP_PARM,
-       name,
+       (name ? name : ""),
        (void *) ofp,
        (void *) ifp));
 
@@ -200,9 +200,6 @@ NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx
     INIT_TERM_DRIVER();
     /* this loads the capability entry, then sets LINES and COLS */
     if (
-#if NCURSES_SP_FUNCS
-          SP_PARM->_prescreen &&
-#endif
           TINFO_SETUP_TERM(&new_term, name,
                            fileno(_ofp), &errret, FALSE) != ERR) {
 
@@ -279,7 +276,8 @@ NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx
            NCURSES_SP_NAME(typeahead) (NCURSES_SP_ARGx fileno(_ifp));
 #ifdef TERMIOS
            SP_PARM->_use_meta = ((new_term->Ottyb.c_cflag & CSIZE) == CS8 &&
-                                 !(new_term->Ottyb.c_iflag & ISTRIP));
+                                 !(new_term->Ottyb.c_iflag & ISTRIP)) ||
+               USE_KLIBC_KBD;
 #else
            SP_PARM->_use_meta = FALSE;
 #endif
@@ -305,8 +303,8 @@ NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx
 
            /* compute movement costs so we can do better move optimization */
 #ifdef USE_TERM_DRIVER
-           TCBOf(SP_PARM)->drv->scinit(SP_PARM);
-#else
+           TCBOf(SP_PARM)->drv->td_scinit(SP_PARM);
+#else /* ! USE_TERM_DRIVER */
            /*
             * Check for mismatched graphic-rendition capabilities.  Most SVr4
             * terminfo trees contain entries that have rmul or rmso equated to
@@ -319,13 +317,16 @@ NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx
 #define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode))
            SP_PARM->_use_rmso = SGR0_TEST(exit_standout_mode);
            SP_PARM->_use_rmul = SGR0_TEST(exit_underline_mode);
+#if USE_ITALIC
+           SP_PARM->_use_ritm = SGR0_TEST(exit_italics_mode);
+#endif
 
            /* compute movement costs so we can do better move optimization */
            _nc_mvcur_init();
 
            /* initialize terminal to a sane state */
            _nc_screen_init();
-#endif
+#endif /* USE_TERM_DRIVER */
 
            /* Initialize the terminal line settings. */
            _nc_initscr(NCURSES_SP_ARG);