tty.cxx File Reference

#include "compat.h"
#include "sys.h"
#include "tty.h"
#include "el.h"
#include "errno.h"
#include "stdio.h"

Go to the source code of this file.

Classes

struct  TTYModes_t
struct  TTYMap_t

Defines

#define tty_getty(el, td)   tcgetattr((el)->fInFD, (td))
#define tty_setty(el, td)   tcsetattr((el)->fInFD, TCSADRAIN, (td))
#define tty__gettabs(td)   ((((td)->c_oflag & TAB3) == TAB3) ? 0 : 1)
#define tty__geteightbit(td)   (((td)->c_cflag & CSIZE) == CS8)
#define tty__cooked_mode(td)   ((td)->c_lflag & ICANON)
#define t_qu   t_ts

Functions

el_private void tty__getchar (struct termios *, unsigned char *)
el_private void tty__setchar (struct termios *, unsigned char *)
el_private speed_t tty__getspeed (struct termios *)
el_private int tty_setup (EditLine_t *)
int tty_can_output (void)
el_protected int tty_init (EditLine_t *el)
el_protected void tty_end (EditLine_t *)
el_protected void tty_bind_char (EditLine_t *el, int force)
el_protected int tty_rawmode (EditLine_t *el)
el_protected int tty_cookedmode (EditLine_t *el)
el_protected int tty_quotemode (EditLine_t *el)
el_protected int tty_noquotemode (EditLine_t *el)
el_protected int tty_stty (EditLine_t *el, int, const char **cargv)

Variables

el_private const TTYPerm_t ttyperm
el_private const TTYChar_t ttychar
el_private const TTYMap_t tty_map []
el_private const TTYModes_t ttymodes []
bool tty_need_to_run_setup = false


Define Documentation

#define t_qu   t_ts

Definition at line 467 of file tty.cxx.

#define tty__cooked_mode ( td   )     ((td)->c_lflag & ICANON)

Definition at line 460 of file tty.cxx.

Referenced by tty_rawmode(), and tty_setup().

#define tty__geteightbit ( td   )     (((td)->c_cflag & CSIZE) == CS8)

Definition at line 459 of file tty.cxx.

Referenced by tty_rawmode(), and tty_setup().

#define tty__gettabs ( td   )     ((((td)->c_oflag & TAB3) == TAB3) ? 0 : 1)

Definition at line 458 of file tty.cxx.

Referenced by tty_rawmode(), and tty_setup().

#define tty_getty ( el,
td   )     tcgetattr((el)->fInFD, (td))

Definition at line 455 of file tty.cxx.

Referenced by tty_rawmode(), and tty_setup().

#define tty_setty ( el,
td   )     tcsetattr((el)->fInFD, TCSADRAIN, (td))

Definition at line 456 of file tty.cxx.

Referenced by tty_cookedmode(), tty_noquotemode(), and tty_quotemode().


Function Documentation

el_private void tty__getchar ( struct termios *  ,
unsigned char *   
)

Definition at line 627 of file tty.cxx.

References C_DISCARD, C_DSUSP, C_DSWTCH, C_EOF, C_EOL, C_EOL2, C_ERASE, C_ERASE2, C_INTR, C_KILL, C_KILL2, C_LNEXT, C_MIN, C_PAGE, C_PGOFF, C_QUIT, C_REPRINT, C_START, C_STATUS, C_STOP, C_SUSP, C_SWTCH, C_TIME, and C_WERASE.

Referenced by tty_rawmode(), and tty_setup().

el_private speed_t tty__getspeed ( struct termios *   ) 

Definition at line 613 of file tty.cxx.

Referenced by tty_rawmode(), and tty_setup().

el_private void tty__setchar ( struct termios *  ,
unsigned char *   
)

Definition at line 707 of file tty.cxx.

References C_DISCARD, C_DSUSP, C_DSWTCH, C_EOF, C_EOL, C_EOL2, C_ERASE, C_ERASE2, C_INTR, C_KILL, C_KILL2, C_LNEXT, C_MIN, C_PAGE, C_PGOFF, C_QUIT, C_REPRINT, C_START, C_STATUS, C_STOP, C_SUSP, C_SWTCH, C_TIME, and C_WERASE.

Referenced by tty_rawmode().

el_protected void tty_bind_char ( EditLine_t el,
int  force 
)

