@@ -52,7 +52,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
5252 #[ cfg( target_os = "windows" ) ]
5353 let args = args. collect_ignore ( ) ;
5454 #[ cfg( unix) ]
55- let obs_signal = handle_obsolete ( & mut args) ;
55+ handle_obsolete ( & mut args) ;
5656
5757 let matches = uu_app ( ) . try_get_matches_from ( & args) ?;
5858
@@ -96,13 +96,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
9696
9797 // Parse signal
9898 #[ cfg( unix) ]
99- let sig_num = if let Some ( signal) = obs_signal {
100- signal
101- } else if let Some ( signal) = matches. get_one :: < String > ( "signal" ) {
102- parse_signal_value ( signal) ?
103- } else {
104- 15_usize //SIGTERM
105- } ;
99+ let sig_num = parse_signal_value ( matches. get_one :: < String > ( "signal" ) . unwrap ( ) ) ?;
106100
107101 #[ cfg( unix) ]
108102 let sig_name = signal_name_by_value ( sig_num) ;
@@ -125,7 +119,7 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
125119 if matches. get_flag ( "require-handler" ) {
126120 pids. retain ( |pid| {
127121 let mask =
128- u32 :: from_str_radix ( pid. clone ( ) . status ( ) . get ( "SigCgt" ) . unwrap ( ) , 16 ) . unwrap ( ) ;
122+ u64 :: from_str_radix ( pid. clone ( ) . status ( ) . get ( "SigCgt" ) . unwrap ( ) , 16 ) . unwrap ( ) ;
129123 mask & ( 1 << sig_num) != 0
130124 } ) ;
131125 }
@@ -293,7 +287,7 @@ fn process_flag_o_n(
293287}
294288
295289#[ cfg( unix) ]
296- fn handle_obsolete ( args : & mut Vec < String > ) -> Option < usize > {
290+ fn handle_obsolete ( args : & mut [ String ] ) {
297291 // Sanity check
298292 if args. len ( ) > 2 {
299293 // Old signal can only be in the first argument position
@@ -302,13 +296,11 @@ fn handle_obsolete(args: &mut Vec<String>) -> Option<usize> {
302296 // Check if it is a valid signal
303297 let opt_signal = signal_by_name_or_value ( signal) ;
304298 if opt_signal. is_some ( ) {
305- // remove the signal before return
306- args. remove ( 1 ) ;
307- return opt_signal;
299+ // Replace with long option that clap can parse
300+ args[ 1 ] = format ! ( "--signal={}" , signal) ;
308301 }
309302 }
310303 }
311- None
312304}
313305
314306#[ cfg( unix) ]
@@ -372,7 +364,8 @@ pub fn uu_app() -> Command {
372364 // arg!(-s --session <SID> "match session IDs")
373365 // .value_delimiter(',')
374366 // .value_parser(clap::value_parser!(u64)),
375- arg ! ( --signal <sig> "signal to send (either number or name)" ) ,
367+ arg ! ( --signal <sig> "signal to send (either number or name)" )
368+ . default_value ( "SIGTERM" ) ,
376369 arg ! ( -t --terminal <tty> "match by controlling terminal" ) . value_delimiter ( ',' ) ,
377370 // arg!(-u --euid <ID> "match by effective IDs")
378371 // .value_delimiter(',')
0 commit comments