console.c File Reference
`#include "ruby.h"`
`#include "rubyio.h"`

Go to the source code of this file.

## Data Structures

struct | rawmode_arg_t

## Macros

#define | SET_LAST_ERROR (0)
#define | InitVM(ext) {void InitVM_##ext(void);InitVM_##ext();}
#define | GetReadFD(fptr) ((fptr)->fd)
#define | GetWriteFD(fptr) get_write_fd(fptr)
#define | FD_PER_IO 2
#define | CONSOLE_DEVICE_FOR_READING CONSOLE_DEVICE

## Typedefs

typedef OpenFile | rb_io_t

## Functions

static rawmode_arg_t * | rawmode_opt (int argc, VALUE *argv, rawmode_arg_t *opts)
static void | set_rawmode (conmode *t, void *arg)
static void | set_cookedmode (conmode *t, void *arg)
static void | set_noecho (conmode *t, void *arg)
static void | set_echo (conmode *t, void *arg)
static int | echo_p (conmode *t)
static int | set_ttymode (int fd, conmode *t, void(*setter)(conmode *, void *), void *arg)
static int | get_write_fd (const rb_io_t *fptr)
static VALUE | ttymode (VALUE io, VALUE(*func)(VALUE), void(*setter)(conmode *, void *), void *arg)
static VALUE | console_raw (int argc, VALUE *argv, VALUE io)
static VALUE | console_set_raw (int argc, VALUE *argv, VALUE io)
static VALUE | console_cooked (VALUE io)
static VALUE | console_set_cooked (VALUE io)
static VALUE | getc_call (VALUE io)
static VALUE | console_getch (int argc, VALUE *argv, VALUE io)
static VALUE | console_noecho (VALUE io)
static VALUE | console_set_echo (VALUE io, VALUE f)
static VALUE | console_echo_p (VALUE io)
static VALUE | console_iflush (VALUE io)
static VALUE | console_oflush (VALUE io)
static VALUE | console_ioflush (VALUE io)
static VALUE | console_dev (VALUE klass)
static VALUE | io_getch (int argc, VALUE *argv, VALUE io)
void | Init_console (void)
void | InitVM_console (void)

## Variables

static ID | id_getc
static ID | id_console

## Macro Definition Documentation

#define CONSOLE_DEVICE_FOR_READING CONSOLE_DEVICE

Referenced by console_dev().

#define FD_PER_IO 2

Definition at line 232 of file console.c.

Referenced by ttymode().

#define GetReadFD | ( |  | fptr | ) | ((fptr)->fd)

Definition at line 214 of file console.c.

Referenced by console_dev(), console_echo_p(), console_iflush(), console_ioflush(), console_set_cooked(), console_set_echo(), console_set_raw(), and ttymode().

#define GetWriteFD | ( |  | fptr | ) | get_write_fd(fptr)

Definition at line 229 of file console.c.

Referenced by console_ioflush(), console_oflush(), and ttymode().

#define InitVM | ( |  | ext | ) | {void InitVM_##ext(void);InitVM_##ext();}

Definition at line 89 of file console.c.

Referenced by Init_console().

#define SET_LAST_ERROR (0)

Definition at line 85 of file console.c.

## Typedef Documentation

typedef OpenFile rb_io_t

Definition at line 13 of file console.c.

## Function Documentation

static VALUE console_cooked | ( | VALUE | io | ) |

static

Definition at line 349 of file console.c.

References NULL, rb_yield(), set_cookedmode(), and ttymode().

Referenced by InitVM_console().

static VALUE console_dev | ( | VALUE | klass | ) |

static

Definition at line 654 of file console.c.

References args, CONSOLE_DEVICE_FOR_READING, FMODE_SYNC, GetOpenFile, GetReadFD, ID2SYM, INT2FIX, INT2NUM(), rb_io_t::mode, rb_io_t::pathv, Qnil, rb_cFile, rb_cIO, rb_class_new_instance(), rb_const_defined(), rb_const_get(), rb_const_set(), rb_io_close(), rb_mod_remove_const(), rb_obj_freeze(), rb_str_new2(), rb_update_max_fd(), RFILE, T_FILE, rb_io_t::tied_io_for_writing, and TYPE.

Referenced by InitVM_console().

static VALUE console_echo_p | ( | VALUE | io | ) |

static

Definition at line 455 of file console.c.

References echo_p(), GetOpenFile, GetReadFD, Qfalse, Qtrue, and rb_sys_fail().

Referenced by InitVM_console().

static VALUE console_getch | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | io
| ) |  |

static

Definition at line 394 of file console.c.

References getc_call(), rawmode_opt(), set_rawmode(), and ttymode().

Referenced by InitVM_console().

static VALUE console_iflush | ( | VALUE | io | ) |

static

Definition at line 579 of file console.c.

References GetOpenFile, GetReadFD, and rb_sys_fail().

Referenced by InitVM_console().

static VALUE console_ioflush | ( | VALUE | io | ) |

static

Definition at line 623 of file console.c.

