summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulian Sitkevich <1553398+sitkevij@users.noreply.github.com>2020-10-26 08:29:03 -0700
committerGitHub <noreply@github.com>2020-10-26 08:29:03 -0700
commitee50c6b9d06593801b69c1748ac4a1533a6e138c (patch)
tree71f1d0a2a0c5fea7cc70ea1ec381a5ed18d545ec
parenta6ae005348a7912226489bbd48ac556be136775e (diff)
parentb395debce4689f5b8d063a3e43031c606eeb0f01 (diff)
Merge pull request #28 from poliorcetics/fix-len-crash
Ensures '--len' does not crash or hang
-rw-r--r--src/lib.rs22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 8d7e594..48af7b6 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -250,7 +250,7 @@ pub fn run(matches: ArgMatches) -> Result<(), Box<dyn Error>> {
}
if let Some(length) = matches.value_of(ARG_LEN) {
- truncate_len = length.parse::<u64>().unwrap();
+ truncate_len = length.parse::<u64>()?;
}
if let Some(format) = matches.value_of(ARG_FMT) {
@@ -341,24 +341,18 @@ pub fn is_stdin(matches: ArgMatches) -> Result<bool, Box<dyn Error>> {
dbg!(env::args().len(), matches.args.len());
dbg!(env::args().nth(0).unwrap());
}
- if let Some(nth1) = env::args().nth(1) {
+ if let Some(file) = matches.value_of(ARG_INP) {
if DBG > 0 {
- dbg!(nth1);
+ dbg!(file);
}
- for arg in ARGS.iter() {
- if let Some(index) = matches.index_of(arg) {
- if let 2 = index {
- is_stdin = true;
- }
- }
+ is_stdin = false;
+ } else if let Some(nth1) = env::args().nth(1) {
+ if DBG > 0 {
+ dbg!(nth1);
}
+ is_stdin = ARGS.iter().any(|arg| matches.index_of(arg) == Some(2));
} else if matches.args.is_empty() {
is_stdin = true;
- } else if let Some(file) = matches.value_of(ARG_INP) {
- if DBG > 0 {
- dbg!(file);
- }
- is_stdin = false;
}
if DBG > 0 {
dbg!(is_stdin);