Definition at line 787 of file tty.cxx.

References ED_IO, ElMap_t::fAlt, TTYMap_t::fBind, ElMap_t::fEmacs, ElMap_t::fKey, EditLine_t::fMap, TTYMap_t::fNCh, TTYMap_t::fOCh, EditLine_t::fTTY, ElMap_t::fType, ElMap_t::fVic, ElMap_t::fVii, if(), key_clear(), MAP_VI, NULL, and ElTTY_t::t_c.

Referenced by map_init_emacs(), map_init_vi(), and tty_rawmode().

int tty_can_output ( void   ) 

Definition at line 474 of file tty.cxx.

References STDOUT_FILENO.

Referenced by prompt_print(), sig_handler(), and tty_setup().

el_protected int tty_cookedmode ( EditLine_t el  ) 

Definition at line 1013 of file tty.cxx.

References EDIT_DISABLED, EX_IO, EditLine_t::fErrFile, EditLine_t::fFlags, fprintf(), EditLine_t::fTTY, strerror(), ElTTY_t::t_mode, tty_setty, tty_setup(), and void.

Referenced by el_reset(), readline(), and sig_handler().

el_protected void tty_end ( EditLine_t  ) 

Definition at line 604 of file tty.cxx.

Referenced by el_end().

el_protected int tty_init ( EditLine_t el  ) 

Definition at line 590 of file tty.cxx.

References _POSIX_VDISABLE, EX_IO, EditLine_t::fTTY, ElTTY_t::t_c, ElTTY_t::t_mode, ElTTY_t::t_t, ElTTY_t::t_vdisable, tty_setup(), ttyperm, and void.

Referenced by el_init().

el_protected int tty_noquotemode ( EditLine_t el  ) 

Definition at line 1086 of file tty.cxx.

References ED_IO, EditLine_t::fErrFile, fprintf(), EditLine_t::fTTY, QU_IO, strerror(), ElTTY_t::t_mode, tty_setty, tty_setup(), and void.

Referenced by ed_quoted_insert(), and setEcho().

el_protected int tty_quotemode ( EditLine_t el  ) 

Definition at line 1045 of file tty.cxx.

References EditLine_t::fErrFile, fprintf(), EditLine_t::fTTY, MD_CTL, MD_INP, MD_LIN, MD_OUT, QU_IO, strerror(), TTYPerm_t::t_clrmask, ElTTY_t::t_mode, TTYPerm_t::t_setmask, ElTTY_t::t_t, tty_setty, tty_setup(), and void.

Referenced by ed_quoted_insert(), and setEcho().

el_protected int tty_rawmode ( EditLine_t el  ) 

Definition at line 835 of file tty.cxx.

References C_NCC, C_SH, ED_IO, EDIT_DISABLED, EL_CAN_TAB, EX_IO, EditLine_t::fErrFile, EditLine_t::fFlags, fprintf(), EditLine_t::fTTY, i, MD_CHAR, MD_CTL, MD_INP, MD_LIN, MD_OUT, QU_IO, strerror(), ElTTY_t::t_c, TTYPerm_t::t_clrmask, ElTTY_t::t_eight, ElTTY_t::t_mode, TTYPerm_t::t_setmask, ElTTY_t::t_speed, ElTTY_t::t_t, ElTTY_t::t_tabs, ElTTY_t::t_ts, ElTTY_t::t_vdisable, TS_IO, tty__cooked_mode, tty__getchar(), tty__geteightbit, tty__getspeed(), tty__gettabs, tty__setchar(), tty_bind_char(), tty_getty, tty_setup(), and void.

Referenced by readline(), and sig_handler().

el_private int tty_setup ( EditLine_t  ) 

Definition at line 485 of file tty.cxx.

References C_NCC, ED_IO, EX_IO, EditLine_t::fErrFile, fprintf(), EditLine_t::fTTY, MD_CTL, MD_INP, MD_LIN, MD_OUT, strerror(), ElTTY_t::t_c, TTYPerm_t::t_clrmask, ElTTY_t::t_eight, TTYPerm_t::t_setmask, ElTTY_t::t_speed, ElTTY_t::t_t, ElTTY_t::t_tabs, ElTTY_t::t_ts, ElTTY_t::t_vdisable, TS_IO, tty__cooked_mode, tty__getchar(), tty__geteightbit, tty__getspeed(), tty__gettabs, tty_can_output(), tty_getty, and void.