References GetOpenFile, GetReadFD, GetWriteFD, and rb_sys_fail().

Referenced by InitVM_console().

static VALUE console_noecho | ( | VALUE | io | ) |

static

Definition at line 413 of file console.c.

References NULL, rb_yield(), set_noecho(), and ttymode().

Referenced by InitVM_console().

static VALUE console_oflush | ( | VALUE | io | ) |

static

Definition at line 601 of file console.c.

References GetOpenFile, GetWriteFD, and rb_sys_fail().

Referenced by InitVM_console().

static VALUE console_raw | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | io
| ) |  |

static

Definition at line 304 of file console.c.

References rawmode_opt(), rb_yield(), set_rawmode(), and ttymode().

Referenced by InitVM_console().

static VALUE console_set_cooked | ( | VALUE | io | ) |

static

Definition at line 365 of file console.c.

References GetOpenFile, GetReadFD, NULL, rb_sys_fail(), and set_cookedmode().

Referenced by InitVM_console().

static VALUE console_set_echo | ( | VALUE | io,
|  | VALUE | f
| ) |  |

static

Definition at line 429 of file console.c.

References GetOpenFile, GetReadFD, NULL, rb_sys_fail(), RTEST, set_echo(), and set_noecho().

Referenced by InitVM_console().

static VALUE console_set_raw | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | io
| ) |  |

static

Definition at line 321 of file console.c.

References GetOpenFile, GetReadFD, rawmode_opt(), rb_sys_fail(), and set_rawmode().

Referenced by InitVM_console().

static int echo_p | ( | conmode * | t | ) |

static

Definition at line 190 of file console.c.

Referenced by console_echo_p().

static int get_write_fd | ( | const rb_io_t * | fptr | ) |

inline static

Definition at line 221 of file console.c.

References rb_io_t::fd, GetOpenFile, and rb_io_t::tied_io_for_writing.

static VALUE getc_call | ( | VALUE | io | ) |

static

Definition at line 380 of file console.c.

References rb_funcall2().

Referenced by console_getch().

void Init_console | ( | void |  | ) |

Definition at line 734 of file console.c.

References InitVM, and rb_intern.

void InitVM_console | ( | void |  | ) |

Definition at line 742 of file console.c.

References console_cooked(), console_dev(), console_echo_p(), console_getch(), console_iflush(), console_ioflush(), console_noecho(), console_oflush(), console_raw(), console_set_cooked(), console_set_echo(), console_set_raw(), io_getch(), rb_cIO, rb_define_method(), rb_define_module_under(), and rb_define_singleton_method().

static VALUE io_getch | ( | int | argc,
|  | VALUE * | argv,
|  | VALUE | io
| ) |  |

static

Definition at line 725 of file console.c.

References rb_funcall2(), and rb_intern.

Referenced by InitVM_console().

static rawmode_arg_t* rawmode_opt | ( | int | argc,
|  | VALUE * | argv,
|  | rawmode_arg_t * | opts
| ) |  |

static

Definition at line 100 of file console.c.

References ID2SYM, INT2FIX, NIL_P, NULL, NUM2INT, rb_funcall3(), rb_hash_aref(), rb_intern, rb_scan_args(), rawmode_arg_t::vmin, and rawmode_arg_t::vtime.

Referenced by console_getch(), console_raw(), and console_set_raw().

static void set_cookedmode | ( | conmode * | t,
|  | void * | arg
| ) |  |

static

Definition at line 151 of file console.c.

Referenced by console_cooked(), and console_set_cooked().

static void set_echo | ( | conmode * | t,
|  | void * | arg
| ) |  |

static

Definition at line 178 of file console.c.

Referenced by console_set_echo().

static void set_noecho | ( | conmode * | t,
|  | void * | arg
| ) |  |

static

Definition at line 166 of file console.c.

Referenced by console_noecho(), and console_set_echo().

static void set_rawmode | ( | conmode * | t,
|  | void * | arg
| ) |  |

static

Definition at line 124 of file console.c.

References arg, rawmode_arg_t::vmin, and rawmode_arg_t::vtime.

Referenced by console_getch(), console_raw(), and console_set_raw().

static int set_ttymode | ( | int | fd,
|  | conmode * | t,
|  | void(*)(conmode *, void *) | setter,
|  | void * | arg
| ) |  |

static

Definition at line 202 of file console.c.

Referenced by ttymode().

static VALUE ttymode | ( | VALUE | io,
|  | VALUE(*)(VALUE) | func,
|  | void(*)(conmode *, void *) | setter,
|  | void * | arg
| ) |  |

static

Definition at line 235 of file console.c.

References errno, FD_PER_IO, func, GetOpenFile, GetReadFD, GetWriteFD, Qnil, rb_jump_tag(), rb_protect(), rb_sys_fail(), result, and set_ttymode().

Referenced by console_cooked(), console_getch(), console_noecho(), and console_raw().

## Variable Documentation

ID id_console

static

Definition at line 92 of file console.c.

ID id_getc

static

Definition at line 92 of file console.c.