Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
08998072
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
08998072
编写于
1月 25, 2015
作者:
B
bors
浏览文件
操作
浏览文件
下载
差异文件
Auto merge of #20613 - dgriffen:master, r=alexcrichton
上级
9bac0179
ec88426e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
40 addition
and
1 deletion
+40
-1
src/libstd/sys/unix/tty.rs
src/libstd/sys/unix/tty.rs
+40
-1
未找到文件。
src/libstd/sys/unix/tty.rs
浏览文件 @
08998072
...
...
@@ -11,14 +11,22 @@
use
prelude
::
v1
::
*
;
use
sys
::
fs
::
FileDesc
;
use
libc
::{
self
,
c_int
};
use
libc
::{
self
,
c_int
,
c_ulong
,
funcs
};
use
io
::{
self
,
IoResult
,
IoError
};
use
sys
::
c
;
use
sys_common
;
pub
struct
TTY
{
pub
fd
:
FileDesc
,
}
#[cfg(any(target_os
=
"macos"
,
target_os
=
"freebsd"
))]
const
TIOCGWINSZ
:
c_ulong
=
0x40087468
;
#[cfg(any(target_os
=
"linux"
,
target_os
=
"android"
))]
const
TIOCGWINSZ
:
c_ulong
=
0x00005413
;
impl
TTY
{
pub
fn
new
(
fd
:
c_int
)
->
IoResult
<
TTY
>
{
if
unsafe
{
libc
::
isatty
(
fd
)
}
!=
0
{
...
...
@@ -41,8 +49,39 @@ pub fn write(&mut self, buf: &[u8]) -> IoResult<()> {
pub
fn
set_raw
(
&
mut
self
,
_
raw
:
bool
)
->
IoResult
<
()
>
{
Err
(
sys_common
::
unimpl
())
}
#[cfg(any(target_os
=
"linux"
,
target_os
=
"android"
,
target_os
=
"macos"
,
target_os
=
"freebsd"
))]
pub
fn
get_winsize
(
&
mut
self
)
->
IoResult
<
(
int
,
int
)
>
{
unsafe
{
#[repr(C)]
struct
winsize
{
ws_row
:
u16
,
ws_col
:
u16
,
ws_xpixel
:
u16
,
ws_ypixel
:
u16
}
let
mut
size
=
winsize
{
ws_row
:
0
,
ws_col
:
0
,
ws_xpixel
:
0
,
ws_ypixel
:
0
};
if
c
::
ioctl
(
self
.fd
.fd
(),
TIOCGWINSZ
,
&
mut
size
)
==
-
1
{
Err
(
IoError
{
kind
:
io
::
OtherIoError
,
desc
:
"Size of terminal could not be determined"
,
detail
:
None
,
})
}
else
{
Ok
((
size
.ws_col
as
int
,
size
.ws_row
as
int
))
}
}
}
#[cfg(any(target_os
=
"ios"
,
target_os
=
"dragonfly"
))]
pub
fn
get_winsize
(
&
mut
self
)
->
IoResult
<
(
int
,
int
)
>
{
Err
(
sys_common
::
unimpl
())
}
pub
fn
isatty
(
&
self
)
->
bool
{
false
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录