[#19082] TermIO for ioctl — Shugo Maeda <shugo@...>

前田です。

19 messages 1999/12/01

[#19086] iconv wrapper — nobu.nakada@...

なかだです。

22 messages 1999/12/01
[#19103] Re: iconv wrapper — Hiroshi IGARASHI <igarashi@...> 1999/12/02

いがらしです。

[#19104] Re: iconv wrapper — nobu.nakada@... 1999/12/02

なかだです。

[#19187] Re: iconv wrapper — Hiroshi IGARASHI <igarashi@...> 1999/12/06

いがらしです。

[#19139] 簡易プリプロセッサ epp 0.1 — SASAKI Shunsuke <ele@...17.odn.ne.jp>

どうも。佐々木です。

12 messages 1999/12/03

[#19193] Japanese Regular Expression — Hiroyuki KUROSAKI <noir@...>

はじめまして。黒崎と申します。最近 Ruby を使いはじめました。よろしく

18 messages 1999/12/06
[#19195] Japanese Regular Expression — gotoken@... (GOTO Kentaro) 1999/12/06

In message "[ruby-list:19193] Japanese Regular Expression"

[#19200] Re: Japanese Regular Expression — Hiroyuki KUROSAKI <noir@...> 1999/12/06

gotoken さん、お返事ありがとうございます。

[#19206] Re: Japanese Regular Expression — matz@... (Yukihiro Matsumoto) 1999/12/06

まつもと ゆきひろです

[#19246] 破壊的イテレータ? — Hiroshi Saito <HiroshiSaito@...>

どうも、お世話になっております。サイトウです。

71 messages 1999/12/07
[#19257] Re: 破壊的イテレータ? — Wakou Aoyama <wakou@...> 1999/12/07

青山です。

[#19259] Re: 破壊的イテレータ? — Wakou Aoyama <wakou@...> 1999/12/07

青山です。

[#19278] オブジェクトの代入について — Hiroshi Saito <HiroshiSaito@...> 1999/12/08

サイトウです。

[#19296] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/08

In message "[ruby-list:19278] オブジェクトの代入について"

[#19316] Re: オブジェクトの代入について — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19325] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/09

ごとけんです

[#19328] Re: オブジェクトの代入について — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19331] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/09

ごとけんです

[#19337] Re: オブジェクトの代入について — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19343] Re: オブジェクトの代入について — ogino@... (Ogino Junya) 1999/12/09

荻野ともうします。

[#19351] Re: オブジェクトの代入について — Motomichi Matsuzaki <mzaki@...> 1999/12/09

[#19358] Re: オブジェクトの代入について — gotoken@... (GOTO Kentaro) 1999/12/09

ごとけんです

[#19366] Re: オブジェクトの代入について — Motomichi Matsuzaki <mzaki@...> 1999/12/10

[#19249] ruby story ? — "Kikutani, Makoto" <kikutani@...>

Maya Stodteつー人からRuby storyについて話を聞きたいのだが、

29 messages 1999/12/07

[#19441] 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

49 messages 1999/12/13
[#19470] Re: 自動翻訳プロジェクト — Wakou Aoyama <wakou@...> 1999/12/13

青山です。

[#19471] Re: 自動翻訳プロジェクト — Wakou Aoyama <wakou@...> 1999/12/13

青山です。

[#19474] Re: 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto) 1999/12/14

まつもと ゆきひろです

[#19481] Re: 自動翻訳プロジェクト — nakajima kengo<ringo@...> 1999/12/14

[#19482] Re: 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto) 1999/12/14

まつもと ゆきひろです

[#19483] Re: 自動翻訳プロジェクト — nakajima kengo<ringo@...> 1999/12/14

[#23719] Re: 自動翻訳プロジェクト — TAKAHASHI Masayoshi <maki@...> 2000/07/06

高橋征義です。

[#23722] Re: 自動翻訳プロジェクト — matz@... (Yukihiro Matsumoto) 2000/07/06

まつもと ゆきひろです

[#23723] Re: 自動翻訳プロジェクト — TAKAHASHI Masayoshi <maki@...> 2000/07/06

高橋征義です。

[#19442] ClipBoard I/O 対応 — Itou-T15@...

クリップボードI/O はたいていファイルI/Oの様に抽象化されていないが

47 messages 1999/12/13
[#19465] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/13

[#19467] Re: ClipBoard I/O 対応 — matz@... (Yukihiro Matsumoto) 1999/12/13

まつもと ゆきひろです

[#19508] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/14

[#19523] Re: ClipBoard I/O 対応 — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/12/15

なひです.

[#19551] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/15

[#19556] Re: ClipBoard I/O 対応 — matz@... (Yukihiro Matsumoto) 1999/12/15

まつもと ゆきひろです

[#19565] Re: ClipBoard I/O 対応 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/15

[#19456] mod_ruby & eRuby — Wakou Aoyama <wakou@...>

青山です。

20 messages 1999/12/13
[#19490] Re: mod_ruby & eRuby — TAKAHASHI Masayoshi <maki@...> 1999/12/14

mod_ruby初心者の高橋征義です。

[#19484] Ruby Application Archive — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1999/12/14

[#19578] ruby-list の過去ログの作り方 — Momotaro Nishiumi <momotaro@...>

はじめまして。ももたろといいますm(_ _)m

48 messages 1999/12/16
[#19581] Re: ruby-list の過去ログの作り方 — Shin-ichiro Hara <sinara@...> 1999/12/16

原です。

[#19583] Re: ruby-list の過去ログの作り方 — Momotaro Nishiumi <momotaro@...> 1999/12/16

こん○○は〜。ももたろです。

[#19622] Re: ruby-list の過去ログの作り方 — Shin-ichiro Hara <sinara@...> 1999/12/17

原です。

[#19626] Re: ruby-list の過去ログの作り方 — matz@... (Yukihiro Matsumoto) 1999/12/17

まつもと ゆきひろです

[#19630] Re: ruby-list の過去ログの作り方 — Wakou Aoyama <wakou@...> 1999/12/17

青山です。

[#19698] Re: ruby-list の過去ログの作り方 — Shin-ichiro Hara <sinara@...> 1999/12/19

原です。

[#19722] [PROPOSAL] Reimplement 'blade' (Re: ruby-list =?ISO-2022-JP? B??= の過去ログの作り方) — Hideto ISHIBASHI <s34204@...> 1999/12/20

石橋秀仁です。

[#19690] Book : rb_obj_call_init() — "Shigeo Kobayashi" <shigeo@...>

小林です。

29 messages 1999/12/19

[#19776] [mswin32] TCPSocket::new() raises Errno::ENOENT — "NAKAMURA, Hiroshi" <nakahiro@...>

なひです.

17 messages 1999/12/21
[#19789] Re: [mswin32] TCPSocket::new() raises Errno::ENOENT — Koji Oda <oda@...1.qnes.nec.co.jp> 1999/12/21

小田@QNES です。

[#19858] Re: [mswin32] TCPSocket::new() raises Errno::ENOENT — Katsuyuki Komatsu <komatsu@...> 1999/12/23

小松です。

[#19934] RD with method index (again) — Koji Arai <JCA02266@...>

新井です。

78 messages 1999/12/27
[#20160] Re: RD with method index (again) — Koji Arai <JCA02266@...> 2000/01/10

新井です。

[#19937] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 1999/12/27

Toshです。

[#19962] Re: RD with method index (again) — Koji Arai <JCA02266@...> 1999/12/28

新井です。

[#19988] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 1999/12/29

Toshです。

[#20012] Re: RD with method index (again) — nobu.nakada@... 2000/01/02

なかだです。

[#20016] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/01/02

Toshです。

[#20017] Re: RD with method index (again) — Koji Arai <JCA02266@...> 2000/01/02

新井です。

[#20022] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/01/03

Toshです。

[#20025] Re: RD with method index (again) — Koji Arai <JCA02266@...> 2000/01/03

新井です。

[#20032] Re: RD with method index (again) — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp> 2000/01/03

Toshです。

[#19976] Tell me your favorite tools — Yasushi Shoji <yashi@...>

やすしです。

25 messages 1999/12/28
[#20010] Re: Tell me your favorite tools — Yasushi Shoji <yashi@...> 2000/01/01

やすしです。

[#21496] Re: Tell me your favorite tools — OZAWA Sakuro <crouton@...> 2000/03/16

さくです。

[ruby-list:19082] TermIO for ioctl

From: Shugo Maeda <shugo@...>
Date: 1999-12-01 10:48:21 UTC
List: ruby-list #19082
前田です。

今Linuxでしか使わないプログラムを書いてまして、sttyを呼ぶのが何と
なく嫌だったので、代りにioctlを使おうと思ったのですが、あまりに面
倒だったのでこんなクラスを書いてみました。
# というか、ほとんど定数定義してるだけですが。

    tbuf = TermIO.new(io)
    tbuf.iflag = 0
    tbuf.oflag = 0
    tbuf.lflag &= ~TermIO::ISIG
    tbuf.lflag &= ~TermIO::ICANON
    tbuf.lflag &= ~TermIO::XCASE
    tbuf.cflag |= TermIO::CS8
    tbuf.cflag &= ~TermIO::CRTSCTS
    tbuf.set(io)

移植性ゼロです(きっぱり)。
# PLATFORMを見るようにすれば少しはマシになるかもしれないけど、自
# 分ではやりたくないなあ:-p

class TermIO
  TERMIO_SIZE = 10
  TERMIO_FORMAT = "S4C2"

  TCGETA 	= 0x5405
  TCSETA 	= 0x5406
  TCSETSW	= 0x5403
  TCSETSF	= 0x5404
  
  # c_cc characters
  VINTR		= 0
  VQUIT		= 1
  VERASE	= 2
  VKILL		= 3
  VEOF		= 4
  VTIME		= 5
  VMIN		= 6
  VSWTC		= 7
  VSTART	= 8
  VSTOP		= 9
  VSUSP		= 10
  VEOL		= 11
  VREPRINT	= 12
  VDISCARD	= 13
  VWERASE	= 14
  VLNEXT	= 15
  VEOL2		= 16
  
  # c_iflag bits
  IGNBRK	= 0000001
  BRKINT	= 0000002
  IGNPAR	= 0000004
  PARMRK	= 0000010
  INPCK		= 0000020
  ISTRIP	= 0000040
  INLCR		= 0000100
  IGNCR		= 0000200
  ICRNL		= 0000400
  IUCLC		= 0001000
  IXON		= 0002000
  IXANY		= 0004000
  IXOFF		= 0010000
  IMAXBEL	= 0020000

  # c_oflag bits
  OPOST		= 0000001
  OLCUC		= 0000002
  ONLCR		= 0000004
  OCRNL		= 0000010
  ONOCR		= 0000020
  ONLRET	= 0000040
  OFILL		= 0000100
  OFDEL		= 0000200
  NLDLY		= 0000400
  NL0		= 0000000
  NL1		= 0000400
  CRDLY		= 0003000
  CR0		= 0000000
  CR1		= 0001000
  CR2		= 0002000
  CR3		= 0003000
  TABDLY	= 0014000
  TAB0		= 0000000
  TAB1		= 0004000
  TAB2		= 0010000
  TAB3		= 0014000
  XTABS		= 0014000
  BSDLY		= 0020000
  BS0		= 0000000
  BS1		= 0020000
  VTDLY		= 0040000
  VT0		= 0000000
  VT1		= 0040000
  FFDLY		= 0100000
  FF0		= 0000000
  FF1		= 0100000

  # c_cflag bit meaning
  CBAUD		= 0010017
  B0		= 0000000
  B50		= 0000001
  B75		= 0000002
  B110		= 0000003
  B134		= 0000004
  B150		= 0000005
  B200		= 0000006
  B300		= 0000007
  B600		= 0000010
  B1200		= 0000011
  B1800		= 0000012
  B2400		= 0000013
  B4800		= 0000014
  B9600		= 0000015
  B19200	= 0000016
  B38400	= 0000017
  EXTA		= B19200
  EXTB		= B38400
  CSIZE		= 0000060
  CS5		= 0000000
  CS6		= 0000020
  CS7		= 0000040
  CS8		= 0000060
  CSTOPB	= 0000100
  CREAD		= 0000200
  PARENB	= 0000400
  PARODD	= 0001000
  HUPCL		= 0002000
  CLOCAL	= 0004000
  CBAUDEX	= 0010000
  B57600	= 0010001
  B115200	= 0010002
  B230400	= 0010003
  B460800	= 0010004
  B500000	= 0010005
  B576000	= 0010006
  B921600	= 0010007
  B1000000	= 0010010
  B1152000	= 0010011
  B1500000	= 0010012
  B2000000	= 0010013
  B2500000	= 0010014
  B3000000	= 0010015
  B3500000	= 0010016
  B4000000	= 0010017
  CIBAUD	= 002003600000
  CMSPAR	= 010000000000
  CRTSCTS	= 020000000000
  
  # c_lflag bits
  ISIG		= 0000001
  ICANON	= 0000002
  XCASE		= 0000004
  ECHO		= 0000010
  ECHOE		= 0000020
  ECHOK		= 0000040
  ECHONL	= 0000100
  NOFLSH	= 0000200
  TOSTOP	= 0000400
  ECHOCTL	= 0001000
  ECHOPRT	= 0002000
  ECHOKE	= 0004000
  FLUSHO	= 0010000
  PENDIN	= 0040000
  IEXTEN	= 0100000

  def initialize(io)
    s = "\0" * TERMIO_SIZE
    io.ioctl(TCGETA, s)
    @array = s.unpack(TERMIO_FORMAT)
  end

  def to_s
    return @array.pack(TERMIO_FORMAT)
  end

  def set(io)
    io.ioctl(TCSETA, to_s)
  end

  def setsw(io)
    io.ioctl(TCSETSW, to_s)
  end

  def setsf(io)
    io.ioctl(TCSETSF, to_s)
  end

  def iflag
    return @array[0]
  end

  def iflag=(val)
    @array[0] = val
  end

  def oflag
    return @array[1]
  end

  def oflag=(val)
    @array[1] = val
  end

  def cflag
    return @array[2]
  end

  def cflag=(val)
    @array[2] = val
  end

  def lflag
    return @array[3]
  end

  def lflag=(val)
    @array[3] = val
  end

  def line
    return @array[4]
  end

  def line=(val)
    @array[4] = val
  end

  def cc
    return @array[5]
  end

  def cc=(val)
    @array[5] = val
  end
end

-- 
前田 修吾

In This Thread

Prev Next