home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Spezial / SPEZIAL2_97.zip / SPEZIAL2_97.iso / ANWEND / EDITOR / NVI179B / NVI179B.ZIP / tk / tk_screen.c < prev    next >
C/C++ Source or Header  |  1996-06-17  |  1KB  |  87 lines

  1. /*-
  2.  * Copyright (c) 1993, 1994
  3.  *    The Regents of the University of California.  All rights reserved.
  4.  * Copyright (c) 1993, 1994, 1995, 1996
  5.  *    Keith Bostic.  All rights reserved.
  6.  *
  7.  * See the LICENSE file for redistribution information.
  8.  */
  9.  
  10. #include "config.h"
  11.  
  12. #ifndef lint
  13. static const char sccsid[] = "@(#)tk_screen.c    8.9 (Berkeley) 5/24/96";
  14. #endif /* not lint */
  15.  
  16. #include <sys/types.h>
  17. #include <sys/queue.h>
  18.  
  19. #include <bitstring.h>
  20. #include <errno.h>
  21. #include <signal.h>
  22. #include <stdio.h>
  23. #include <stdlib.h>
  24. #include <string.h>
  25. #include <termios.h>
  26. #include <unistd.h>
  27.  
  28. #include "../common/common.h"
  29. #include "tki.h"
  30.  
  31. /*
  32.  * tk_screen --
  33.  *    Initialize/shutdown the Tcl/Tk screen.
  34.  *
  35.  * PUBLIC: int tk_screen __P((SCR *, u_int32_t));
  36.  */
  37. int
  38. tk_screen(sp, flags)
  39.     SCR *sp;
  40.     u_int32_t flags;
  41. {
  42.     TK_PRIVATE *tkp;
  43.  
  44.     tkp = TKP(sp);
  45.  
  46.     /* See if we're already in the right mode. */
  47.     if (LF_ISSET(SC_VI) && F_ISSET(sp, SC_SCR_VI))
  48.         return (0);
  49.  
  50.     /* Ex isn't possible. */
  51.     if (LF_ISSET(SC_EX))
  52.         return (1);
  53.  
  54.     /* Initialize terminal based information. */
  55.     if (tk_term_init(sp)) 
  56.         return (1);
  57.  
  58.     /* Put up the first file name. */
  59.     if (tk_rename(sp))
  60.         return (1);
  61.  
  62.     F_SET(tkp, TK_SCR_VI_INIT);
  63.     return (0);
  64. }
  65.  
  66. /*
  67.  * tk_quit --
  68.  *    Shutdown the screens.
  69.  *
  70.  * PUBLIC: int tk_quit __P((GS *));
  71.  */
  72. int
  73. tk_quit(gp)
  74.     GS *gp;
  75. {
  76.     TK_PRIVATE *tkp;
  77.     int rval;
  78.  
  79.     /* Clean up the terminal mappings. */
  80.     rval = tk_term_end(gp);
  81.  
  82.     tkp = GTKP(gp);
  83.     F_CLR(tkp, TK_SCR_VI_INIT);
  84.  
  85.     return (rval);
  86. }
  87.