@@ -19,6 +19,7 @@ use plib::PROJECT_NAME;
19
19
use regex:: Regex ;
20
20
use std:: fs:: { self , File , OpenOptions } ;
21
21
use std:: io:: { self , BufRead , Error , ErrorKind , Read , Write } ;
22
+ use std:: path:: PathBuf ;
22
23
23
24
/// csplit - split files based on context
24
25
#[ derive( Parser , Debug ) ]
@@ -41,7 +42,7 @@ struct Args {
41
42
suppress : bool ,
42
43
43
44
/// File to read as input.
44
- filename : String ,
45
+ filename : PathBuf ,
45
46
46
47
/// Operands defining context on which to split.
47
48
operands : Vec < String > ,
@@ -189,7 +190,7 @@ fn csplit_file(args: &Args, ctx: SplitOps, new_files: &mut Vec<String>) -> io::R
189
190
let mut split_options = ctx. ops ;
190
191
// open file, or stdin
191
192
let file: Box < dyn Read > = {
192
- if args. filename == "-" {
193
+ if args. filename == PathBuf :: from ( "-" ) {
193
194
Box :: new ( io:: stdin ( ) . lock ( ) )
194
195
} else {
195
196
Box :: new ( fs:: File :: open ( & args. filename ) ?)
@@ -605,7 +606,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
605
606
let mut new_files = vec ! [ ] ;
606
607
if let Err ( err) = csplit_file ( & args, ctx, & mut new_files) {
607
608
exit_code = 1 ;
608
- eprintln ! ( "{}: {}" , args. filename, err) ;
609
+ eprintln ! ( "{}: {}" , args. filename. display ( ) , err) ;
609
610
if !args. keep {
610
611
for file_name in new_files. iter ( ) {
611
612
fs:: remove_file ( file_name) . unwrap ( ) ;
@@ -803,7 +804,7 @@ mod tests {
803
804
keep : false ,
804
805
num : 2 ,
805
806
suppress : false ,
806
- filename : String :: from ( "test.txt" ) ,
807
+ filename : PathBuf :: from ( "test.txt" ) ,
807
808
operands : vec ! [
808
809
String :: from( "/pattern/+1" ) ,
809
810
String :: from( "%skip%10" ) ,
@@ -850,7 +851,7 @@ mod tests {
850
851
keep : false ,
851
852
num : 2 ,
852
853
suppress : false ,
853
- filename : String :: from ( "tests/assets/test_file.txt" ) ,
854
+ filename : PathBuf :: from ( "tests/assets/test_file.txt" ) ,
854
855
operands : vec ! [ String :: from( "5" ) , String :: from( "{3}" ) ] ,
855
856
} ;
856
857
@@ -900,7 +901,7 @@ mod tests {
900
901
keep : false ,
901
902
num : 2 ,
902
903
suppress : false ,
903
- filename : String :: from ( "tests/assets/test_file_c" ) ,
904
+ filename : PathBuf :: from ( "tests/assets/test_file_c" ) ,
904
905
operands : vec ! [
905
906
String :: from( r"%main\(%" ) ,
906
907
String :: from( "/^}/+1" ) ,
@@ -957,7 +958,7 @@ mod tests {
957
958
keep : false ,
958
959
num : 2 ,
959
960
suppress : false ,
960
- filename : String :: from ( "tests/assets/test_file_c" ) ,
961
+ filename : PathBuf :: from ( "tests/assets/test_file_c" ) ,
961
962
operands : vec ! [
962
963
String :: from( r"%main\(%+1" ) ,
963
964
String :: from( "/^}/+1" ) ,
@@ -1013,7 +1014,7 @@ mod tests {
1013
1014
keep : false ,
1014
1015
num : 2 ,
1015
1016
suppress : false ,
1016
- filename : String :: from ( "tests/assets/test_file_c" ) ,
1017
+ filename : PathBuf :: from ( "tests/assets/test_file_c" ) ,
1017
1018
operands : vec ! [
1018
1019
String :: from( r"%main\(%-1" ) ,
1019
1020
String :: from( "/^}/+1" ) ,
@@ -1070,7 +1071,7 @@ mod tests {
1070
1071
keep : false ,
1071
1072
num : 2 ,
1072
1073
suppress : false ,
1073
- filename : String :: from ( "tests/assets/test_file_c" ) ,
1074
+ filename : PathBuf :: from ( "tests/assets/test_file_c" ) ,
1074
1075
operands : vec ! [
1075
1076
String :: from( r"%main\(%" ) ,
1076
1077
String :: from( "/^}/" ) ,
@@ -1127,7 +1128,7 @@ mod tests {
1127
1128
keep : false ,
1128
1129
num : 2 ,
1129
1130
suppress : false ,
1130
- filename : String :: from ( "tests/assets/test_file_c" ) ,
1131
+ filename : PathBuf :: from ( "tests/assets/test_file_c" ) ,
1131
1132
operands : vec ! [
1132
1133
String :: from( r"%main\(%" ) ,
1133
1134
String :: from( "/^}/-1" ) ,
0 commit comments