Referenced by tty_cookedmode(), tty_init(), tty_noquotemode(), tty_quotemode(), and tty_rawmode().

el_protected int tty_stty ( EditLine_t el,
int  ,
const char **  cargv 
)

Definition at line 1114 of file tty.cxx.

References d, ED_IO, EX_IO, EditLine_t::fErrFile, ElCoord_t::fH, EditLine_t::fOutFile, fprintf(), ElTerm_t::fSize, EditLine_t::fTerm, EditLine_t::fTTY, i, if(), len, m, name, NULL, QU_IO, s, TTYPerm_t::t_clrmask, TTYPerm_t::t_name, TTYPerm_t::t_setmask, ElTTY_t::t_t, void, and x.

Referenced by el_builtins_init(), el_get(), and el_set().


Variable Documentation

el_private const TTYMap_t tty_map[]

Definition at line 129 of file tty.cxx.

bool tty_need_to_run_setup = false

Definition at line 479 of file tty.cxx.

el_private const TTYChar_t ttychar

Initial value:

 {
   {
      CINTR, CQUIT, CERASE, CKILL,
      CEOF, CEOL, CEOL2, CSWTCH,
      CDSWTCH, CERASE2, CSTART, CSTOP,
      CWERASE, CSUSP, CDSUSP, CREPRINT,
      CDISCARD, CLNEXT, CSTATUS, CPAGE,
      CPGOFF, CKILL2, CBRK, CMIN,
      CTIME
   },
   {
      CINTR, CQUIT, CERASE, CKILL,
      _POSIX_VDISABLE, _POSIX_VDISABLE, _POSIX_VDISABLE, _POSIX_VDISABLE,
      _POSIX_VDISABLE, CERASE2, CSTART, CSTOP,
      _POSIX_VDISABLE, CSUSP, _POSIX_VDISABLE, _POSIX_VDISABLE,
      CDISCARD, _POSIX_VDISABLE, _POSIX_VDISABLE, _POSIX_VDISABLE,
      _POSIX_VDISABLE, _POSIX_VDISABLE, _POSIX_VDISABLE, 1,
      0
   },
   {
      0, 0, 0, 0,
      0, 0, 0, 0,
      0, 0, 0, 0,
      0, 0, 0, 0,
      0, 0, 0, 0,
      0, 0, 0, 0,
      0
   }
}

Definition at line 99 of file tty.cxx.

el_private const TTYModes_t ttymodes[]

Definition at line 166 of file tty.cxx.

el_private const TTYPerm_t ttyperm

Initial value:

 {
   {
      { "iflag:", ICRNL, (INLCR | IGNCR) },
      { "oflag:", (OPOST | ONLCR), ONLRET },
      { "cflag:", 0, 0 },
      { "lflag:", (ISIG | ICANON | ECHO | ECHOE | ECHOCTL | IEXTEN),
        (NOFLSH | ECHONL | EXTPROC | FLUSHO) },
      { "chars:", 0, 0 },
   },
   {
      { "iflag:", (INLCR | ICRNL), IGNCR },
      { "oflag:", (OPOST | ONLCR), ONLRET },
      { "cflag:", 0, 0 },
      { "lflag:", ISIG,
        (NOFLSH | ICANON | ECHO | ECHOK | ECHONL | EXTPROC | IEXTEN | FLUSHO) },
      { "chars:", (C_SH(C_MIN) | C_SH(C_TIME) | C_SH(C_SWTCH) | C_SH(C_DSWTCH) |
                   C_SH(C_SUSP) | C_SH(C_DSUSP) | C_SH(C_EOL) | C_SH(C_DISCARD) |
                   C_SH(C_PGOFF) | C_SH(C_PAGE) | C_SH(C_STATUS)), 0 }
   },
   {
      { "iflag:", 0, IXON | IXOFF | INLCR | ICRNL },
      { "oflag:", 0, 0 },
      { "cflag:", 0, 0 },
      { "lflag:", 0, ISIG | IEXTEN },
      { "chars:", 0, 0 },
   }
}

Definition at line 71 of file tty.cxx.

Referenced by tty_init().


Generated on Tue Jul 5 15:57:25 2011 for ROOT_528-00b_version by  doxygen 1.5.1