mirror of
https://github.com/sharkdp/hexyl.git
synced 2026-10-30 09:05:54 +00:00
skip option error messages and display offset
This commit is contained in:
1 parent
133fdd9156
commit
c336259159
2 files changed
+17
-6
No files matched your search
+4
-4
@@ -93,10 +93,10 @@ fn run() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
None => Input::Stdin(stdin.lock()),
|
None => Input::Stdin(stdin.lock()),
|
||||||
};
|
};
|
||||||
|
|
||||||
let skip_arg = matches.value_of("skip");
|
let skip_arg = matches.value_of("skip").and_then(parse_hex_or_int);
|
||||||
|
|
||||||
if let Some(length) = skip_arg.and_then(parse_hex_or_int) {
|
if let Some(skip) = skip_arg {
|
||||||
reader.seek(SeekFrom::Start(length))?;
|
reader.seek(SeekFrom::Start(skip))?;
|
||||||
}
|
}
|
||||||
|
|
||||||
let length_arg = matches.value_of("length").or(matches.value_of("bytes"));
|
let length_arg = matches.value_of("length").or(matches.value_of("bytes"));
|
||||||
@@ -124,7 +124,7 @@ fn run() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
let display_offset = matches
|
let display_offset = matches
|
||||||
.value_of("display_offset")
|
.value_of("display_offset")
|
||||||
.and_then(parse_hex_or_int)
|
.and_then(parse_hex_or_int)
|
||||||
.unwrap_or(0);
|
.unwrap_or(skip_arg.unwrap_or(0));
|
||||||
|
|
||||||
let stdout = io::stdout();
|
let stdout = io::stdout();
|
||||||
let mut stdout_lock = stdout.lock();
|
let mut stdout_lock = stdout.lock();
|
||||||
|
|||||||
+13
-2
@@ -18,10 +18,21 @@ impl<'a> Read for Input<'a> {
|
|||||||
impl<'a> Seek for Input<'a> {
|
impl<'a> Seek for Input<'a> {
|
||||||
fn seek(&mut self, pos: SeekFrom) -> io::Result<u64> {
|
fn seek(&mut self, pos: SeekFrom) -> io::Result<u64> {
|
||||||
match *self {
|
match *self {
|
||||||
Input::File(ref mut file) => file.seek(pos),
|
Input::File(ref mut file) => {
|
||||||
|
let seek_res = file.seek(pos);
|
||||||
|
if let Err(Some(29)) = seek_res.as_ref().map_err(|err| err.raw_os_error()) {
|
||||||
|
return Err(io::Error::new(
|
||||||
|
io::ErrorKind::Other,
|
||||||
|
"Using '--seek' is not supported when using a pipe",
|
||||||
|
)
|
||||||
|
.into());
|
||||||
|
};
|
||||||
|
dbg!(&seek_res);
|
||||||
|
seek_res
|
||||||
|
}
|
||||||
Input::Stdin(_) => Err(io::Error::new(
|
Input::Stdin(_) => Err(io::Error::new(
|
||||||
io::ErrorKind::Other,
|
io::ErrorKind::Other,
|
||||||
"not supported by stdin-input",
|
"Using '--seek' is not supported when reading from STDIN",
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user