diff --git a/bash-5.1/builtins_rust/alias/Cargo.toml b/bash-5.1/builtins_rust/alias/Cargo.toml index a77df038a1a33ddfed9bc6875b7b4b42588eee9c..455c29395be714a81114e8b746b240fb7326d7c7 100644 --- a/bash-5.1/builtins_rust/alias/Cargo.toml +++ b/bash-5.1/builtins_rust/alias/Cargo.toml @@ -4,7 +4,6 @@ version = "0.1.0" edition = "2018" authors = ["liutong"] - [lib] name = "ralias" crate-type = ["staticlib","rlib"] @@ -13,4 +12,5 @@ crate-type = ["staticlib","rlib"] libc = "*" rcmd = {path="../cmd"} rcommon= {path="../common"} +rhelp = {path ="../help"} # nix = "*" diff --git a/bash-5.1/builtins_rust/alias/src/lib.rs b/bash-5.1/builtins_rust/alias/src/lib.rs index 2ff7814fd087b2d7b1f739af084f4f7004fe173f..8cdfc225fc6b91cc75d9c334f8433a2c66ae06dc 100644 --- a/bash-5.1/builtins_rust/alias/src/lib.rs +++ b/bash-5.1/builtins_rust/alias/src/lib.rs @@ -3,6 +3,7 @@ use std::ffi::CStr; //extern crate rcommon; use rcommon::r_sh_notfound; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE,r_builtin_usage}; +use rhelp::r_builtin_help; extern "C" { fn free(__ptr: *mut libc::c_void); @@ -25,7 +26,6 @@ extern "C" { fn builtin_usage(); fn sh_notfound(_: *mut libc::c_char); fn sh_chkwrite(_: libc::c_int) -> libc::c_int; - fn builtin_help(); static mut loptend: *mut WordList; fn internal_getopt(_: *mut WordList, _: *mut libc::c_char) -> libc::c_int; fn reset_internal_getopt(); @@ -91,7 +91,7 @@ pub unsafe extern "C" fn r_alias_builtin(mut list: *mut WordList) -> libc::c_int } _ => { if offset == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage(); @@ -178,7 +178,7 @@ pub unsafe extern "C" fn r_unalias_builtin(mut list: *mut WordList) -> libc::c_i } _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage(); diff --git a/bash-5.1/builtins_rust/bind/Cargo.toml b/bash-5.1/builtins_rust/bind/Cargo.toml index deb8ab73a7373247f8be1415c40231f9517f1bbd..22f987f43677647643c7168c4c98e926443bbb15 100644 --- a/bash-5.1/builtins_rust/bind/Cargo.toml +++ b/bash-5.1/builtins_rust/bind/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/bind/src/lib.rs b/bash-5.1/builtins_rust/bind/src/lib.rs index cb1621886b4ca68d8647d191218bfde516723f67..7dab6829b57959d4b70db6543fae08c3871deb2e 100644 --- a/bash-5.1/builtins_rust/bind/src/lib.rs +++ b/bash-5.1/builtins_rust/bind/src/lib.rs @@ -8,6 +8,7 @@ use std::fs::File; use nix::errno::errno; use rcommon::{r_builtin_usage,r_sh_chkwrite}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; +use rhelp::r_builtin_help; #[repr (C)] pub struct _keymap_entry{ @@ -142,7 +143,6 @@ extern "C"{ fn strvec_len(array:*mut *mut c_char)->i32; fn rl_parse_and_bind(string:*mut c_char)->i32; fn strvec_search(array:*mut *mut c_char,name:*mut c_char)->i32; - fn builtin_help(); } @@ -246,7 +246,7 @@ pub extern "C" fn r_bind_builtin(mut list:*mut WordList)->i32{ 'X' => flags |= XXFLAG!(), _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage(); diff --git a/bash-5.1/builtins_rust/break_1/Cargo.toml b/bash-5.1/builtins_rust/break_1/Cargo.toml index cbdf261c26fa9b3066938b47a33b3ad94edfa3eb..5800923f447c8cf61b22bb30d8191243634390cd 100644 --- a/bash-5.1/builtins_rust/break_1/Cargo.toml +++ b/bash-5.1/builtins_rust/break_1/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" libc = "*" nix = "*" rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/break_1/src/lib.rs b/bash-5.1/builtins_rust/break_1/src/lib.rs index 1240b9516eb75242f72f675b6f58d0185f33ea3a..d49fca3e3d36b4b344b6fd4a7b1f9d4fcda6e3f0 100644 --- a/bash-5.1/builtins_rust/break_1/src/lib.rs +++ b/bash-5.1/builtins_rust/break_1/src/lib.rs @@ -7,6 +7,7 @@ use std::ffi::CString; use libc::c_long; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; +use rhelp::r_builtin_help; type intmax_t = c_long; @@ -33,7 +34,7 @@ fn checkhelp(l: *mut WordList) -> i32{ let tmp=CString::new("--help").unwrap(); if l!=std::ptr::null_mut() && (*l).word !=std::ptr::null_mut() && libc::strcmp((*((*l).word)).word, tmp.as_ptr()) == 0 { - builtin_help(); + r_builtin_help(); } return EX_USAGE; } @@ -41,7 +42,6 @@ fn checkhelp(l: *mut WordList) -> i32{ extern "C" { fn get_numeric_arg(list :*mut WordList, i: i32 , intmax :*mut intmax_t) -> i32; - fn builtin_help (); // fn get_loop_level() -> i32; //fn set_continuing(cont : i32); //fn set_breaking(breaking : i32); diff --git a/bash-5.1/builtins_rust/builtin/Cargo.toml b/bash-5.1/builtins_rust/builtin/Cargo.toml index 4304ddeedbaee7f115c400195bac1a5930b2d153..2ae8bc19594914f6a8f0e30963021c92156daa9c 100644 --- a/bash-5.1/builtins_rust/builtin/Cargo.toml +++ b/bash-5.1/builtins_rust/builtin/Cargo.toml @@ -12,4 +12,4 @@ crate-type = ["staticlib","rlib"] libc = "*" rcmd = {path="../cmd"} rcommon = {path="../common"} - +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/caller/Cargo.toml b/bash-5.1/builtins_rust/caller/Cargo.toml index 4811682b59310cb60631ff6b304fb59fb3b48cd2..985bf88e47485f25ba7428e96e72d9e3d137d2bd 100644 --- a/bash-5.1/builtins_rust/caller/Cargo.toml +++ b/bash-5.1/builtins_rust/caller/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" libc = "*" rread = {path="../read"} rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","lib"] diff --git a/bash-5.1/builtins_rust/caller/src/lib.rs b/bash-5.1/builtins_rust/caller/src/lib.rs index bcc97b3a63e88e25e6f0f9f1bf638196c14bcf48..1f9369227003c2c71163b091699dde1d9d7aac33 100644 --- a/bash-5.1/builtins_rust/caller/src/lib.rs +++ b/bash-5.1/builtins_rust/caller/src/lib.rs @@ -6,6 +6,7 @@ use libc::{c_char,c_int,PT_NULL,c_long,}; use std::ffi::{CStr,CString}; use rread::{SHELL_VAR,ARRAY,intmax_t,}; +use rhelp::r_builtin_help; #[macro_export] macro_rules! att_array { @@ -60,7 +61,7 @@ macro_rules! GET_ARRAY_FROM_VAR { macro_rules! CHECK_HELPOPT { ($l:expr) => { if $l != std::ptr::null_mut() && (*($l)).word != std::ptr::null_mut() && ISHELP((*(*($l)).word).word) == true{ - builtin_help(); + r_builtin_help(); return EX_USAGE; } }; @@ -71,7 +72,6 @@ type arrayind_t = intmax_t; extern "C" { static loptend:*mut WordList; - fn builtin_help(); fn find_variable(str:*const c_char)->*mut SHELL_VAR; fn array_reference(a:*mut ARRAY,i:arrayind_t)->*mut c_char; fn builtin_usage(); diff --git a/bash-5.1/builtins_rust/cd/Cargo.toml b/bash-5.1/builtins_rust/cd/Cargo.toml index 2d92dc876cabfc2af756ae5b00e5584b38c84052..d22bd9c4b323984a915ae8b4603ff2871522559e 100644 --- a/bash-5.1/builtins_rust/cd/Cargo.toml +++ b/bash-5.1/builtins_rust/cd/Cargo.toml @@ -11,6 +11,7 @@ lazy_static = "*" libc = "*" rcommon = {path="../common"} nix = "*" +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/cd/src/lib.rs b/bash-5.1/builtins_rust/cd/src/lib.rs index a44fe505c56cdcc65c3295ef85164238d969beef..ea364e9156c047d2ad00c75cd5d2ec85d71563d4 100644 --- a/bash-5.1/builtins_rust/cd/src/lib.rs +++ b/bash-5.1/builtins_rust/cd/src/lib.rs @@ -4,7 +4,7 @@ use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE use libc::{c_char, c_long, c_void}; use std::{ffi::{CString, CStr}}; - +use rhelp::r_builtin_help; #[repr(i8)] pub enum JOB_STATE { @@ -345,7 +345,6 @@ extern "C" { fn make_absolute (str1:*const c_char, dot_path:*const c_char)->* mut c_char; fn sh_canonpath (path:* mut c_char, flags:i32)->* mut c_char; fn set_working_directory (path:* mut c_char); - fn builtin_help(); } @@ -502,7 +501,7 @@ pub extern "C" fn r_cd_builtin (mut list:*mut WordList)->i32 { 'e'=>{eflag = 1;} _=>{ if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage (); @@ -668,7 +667,7 @@ pub extern "C" fn r_pwd_builtin (list:* mut WordList)->i32 { 'L'=>{verbatim_pwd = 0;} _=>{ if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage (); diff --git a/bash-5.1/builtins_rust/cmd/src/lib.rs b/bash-5.1/builtins_rust/cmd/src/lib.rs index 53b51454b06c7c116735f0492eb8ea36767c6bf3..67bb8d767207149218fdd3a85de99f39aa401e9e 100644 --- a/bash-5.1/builtins_rust/cmd/src/lib.rs +++ b/bash-5.1/builtins_rust/cmd/src/lib.rs @@ -1,6 +1,5 @@ use std::collections::HashMap; use std::sync::Mutex; - #[macro_use] extern crate lazy_static; diff --git a/bash-5.1/builtins_rust/colon/Cargo.toml b/bash-5.1/builtins_rust/colon/Cargo.toml index a6c28aa2ca663a9dd3bbd7750a8887b79e464a91..0c4d7f8deb4627ddec2f64dc6b17b8b3dc9e9c42 100644 --- a/bash-5.1/builtins_rust/colon/Cargo.toml +++ b/bash-5.1/builtins_rust/colon/Cargo.toml @@ -12,3 +12,4 @@ name = "rcolon" [dependencies] libc = "*" rcommon = {path ="../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/command/Cargo.toml b/bash-5.1/builtins_rust/command/Cargo.toml index d390905eefa11437e94991f8a574483cf2baefc3..2f967ae7f080de6ea24dd5526ef55fe8a77527b2 100644 --- a/bash-5.1/builtins_rust/command/Cargo.toml +++ b/bash-5.1/builtins_rust/command/Cargo.toml @@ -8,6 +8,7 @@ edition = "2018" [dependencies] libc ="*" rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib", "rlib"] diff --git a/bash-5.1/builtins_rust/command/src/lib.rs b/bash-5.1/builtins_rust/command/src/lib.rs index 3c2347ac3283c0acf1ee9d669985b7dcd892eecf..16f70b101bf816a11231384304158ed181e6b9f7 100644 --- a/bash-5.1/builtins_rust/command/src/lib.rs +++ b/bash-5.1/builtins_rust/command/src/lib.rs @@ -1,6 +1,7 @@ use std::ffi::*; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; +use rhelp::r_builtin_help; extern "C" { fn copy_word_list(_: *mut WordList) -> *mut WordList; fn begin_unwind_frame(_: *mut libc::c_char); @@ -16,7 +17,6 @@ extern "C" { fn builtin_usage(); fn sh_notfound(_: *mut libc::c_char); fn sh_restricted(_: *mut libc::c_char); - fn builtin_help(); fn describe_command(_: *mut libc::c_char, _: libc::c_int) -> libc::c_int; //type Function = fn ()->i32; } @@ -313,7 +313,7 @@ pub unsafe extern "C" fn r_command_builtin(mut list: *mut WordList) -> libc::c_i } _ => { if opt ==-99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage(); diff --git a/bash-5.1/builtins_rust/common/Cargo.toml b/bash-5.1/builtins_rust/common/Cargo.toml index 12b06063abfa1429b169c05d258f9873ce890beb..23d172e129d37bc56032f5da238e8aaaf155d543 100644 --- a/bash-5.1/builtins_rust/common/Cargo.toml +++ b/bash-5.1/builtins_rust/common/Cargo.toml @@ -13,3 +13,4 @@ unic-langid = "*" [lib] crate-type = ["staticlib","rlib"] name = "rcommon" +rhelp = {path ="../help"} \ No newline at end of file diff --git a/bash-5.1/builtins_rust/complete/Cargo.toml b/bash-5.1/builtins_rust/complete/Cargo.toml index d08f34aed9cda5335e45735d3e672f5f21db7973..03b811a9d8509f375925f01f3946d1ef8616b930 100644 --- a/bash-5.1/builtins_rust/complete/Cargo.toml +++ b/bash-5.1/builtins_rust/complete/Cargo.toml @@ -2,15 +2,14 @@ authors = ["huzhengming"] name = "rcomplete" version = "0.0.1" - edition = "2018" - [dependencies] lazy_static = "*" libc = "*" nix = "*" rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/complete/src/lib.rs b/bash-5.1/builtins_rust/complete/src/lib.rs index a3254b4f6bad2f00882c3120d479f3678ae4b4ff..5b8c1318e4aeb0d39999a09668ba18428f2e19ba 100644 --- a/bash-5.1/builtins_rust/complete/src/lib.rs +++ b/bash-5.1/builtins_rust/complete/src/lib.rs @@ -4,7 +4,7 @@ extern crate nix; use libc::{c_char, c_int, c_ulong, c_void}; use std::{ffi::CString}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; - +use rhelp::r_builtin_help; #[repr(u8)] enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, @@ -554,7 +554,6 @@ extern "C" { fn sh_invalidid (value:* mut c_char); fn sh_invalidoptname (value:* mut c_char); fn builtin_usage(); - fn builtin_help(); static list_optarg:* mut c_char; fn builtin_error(err:*const c_char,...); fn check_identifier (w:* mut WordDesc, f:i32)->i32; @@ -824,7 +823,7 @@ pub extern "C" fn r_build_actions (list : *mut WordList, flagp:* mut _optflags, } _=>{ if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage (); diff --git a/bash-5.1/builtins_rust/declare/Cargo.toml b/bash-5.1/builtins_rust/declare/Cargo.toml index f8f4e21a9e319efd758d7c10cb50741aa237a371..01673f70b0a8a9c59380e4305cf111e3f8a28e7c 100644 --- a/bash-5.1/builtins_rust/declare/Cargo.toml +++ b/bash-5.1/builtins_rust/declare/Cargo.toml @@ -10,6 +10,7 @@ lazy_static = "*" libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/declare/src/lib.rs b/bash-5.1/builtins_rust/declare/src/lib.rs index 7c70152ff6c806e164399c61158482bddb96ddb7..74559b7e5469edd7205d3f00d7cafd8c30e0604a 100644 --- a/bash-5.1/builtins_rust/declare/src/lib.rs +++ b/bash-5.1/builtins_rust/declare/src/lib.rs @@ -4,7 +4,7 @@ extern crate nix; use libc::{c_char, c_long, c_void}; use std::{ffi::CString}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; - +use rhelp::r_builtin_help; #[repr(u8)] enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, @@ -450,7 +450,6 @@ pub union Functions { } extern "C" { - fn builtin_help (); static variable_context:i32; fn builtin_error(err:*const c_char,...); fn builtin_warning(err:*const c_char,...); @@ -530,7 +529,7 @@ pub extern "C" fn r_local_builtin (list:* mut WordList)->i32 unsafe { /* Catch a straight `local --help' before checking function context */ if list !=std::ptr::null_mut() && (*list).word != std::ptr::null_mut() && STREQ ((*(*list).word).word, CString::new("--help").unwrap().as_ptr()) { - builtin_help (); + r_builtin_help (); return EX_USAGE; } @@ -643,7 +642,7 @@ pub extern "C" fn r_declare_internal (list:* mut WordList, local_var:i32)->i32 let mut assign_error:i32=0; let mut pflag:i32=0; let mut nodefs:i32=0; - let opt:i32; + let mut opt:i32; let mut onref:i32; let mut offref:i32; let mut mkglobal:i32=0; @@ -662,15 +661,15 @@ pub extern "C" fn r_declare_internal (list:* mut WordList, local_var:i32)->i32 unsafe { reset_internal_getopt (); - let tmp = DECLARE_OPTS().as_ptr(); - opt = internal_getopt (list, tmp as * mut c_char); + let tmp = DECLARE_OPTS(); + opt = internal_getopt (list, tmp.as_ptr() as * mut c_char); while opt != -1 { if list_opttype == '+' as i32 { flags= &mut flags_off; } else { flags= &mut flags_on; } - + let optu8:u8= opt as u8; let optChar:char=char::from(optu8); @@ -678,7 +677,7 @@ pub extern "C" fn r_declare_internal (list:* mut WordList, local_var:i32)->i32 the loop in subst.c:shell_expand_word_list() */ match optChar { 'a'=>{ *flags |= att_array!();} - 'A'=>{ *flags |= att_assoc!();} + 'A'=>{ *flags |= att_assoc!();} 'p'=>{ pflag+=1;} 'F'=>{ nodefs+=1; *flags |= att_function!(); @@ -719,14 +718,14 @@ pub extern "C" fn r_declare_internal (list:* mut WordList, local_var:i32)->i32 'I'=>{ inherit_flag = MKLOC_INHERIT!();} _=>{ if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage (); return EX_USAGE; } } - internal_getopt (list, tmp as * mut c_char); + opt = internal_getopt (list, tmp.as_ptr() as * mut c_char); } let mut llist:* mut WordList = loptend.clone(); diff --git a/bash-5.1/builtins_rust/echo/Cargo.toml b/bash-5.1/builtins_rust/echo/Cargo.toml index cbbe87e6bd083eab7b1a34b65679f181f2e13e5e..5aeb52efe08f9c0356cd7edf6918e8a519032d6e 100644 --- a/bash-5.1/builtins_rust/echo/Cargo.toml +++ b/bash-5.1/builtins_rust/echo/Cargo.toml @@ -8,6 +8,7 @@ edition = "2018" [dependencies] libc = "*" rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/echo/src/lib.rs b/bash-5.1/builtins_rust/echo/src/lib.rs index 3302a38b063688573480872d580a06f8818fadcd..ac3446bf0b2ee7e99e154ea1d55052092e31b291 100644 --- a/bash-5.1/builtins_rust/echo/src/lib.rs +++ b/bash-5.1/builtins_rust/echo/src/lib.rs @@ -5,7 +5,7 @@ use std::ffi::{CString,CStr,}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; // use std::io::{stdout, Write}; use std::ptr::read_volatile; - +use rhelp::r_builtin_help; //结构体 //枚举 diff --git a/bash-5.1/builtins_rust/enable/Cargo.toml b/bash-5.1/builtins_rust/enable/Cargo.toml index 14ec0946031567d4846a464dbb23992d3b32b425..82bcc61a34248c0436ccf98c25073c5f3466c2f1 100644 --- a/bash-5.1/builtins_rust/enable/Cargo.toml +++ b/bash-5.1/builtins_rust/enable/Cargo.toml @@ -13,3 +13,4 @@ libc = "*" libloading = "*" rcmd = {path="../cmd"} rcommon = {path="../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/enable/src/lib.rs b/bash-5.1/builtins_rust/enable/src/lib.rs index 1edb81233dc11c52d8692fb10bef34ce7cee516e..7c910008f3925fb6fda6c411d5403175fd43b992 100644 --- a/bash-5.1/builtins_rust/enable/src/lib.rs +++ b/bash-5.1/builtins_rust/enable/src/lib.rs @@ -5,6 +5,7 @@ use std::path::Path; use libloading::Library; use rcmd::*; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; +use rhelp::r_builtin_help; /* #define ENABLED 1 #define DISABLED 2 @@ -98,7 +99,6 @@ extern "C" { fn sh_notbuiltin(_: *mut libc::c_char); fn builtin_address_internal(_: *mut libc::c_char, _: libc::c_int) -> *mut builtin; fn initialize_shell_builtins(); - fn builtin_help(); static mut list_optarg: *mut libc::c_char; static mut loptend: *mut WordList; fn internal_getopt(_: *const WordList, _: *const libc::c_char) -> i32; @@ -189,7 +189,7 @@ pub unsafe extern "C" fn r_enable_builtin(mut list: *mut WordList) -> i32 { } _ => { if opt ==-99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage(); diff --git a/bash-5.1/builtins_rust/eval/Cargo.toml b/bash-5.1/builtins_rust/eval/Cargo.toml index d162276048a1c9c655a372ab64a806c7a6a321ac..262098b535cffc8db44b090fc30d8d53ab883bd4 100644 --- a/bash-5.1/builtins_rust/eval/Cargo.toml +++ b/bash-5.1/builtins_rust/eval/Cargo.toml @@ -8,6 +8,7 @@ edition = "2018" [dependencies] libc = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/eval/src/lib.rs b/bash-5.1/builtins_rust/eval/src/lib.rs index 6d80d5e6797961a8b7542a2403c31069f8bbf67e..da559eaf9e210219df335b43b3546179f0fa6d73 100644 --- a/bash-5.1/builtins_rust/eval/src/lib.rs +++ b/bash-5.1/builtins_rust/eval/src/lib.rs @@ -5,6 +5,7 @@ use libc::{c_char,c_int}; use std::ffi::{CString}; use rcommon::{r_no_options}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; +use rhelp::r_builtin_help; #[macro_export] macro_rules! SEVAL_NOHIST { diff --git a/bash-5.1/builtins_rust/exec/Cargo.toml b/bash-5.1/builtins_rust/exec/Cargo.toml index 47a86be61eb7d1787b77185b6856431c752d2733..f5b8a47bf1d12ee00643aaaa18fc2c305010072e 100644 --- a/bash-5.1/builtins_rust/exec/Cargo.toml +++ b/bash-5.1/builtins_rust/exec/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/exec/src/lib.rs b/bash-5.1/builtins_rust/exec/src/lib.rs index df518d0dce61d3fe4898dfc3bf07f8125f44b6ce..c5954bbde0199a9df7279ccf5ab885342c385747 100644 --- a/bash-5.1/builtins_rust/exec/src/lib.rs +++ b/bash-5.1/builtins_rust/exec/src/lib.rs @@ -7,6 +7,7 @@ use std::ffi::{CString,CStr}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE, EX_NOTFOUND, EX_NOEXEC, SUBSHELL_PAREN,r_builtin_usage}; use nix::errno::errno; use rcommon::r_sh_restricted; +use rhelp::r_builtin_help; #[repr(C)] struct redirect{ @@ -79,7 +80,6 @@ extern "C" { static interactive:i32; static default_buffered_input:i32; static no_exit_on_failed_exec:i32; - fn builtin_help(); fn xmalloc(n:size_t)->*mut c_void; fn reset_internal_getopt(); fn internal_getopt(list:*mut WordList,opts:*mut c_char)->i32; @@ -159,7 +159,7 @@ pub extern "C" fn r_exec_builtin(mut list:*mut WordList)->i32{ 'a' => argv0 = list_optarg, _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage(); diff --git a/bash-5.1/builtins_rust/exit/Cargo.toml b/bash-5.1/builtins_rust/exit/Cargo.toml index f8ca16746dcad6a9fb4a8af30a26bb0da4910a2b..d71a2b83a1dc89b5feb541a7f17f21f6aff29350 100644 --- a/bash-5.1/builtins_rust/exit/Cargo.toml +++ b/bash-5.1/builtins_rust/exit/Cargo.toml @@ -11,7 +11,7 @@ libc = "*" nix = "*" rjobs = {path="../jobs"} rcommon = {path="../common"} - +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/exit/src/lib.rs b/bash-5.1/builtins_rust/exit/src/lib.rs index e5346295798ef8837b4e5009811cce641795579f..3734e5d395ee7ab45661b53f2c5997b42b67304e 100644 --- a/bash-5.1/builtins_rust/exit/src/lib.rs +++ b/bash-5.1/builtins_rust/exit/src/lib.rs @@ -8,6 +8,7 @@ use std::ffi::CString; use rjobs::{PROCESS, COMMAND, r_jobs_builtin, JLIST_STANDARD }; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; +use rhelp::r_builtin_help; #[repr(C)] pub struct JOB { @@ -109,7 +110,6 @@ extern "C"{ static mut last_command_exit_value:i32; static subshell_environment:i32; - fn builtin_help(); fn builtin_error(err:*const c_char,...); fn list_all_jobs(form:i32); fn get_exitstat(list:*mut WordList) -> i32; @@ -138,7 +138,7 @@ pub extern "C" fn r_exit_builtin(list:*mut WordList) -> i32{ let c_ptr = c_str.as_ptr(); if list != std::ptr::null_mut() && (*list).word != std::ptr::null_mut() && STREQ((*(*list).word).word, c_ptr){ - builtin_help(); + r_builtin_help(); return EX_USAGE; } @@ -167,7 +167,7 @@ pub extern "C" fn r_logout_builtin(list:*mut WordList)->i32{ let c_ptr = c_str.as_ptr(); if list != std::ptr::null_mut() && (*list).word != std::ptr::null_mut() && STREQ((*(*list).word).word, c_ptr){ - builtin_help(); + r_builtin_help(); return EX_USAGE; } diff --git a/bash-5.1/builtins_rust/fc/Cargo.toml b/bash-5.1/builtins_rust/fc/Cargo.toml index 5e9a0244b41277f1d96d296b3aa1ed8ab84ccfe0..9610dabab1a56695c65d41320f5d6401771f98c5 100644 --- a/bash-5.1/builtins_rust/fc/Cargo.toml +++ b/bash-5.1/builtins_rust/fc/Cargo.toml @@ -10,6 +10,7 @@ lazy_static = "*" libc = "*" nix = "*" rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/fc/src/lib.rs b/bash-5.1/builtins_rust/fc/src/lib.rs index 357b603dd19d23588b0b0449d9642e51e0a99c35..aa0e6c0ee08a04abb93cb313801b1fcd931ce3a3 100644 --- a/bash-5.1/builtins_rust/fc/src/lib.rs +++ b/bash-5.1/builtins_rust/fc/src/lib.rs @@ -5,6 +5,7 @@ use libc::{c_char, c_long, c_void, c_int}; use nix::sys::termios::SpecialCharacterIndices; use std::{ffi::{CString,CStr}, i32, io::{Write, stdout}, ops::Add, string, u32}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE,r_builtin_usage}; +use rhelp::r_builtin_help; #[repr(i8)] pub enum JOB_STATE { @@ -388,8 +389,6 @@ extern "C" { fn run_unwind_frame (filename:* mut c_char); static mut echo_input_at_read:i32; static mut verbose_flag:i32; - fn builtin_help(); - } #[no_mangle] @@ -524,7 +523,7 @@ pub extern "C" fn r_fc_builtin (mut list:* mut WordList)->i32 'e' => ename = list_optarg, _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage(); diff --git a/bash-5.1/builtins_rust/fg_bg/Cargo.toml b/bash-5.1/builtins_rust/fg_bg/Cargo.toml index 886c7c3c15cf1aea74387ea172a75369abb08586..32bfbaa82fde810ec16c3257df306396032df968 100644 --- a/bash-5.1/builtins_rust/fg_bg/Cargo.toml +++ b/bash-5.1/builtins_rust/fg_bg/Cargo.toml @@ -10,6 +10,7 @@ lazy_static = "*" libc = "*" nix = "*" rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/fg_bg/src/lib.rs b/bash-5.1/builtins_rust/fg_bg/src/lib.rs index b86636ccbe387ed8f512f09c76f7a20d7fe6c553..b81128cf9643db78e24d61903b04e4e37692ab02 100644 --- a/bash-5.1/builtins_rust/fg_bg/src/lib.rs +++ b/bash-5.1/builtins_rust/fg_bg/src/lib.rs @@ -4,6 +4,7 @@ extern crate nix; use libc::{c_char, c_long}; use std::{ffi::CString, ops::Add}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE,r_builtin_usage}; +use rhelp::r_builtin_help; #[repr(i8)] pub enum JOB_STATE { @@ -313,7 +314,7 @@ macro_rules! ISHELP { macro_rules! CHECK_HELPOPT { ($l:expr) => { if $l !=std::ptr::null_mut() && (*$l).word !=std::ptr::null_mut() && ISHELP!((*(*$l).word).word) == 0 { - builtin_help (); + r_builtin_help (); return EX_USAGE; } } @@ -329,7 +330,6 @@ extern "C" { static mut loptend:*mut WordList; fn sh_nojobs (str:*mut c_char); fn no_options (list:*mut WordList)->i32; - fn builtin_help (); static mut job_control:i32; static mut last_asynchronous_pid:i32; fn start_job (job:i32, foreground:i32)->i32; diff --git a/bash-5.1/builtins_rust/getopts/Cargo.toml b/bash-5.1/builtins_rust/getopts/Cargo.toml index 025be6ceca2b6155434e390f566d6264c881f341..800bb4eb27dd378fe926dc15696dda8840205f7e 100644 --- a/bash-5.1/builtins_rust/getopts/Cargo.toml +++ b/bash-5.1/builtins_rust/getopts/Cargo.toml @@ -10,6 +10,7 @@ lazy_static = "*" libc = "*" nix = "*" rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/getopts/src/lib.rs b/bash-5.1/builtins_rust/getopts/src/lib.rs index 12491386f2d87de4f7255b3071365b2de3223c02..1878b816bff6fe89d463f12786c06f0d7498eced 100644 --- a/bash-5.1/builtins_rust/getopts/src/lib.rs +++ b/bash-5.1/builtins_rust/getopts/src/lib.rs @@ -3,6 +3,7 @@ extern crate nix; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE,GETOPT_HELP, r_builtin_usage}; use libc::{c_char, c_long, c_void}; use std::{ffi::CString}; +use rhelp::r_builtin_help; #[repr(u8)] enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, @@ -260,7 +261,6 @@ extern "C" { static sh_optopt:i32; fn reset_internal_getopt(); fn internal_getopt (list:*mut WordList , opts:*mut c_char)->i32; - fn builtin_help (); static mut loptend:*mut WordList; fn make_builtin_argv (list:* mut WordList, ac:* mut i32)->*mut*mut c_char; } @@ -498,7 +498,7 @@ pub extern "C" fn r_getopts_builtin(list: * mut WordList)->i32 ret = internal_getopt(list, CString::new ("").unwrap().as_ptr() as * mut c_char); if ret != -1 { if ret == GETOPT_HELP!() { - builtin_help(); + r_builtin_help(); } else { builtin_usage(); } diff --git a/bash-5.1/builtins_rust/hash/Cargo.toml b/bash-5.1/builtins_rust/hash/Cargo.toml index 94e70327e99d00a60e66897e804dc0c0764465c1..49fe81150c856490d3c345fef5d6302263be431c 100644 --- a/bash-5.1/builtins_rust/hash/Cargo.toml +++ b/bash-5.1/builtins_rust/hash/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" libc = "*" rread = {path = "../read"} rcommon = {path = "../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/hash/src/lib.rs b/bash-5.1/builtins_rust/hash/src/lib.rs index f31ff5645b31f8d7453b50072770e1bf579fdefc..c3fac6ec340320ae50a8f8ae35755e7a79c55163 100644 --- a/bash-5.1/builtins_rust/hash/src/lib.rs +++ b/bash-5.1/builtins_rust/hash/src/lib.rs @@ -8,6 +8,7 @@ use std::io::{stdout, Write}; use rread::{SHELL_VAR}; use rcommon::{r_find_shell_builtin,r_builtin_usage}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; +use rhelp::r_builtin_help; type PTR_T=c_void; #[repr (C)] @@ -128,7 +129,6 @@ extern "C"{ fn hash_walk(table:*mut HASH_TABLE,func:*mut hash_wfunc); fn phash_search(filename:*const c_char)->*mut c_char; fn printable_filename(f:*mut c_char,flage:i32)->*mut c_char; - fn builtin_help(); } //rust @@ -174,7 +174,7 @@ pub extern "C" fn r_hash_builtin(mut list:*mut WordList)->i32{ 't' => list_targets = 1, _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage(); diff --git a/bash-5.1/builtins_rust/help/src/lib.rs b/bash-5.1/builtins_rust/help/src/lib.rs index a5512bab8acc229cdbf0e7bce5cec506059ec63e..f1f28737652cbc163a509585d79b0ccef52fcf1d 100644 --- a/bash-5.1/builtins_rust/help/src/lib.rs +++ b/bash-5.1/builtins_rust/help/src/lib.rs @@ -99,7 +99,6 @@ extern "C"{ static mut static_shell_builtin : [builtin ; 100]; static shell_builtins:*mut builtin; static mut current_builtin :*mut builtin; - fn builtin_help(); } #[no_mangle] @@ -134,7 +133,7 @@ pub extern "C" fn r_help_builtin(mut list:*mut WordList)->i32 { _=>{ unsafe { if i == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage (); @@ -259,9 +258,7 @@ unsafe fn QUIT () } } - -#[no_mangle] -pub extern "C" fn r_builtin_help (){ +pub extern "C" fn r_builtin_help (){ // print all command usage let mut ind: i32 = 5; let d: i32; @@ -273,18 +270,11 @@ pub extern "C" fn r_builtin_help (){ d = (current_builtin as usize - shell_builtins as usize) as i32; } - ind = d ; - /* - #if defined (__STDC__) - ind = (int)d; - #else - ind = (int)d / sizeof (struct builtin); - #endif - */ + ind = d/BUILTIN_SIZEOF!() ; unsafe { - let builtin1 = &(*((shell_builtins as usize + (ind*BUILTIN_SIZEOF!()) as usize) as *mut builtin)); - println!("{:?} : {:?}",this_command_name, CStr::from_ptr(builtin1.short_doc)); + print!("{:?} : ",CStr::from_ptr(this_command_name)); } + show_helpsynopsis(ind); show_longdoc (ind); } diff --git a/bash-5.1/builtins_rust/history/Cargo.toml b/bash-5.1/builtins_rust/history/Cargo.toml index 8bb8f51a205d33984c3c69d88ea540b82dd05b73..c85a7d30c47999630f9923d683a2933266fb60ed 100644 --- a/bash-5.1/builtins_rust/history/Cargo.toml +++ b/bash-5.1/builtins_rust/history/Cargo.toml @@ -15,3 +15,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/history/src/intercdep.rs b/bash-5.1/builtins_rust/history/src/intercdep.rs index a1c6d3d18cb77159890474cd36359a3d467de6ad..e284a89d5438ad809f3499f58391ca934f32779b 100644 --- a/bash-5.1/builtins_rust/history/src/intercdep.rs +++ b/bash-5.1/builtins_rust/history/src/intercdep.rs @@ -68,7 +68,6 @@ extern "C" { pub fn sh_erange(s: *mut c_char, desc: *mut c_char); pub fn sh_restricted(s: *mut c_char) -> c_void; - fn builtin_help(); pub static mut list_optarg : *mut libc::c_char; pub static mut loptend : *mut WordList; diff --git a/bash-5.1/builtins_rust/history/src/lib.rs b/bash-5.1/builtins_rust/history/src/lib.rs index 246a68e615eafeab9d88e3adc9c559c61c71bae5..12b3a906edab766cd2a677b8af925d3f67331bdc 100644 --- a/bash-5.1/builtins_rust/history/src/lib.rs +++ b/bash-5.1/builtins_rust/history/src/lib.rs @@ -2,7 +2,7 @@ use std::{ffi::{CString, CStr}, io::Write}; use libc::{size_t, c_int, c_char, c_long, c_void, PT_NULL}; use rcommon::{r_builtin_usage,r_sh_erange,r_sh_restricted,r_sh_chkwrite,r_get_numeric_arg,WordList}; - +use rhelp::r_builtin_help; include!(concat!("intercdep.rs")); pub const AFLAG: c_int = 0x01; @@ -47,7 +47,7 @@ unsafe { 'p' => flags |= PFLAG, _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage (); diff --git a/bash-5.1/builtins_rust/jobs/Cargo.toml b/bash-5.1/builtins_rust/jobs/Cargo.toml index 8d523cf3b5ad585f284aa007085c82cdc55d787e..7b46577d0149db15289b92b46457bc51c11eaa1f 100644 --- a/bash-5.1/builtins_rust/jobs/Cargo.toml +++ b/bash-5.1/builtins_rust/jobs/Cargo.toml @@ -10,6 +10,7 @@ lazy_static = "*" libc = "*" nix = "*" rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/jobs/src/lib.rs b/bash-5.1/builtins_rust/jobs/src/lib.rs index 44ddcfdac95af7d4ec25e3bf6f3a60999a510991..ec27930edda5d0baa0902143060f2a2417b54e63 100644 --- a/bash-5.1/builtins_rust/jobs/src/lib.rs +++ b/bash-5.1/builtins_rust/jobs/src/lib.rs @@ -4,7 +4,7 @@ extern crate nix; use libc::{c_char, c_long}; use std::ffi::CString; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE}; - +use rhelp::r_builtin_help; #[repr(i8)] pub enum JOB_STATE { JNONE = -1, @@ -368,7 +368,6 @@ extern "C" { fn nohup_job (job_index:i32); fn nohup_all_jobs (running_only:i32); fn delete_all_jobs(running_only:i32); - fn builtin_help(); } #[no_mangle] @@ -452,7 +451,7 @@ pub extern "C" fn r_jobs_builtin(mut list:*mut WordList)->i32 { 's'=>{state = JSTATE_STOPPED!();} _=>{ if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage (); @@ -527,7 +526,7 @@ pub extern "C" fn r_disown_builtin (list:* mut WordList)->libc::c_int { 'r'=>{running_jobs = 1;} _=>{ if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage (); diff --git a/bash-5.1/builtins_rust/kill/Cargo.toml b/bash-5.1/builtins_rust/kill/Cargo.toml index 484a3256b215325f612623436575a9e71c38e121..66d055f0776fa61dcc7fd310f02195f037d34e26 100644 --- a/bash-5.1/builtins_rust/kill/Cargo.toml +++ b/bash-5.1/builtins_rust/kill/Cargo.toml @@ -15,3 +15,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/kill/src/intercdep.rs b/bash-5.1/builtins_rust/kill/src/intercdep.rs index 48b59a20a898335a3fe3304fe7f25beeefef9e45..4b037c56c77be95c0025ed61526d5598ac545f7e 100644 --- a/bash-5.1/builtins_rust/kill/src/intercdep.rs +++ b/bash-5.1/builtins_rust/kill/src/intercdep.rs @@ -1,4 +1,5 @@ use rcommon::{r_builtin_usage,r_sh_invalidsig,r_sh_badpid,r_sh_badjob,r_get_job_spec,r_display_signal_list,WordList,WordDesc}; +use rhelp::r_builtin_help; // #[repr(C)] // #[derive(Copy, Clone)] // pub struct word_desc { @@ -299,7 +300,6 @@ extern "C" { pub fn get_job_spec(list: *mut WordList) -> c_int; // pub fn builtin_usage(); - pub fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); pub fn legal_number(string: *mut c_char, result: c_long) -> c_int; diff --git a/bash-5.1/builtins_rust/kill/src/lib.rs b/bash-5.1/builtins_rust/kill/src/lib.rs index c47bd9b7e8a84a9a333a8ea5b3222606a62a777f..c6e8bf2f5137cf9d7955e870306fe13cbccf98ce 100644 --- a/bash-5.1/builtins_rust/kill/src/lib.rs +++ b/bash-5.1/builtins_rust/kill/src/lib.rs @@ -21,7 +21,7 @@ unsafe { if !list.is_null() && !(*list).word.is_null() && libc::strcmp((*((*list).word)).word, "--help\0".as_ptr() as *const c_char) == 0 { - builtin_help (); + r_builtin_help (); return EX_USAGE; } diff --git a/bash-5.1/builtins_rust/mapfile/Cargo.toml b/bash-5.1/builtins_rust/mapfile/Cargo.toml index 6c79fbb6e19cb82d7f52f251d50c90f4ac7379bd..22557bb71dc4f075045b34452d19196d4db1fe8e 100644 --- a/bash-5.1/builtins_rust/mapfile/Cargo.toml +++ b/bash-5.1/builtins_rust/mapfile/Cargo.toml @@ -16,3 +16,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/mapfile/src/intercdep.rs b/bash-5.1/builtins_rust/mapfile/src/intercdep.rs index a3ebfc37ae3ec81899b92b0c93b5625ba52c6ac8..f893afc1463737da300b31f1cc1b86ed37431210 100644 --- a/bash-5.1/builtins_rust/mapfile/src/intercdep.rs +++ b/bash-5.1/builtins_rust/mapfile/src/intercdep.rs @@ -1,5 +1,5 @@ use rcommon::{WordList}; - +use rhelp::r_builtin_help; pub type arrayind_t = c_long; pub type sh_var_value_func_t = @@ -71,7 +71,6 @@ extern "C" { pub fn reset_internal_getopt(); pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); - fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); pub fn legal_identifier(arg1: *const c_char) -> c_int; diff --git a/bash-5.1/builtins_rust/mapfile/src/lib.rs b/bash-5.1/builtins_rust/mapfile/src/lib.rs index 4bb49f9a6d2c37080f44fa53edcbdfa2b425e6d8..31979bbe1f009029d76dc3358969c5ba9b6cc63c 100644 --- a/bash-5.1/builtins_rust/mapfile/src/lib.rs +++ b/bash-5.1/builtins_rust/mapfile/src/lib.rs @@ -94,7 +94,7 @@ unsafe { } _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage (); diff --git a/bash-5.1/builtins_rust/printf/Cargo.toml b/bash-5.1/builtins_rust/printf/Cargo.toml index 09eb47134d19e0d319fd27f87a6e8e30fcb3b16c..af161f974b4e35ddf712328f60c6d0afee7673c8 100644 --- a/bash-5.1/builtins_rust/printf/Cargo.toml +++ b/bash-5.1/builtins_rust/printf/Cargo.toml @@ -14,3 +14,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/printf/src/intercdep.rs b/bash-5.1/builtins_rust/printf/src/intercdep.rs index 1f133a6f845b11073302e36c686a7e59f7103879..d0016ee85f801131ec4d4eafbdb98e6c88548e6d 100644 --- a/bash-5.1/builtins_rust/printf/src/intercdep.rs +++ b/bash-5.1/builtins_rust/printf/src/intercdep.rs @@ -1,5 +1,5 @@ use rcommon::{WordList}; - +use rhelp::r_builtin_help; pub type __intmax_t = c_long; pub type intmax_t = __intmax_t; pub type arrayind_t = intmax_t; @@ -56,7 +56,6 @@ extern "C" { pub fn reset_internal_getopt(); pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); - fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); pub fn builtin_warning(format: *const c_char, ...); pub fn builtin_bind_variable(name: *mut c_char, value: *mut c_char, flags: c_int) -> *mut SHELL_VAR; diff --git a/bash-5.1/builtins_rust/printf/src/lib.rs b/bash-5.1/builtins_rust/printf/src/lib.rs index 76c65a414830fd08baadd48020db129930147fd9..e4cdd99e36e051fb046efc46747b03e0f2cc25bb 100644 --- a/bash-5.1/builtins_rust/printf/src/lib.rs +++ b/bash-5.1/builtins_rust/printf/src/lib.rs @@ -140,7 +140,7 @@ unsafe { } _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage (); diff --git a/bash-5.1/builtins_rust/pushd/Cargo.toml b/bash-5.1/builtins_rust/pushd/Cargo.toml index 52119df6ec14bace7ea2634f16f7e2fd44701c1f..0cc078420a27cc2617c4367b24a400f20969b959 100644 --- a/bash-5.1/builtins_rust/pushd/Cargo.toml +++ b/bash-5.1/builtins_rust/pushd/Cargo.toml @@ -10,6 +10,7 @@ lazy_static = "*" libc = "*" nix = "*" rcommon = {path ="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/pushd/src/lib.rs b/bash-5.1/builtins_rust/pushd/src/lib.rs index 4355cfe1dc2dbcca32571b1b56578027a30e077f..70fa17da261a20a3581f010648007619eed5785d 100644 --- a/bash-5.1/builtins_rust/pushd/src/lib.rs +++ b/bash-5.1/builtins_rust/pushd/src/lib.rs @@ -2,10 +2,10 @@ extern crate libc; extern crate nix; use libc::{c_char, c_long, c_void}; -use std::{ffi::CString}; +use std::{ffi::{CString,CStr}}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE, EX_NOTFOUND, EX_NOEXEC, SUBSHELL_PAREN,r_builtin_usage}; - +use rhelp::r_builtin_help; #[repr(u8)] enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, cm_connection, cm_function_def, cm_until, cm_group, @@ -213,7 +213,6 @@ macro_rules! CLEARSTAK { } extern "C" { - fn builtin_help (); fn builtin_error(err:*const c_char,...); fn get_working_directory (path:* mut c_char)-> * mut c_char; fn sh_invalidopt (value:* mut c_char); @@ -246,7 +245,7 @@ unsafe fn ISHELP(s:* const c_char)->bool unsafe fn ISOPTION(s:* const c_char, c:c_char)->bool { - return *s == '-' as c_char && *((s as usize + 1)as * mut c_char) == c && *((s as usize + 8)as * mut c_char) != 0; + return *s == '-' as c_char && *(s.offset(1)) == c && *(s.offset(2)) == 0; } unsafe fn savestring(x:* const c_char)->* mut c_char @@ -273,7 +272,7 @@ pub extern "C" fn r_pushd_builtin (listt:* mut WordList)->i32 orig_list = list.clone(); if list != std::ptr::null_mut() && (*list).word != std::ptr::null_mut() && ISHELP((*((*list).word)).word) { - builtin_help (); + r_builtin_help (); return EX_USAGE; } @@ -455,7 +454,7 @@ let mut which_word:* mut c_char; unsafe { let mut list:* mut WordList=listt.clone(); if list != std::ptr::null_mut() && (*list).word != std::ptr::null_mut() && ISHELP((*((*list).word)).word) { - builtin_help (); + r_builtin_help (); return EX_USAGE; } @@ -568,7 +567,7 @@ pub extern "C" fn r_dirs_builtin (listt:* mut WordList)->i32 unsafe { let mut list:* mut WordList=listt.clone(); if list != std::ptr::null_mut() && (*list).word != std::ptr::null_mut() && ISHELP((*((*list).word)).word) { - builtin_help (); + r_builtin_help (); return EX_USAGE; } @@ -586,15 +585,15 @@ pub extern "C" fn r_dirs_builtin (listt:* mut WordList)->i32 break; } else if *((*((*list).word)).word) == '+' as c_char || *((*((*list).word)).word) == '-' as c_char { let sign:i32; - w = ((*((*list).word)).word as usize +1) as * mut c_char; - if legal_number (w, &mut i) == 0 { + w = (*(*list).word).word.offset(1); + if legal_number (w, &mut i) == 0 { sh_invalidnum ((*((*list).word)).word); builtin_usage (); return EX_USAGE; } - if *((*((*list).word)).word) == '+' as c_char { - sign = -1; + if *((*(*list).word).word) == '+' as c_char{ + sign = 1; } else { sign = -1; } @@ -783,7 +782,7 @@ pub extern "C" fn r_get_dirstack_index (ind:libc::c_long, sign:i32, indexp:* mut if sign > 0 { *indexp=1; } else { - *indexp=0; + *indexp=2; } } /* dirs +0 prints the current working directory. */ diff --git a/bash-5.1/builtins_rust/read/Cargo.toml b/bash-5.1/builtins_rust/read/Cargo.toml index b13cb8c54e35abdac56d5ad70baf65b80192005f..a4fc74304bce012414dbaa97381a3fdc42d935b5 100644 --- a/bash-5.1/builtins_rust/read/Cargo.toml +++ b/bash-5.1/builtins_rust/read/Cargo.toml @@ -14,3 +14,4 @@ crate-type = ["staticlib", "rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/read/src/intercdep.rs b/bash-5.1/builtins_rust/read/src/intercdep.rs index 5c9570a0da3cfd9e93506df7ac46c1cc20b3b647..3229d8237c521ba772ac7dbaa2af0907e381f14c 100644 --- a/bash-5.1/builtins_rust/read/src/intercdep.rs +++ b/bash-5.1/builtins_rust/read/src/intercdep.rs @@ -1,6 +1,6 @@ use rcommon::{r_builtin_usage,r_sh_invalidid,r_builtin_bind_variable,WordList,WordDesc}; pub type SHELL_VAR = rcommon::SHELL_VAR; - +use rhelp::r_builtin_help; pub type __intmax_t = c_long; pub type intmax_t = __intmax_t; pub type arrayind_t = intmax_t; @@ -271,7 +271,6 @@ extern "C" { pub fn rl_get_keymap() -> Keymap; pub fn rl_insert(count: c_int, key: c_int) -> c_int; pub fn rl_newline(count: c_int, key: c_int) -> c_int; - fn builtin_help(); } extern "C" { diff --git a/bash-5.1/builtins_rust/read/src/lib.rs b/bash-5.1/builtins_rust/read/src/lib.rs index bbc3c10eeb52b4e2296eccc8fba25e3d9868bb7c..87fd91257044e93cde37446258815e4c397a98a1 100644 --- a/bash-5.1/builtins_rust/read/src/lib.rs +++ b/bash-5.1/builtins_rust/read/src/lib.rs @@ -193,7 +193,7 @@ unsafe { _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage (); diff --git a/bash-5.1/builtins_rust/rlet/Cargo.toml b/bash-5.1/builtins_rust/rlet/Cargo.toml index 1365a55247a938be4ff0575acb81d94fa0cf9ff3..26608406a9f765218c70bb62c3ac4493e9c48cb5 100644 --- a/bash-5.1/builtins_rust/rlet/Cargo.toml +++ b/bash-5.1/builtins_rust/rlet/Cargo.toml @@ -15,3 +15,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/rlet/src/intercdep.rs b/bash-5.1/builtins_rust/rlet/src/intercdep.rs index d37ae34bc367b7e15245baa881c25ee85051fd34..221190e1312888efee40947691bc3b458f589faa 100644 --- a/bash-5.1/builtins_rust/rlet/src/intercdep.rs +++ b/bash-5.1/builtins_rust/rlet/src/intercdep.rs @@ -1,5 +1,5 @@ use rcommon::{WordList}; - +use rhelp::r_builtin_help; pub const EXECUTION_SUCCESS : c_int = 0; pub const EXECUTION_FAILURE : c_int = 1; pub const EX_USAGE: c_int = 258; @@ -20,7 +20,6 @@ extern "C" { pub fn string_list(list: *mut WordList) -> *mut c_char; pub fn builtin_usage(); - pub fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); pub fn evalexp (expr: *mut c_char, flags: c_int, validp: *mut c_int) -> c_long; diff --git a/bash-5.1/builtins_rust/rlet/src/lib.rs b/bash-5.1/builtins_rust/rlet/src/lib.rs index 629da2ef4b44989ab256abec736b583434f4c4e4..5c126131c97936a6b73aa31a8d82029194c41875 100644 --- a/bash-5.1/builtins_rust/rlet/src/lib.rs +++ b/bash-5.1/builtins_rust/rlet/src/lib.rs @@ -12,7 +12,7 @@ unsafe { if !list.is_null() && !(*list).word.is_null() && libc::strcmp((*((*list).word)).word, "--help\0".as_ptr() as *const c_char) == 0 { - builtin_help (); + r_builtin_help (); return EX_USAGE; } diff --git a/bash-5.1/builtins_rust/rreturn/Cargo.toml b/bash-5.1/builtins_rust/rreturn/Cargo.toml index 5968cac365fa37dcf5e4bf9047257fe1775923ab..04386c2e8f3af56c3e27d193759a1ba9875ce7c3 100644 --- a/bash-5.1/builtins_rust/rreturn/Cargo.toml +++ b/bash-5.1/builtins_rust/rreturn/Cargo.toml @@ -15,3 +15,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/rreturn/src/intercdep.rs b/bash-5.1/builtins_rust/rreturn/src/intercdep.rs index 42b6d10df8b4f25ce663b27155800a64c3369fce..0ca17eb89a1692b02ae60af0768e7f0affdfaf22 100644 --- a/bash-5.1/builtins_rust/rreturn/src/intercdep.rs +++ b/bash-5.1/builtins_rust/rreturn/src/intercdep.rs @@ -38,7 +38,6 @@ pub type sigjmp_buf = [__jmp_buf_tag; 1usize]; extern "C" { pub fn builtin_usage(); - pub fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); pub fn get_exitstat(list: *mut WordList) -> c_int; diff --git a/bash-5.1/builtins_rust/rreturn/src/lib.rs b/bash-5.1/builtins_rust/rreturn/src/lib.rs index f05ecc58e088fad3873851ead1eddd5e8dcd16ed..b9ca0f45daf22f5424eca37f1fe66058c565a643 100644 --- a/bash-5.1/builtins_rust/rreturn/src/lib.rs +++ b/bash-5.1/builtins_rust/rreturn/src/lib.rs @@ -1,6 +1,7 @@ use libc::{c_int, c_char, c_long, c_ulong}; use rcommon::{r_get_exitstat,WordList}; include!(concat!("intercdep.rs")); +use rhelp::r_builtin_help; #[no_mangle] pub extern "C" fn r_return_builtin(list: *mut WordList) -> i32 { @@ -8,7 +9,7 @@ pub extern "C" fn r_return_builtin(list: *mut WordList) -> i32 { unsafe { if !list.is_null() && !(*list).word.is_null() && libc::strcmp((*((*list).word)).word, "--help\0".as_ptr() as *const c_char) == 0 { - builtin_help (); + r_builtin_help (); return EX_USAGE; } diff --git a/bash-5.1/builtins_rust/set/Cargo.toml b/bash-5.1/builtins_rust/set/Cargo.toml index 33c1629de190ce1b91c86af9c83ce55f17f56e62..f6f50464a6a20bfe83903f5b91c86c9f49df3992 100644 --- a/bash-5.1/builtins_rust/set/Cargo.toml +++ b/bash-5.1/builtins_rust/set/Cargo.toml @@ -10,6 +10,8 @@ libc="*" nix="*" lazy_static = "*" rcommon = {path ="../common"} +rhelp = {path ="../help"} + [lib] crate-type = ["staticlib","rlib"] name = "rset" diff --git a/bash-5.1/builtins_rust/set/src/lib.rs b/bash-5.1/builtins_rust/set/src/lib.rs index c7bf273a58dc5985348294693a2c4e38afc3fffd..10ec77b78ee762f2c38380491e9d693ba2357360 100644 --- a/bash-5.1/builtins_rust/set/src/lib.rs +++ b/bash-5.1/builtins_rust/set/src/lib.rs @@ -7,6 +7,7 @@ use std::ptr; use std::mem; use std::io; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE, EX_NOTFOUND, EX_NOEXEC, SUBSHELL_PAREN,r_builtin_usage}; +use rhelp::r_builtin_help; #[macro_export] macro_rules! FLAG_UNKNOWN { @@ -852,7 +853,6 @@ extern "C" { fn with_input_from_stream (_:libc::FILE , _: *const libc::c_char); fn stupidly_hack_special_variables (_ : *mut libc::c_char); fn builtin_error(_: *const libc::c_char, _: ...); - fn builtin_help(); static mut posixly_correct : i32; static mut enable_history_list : i32; static mut ignoreeof : i32 ; @@ -1433,10 +1433,8 @@ unsafe fn reset_shell_options () { } } _ => { - if opt == -99 { - unsafe { - builtin_help(); - } + if opt == -99{ + r_builtin_help(); return EX_USAGE; } // unsafe { @@ -1651,7 +1649,7 @@ pub extern "C" fn r_unset_builtin(mut list: *mut WordList) -> i32 { 'n'=>{nameref = 1;} _=>{ if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage (); diff --git a/bash-5.1/builtins_rust/setattr/Cargo.toml b/bash-5.1/builtins_rust/setattr/Cargo.toml index e6ca0fe5659c3a71b5d26e2b8d4c5705118d9d73..92f9f82b242b074388c9dfc8fdcdaa387a9343ca 100644 --- a/bash-5.1/builtins_rust/setattr/Cargo.toml +++ b/bash-5.1/builtins_rust/setattr/Cargo.toml @@ -19,3 +19,4 @@ libc = "*" nix = "*" rdeclare = {path = "../declare"} rcommon = {path = "../common"} +rhelp = {path ="../help"} \ No newline at end of file diff --git a/bash-5.1/builtins_rust/setattr/src/intercdep.rs b/bash-5.1/builtins_rust/setattr/src/intercdep.rs index a6bf5817a4b7835cb12e85c25484f9f11429201e..8c4655937ba5aea202fd59998c0c25838c719c1a 100644 --- a/bash-5.1/builtins_rust/setattr/src/intercdep.rs +++ b/bash-5.1/builtins_rust/setattr/src/intercdep.rs @@ -345,7 +345,6 @@ extern "C" { pub fn reset_internal_getopt(); pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); - fn builtin_help(); pub fn builtin_error(arg1: *const c_char, ...); pub fn find_function(name: *const c_char) -> *mut SHELL_VAR; pub fn exportable_function_name(string: *const c_char) -> c_int; diff --git a/bash-5.1/builtins_rust/setattr/src/lib.rs b/bash-5.1/builtins_rust/setattr/src/lib.rs index e8a9cce84c17a76e470aff37b85e856b581011e9..e6e76681c983b345e4ac5efc452f756ffa895d8d 100644 --- a/bash-5.1/builtins_rust/setattr/src/lib.rs +++ b/bash-5.1/builtins_rust/setattr/src/lib.rs @@ -1,7 +1,7 @@ use std::mem::size_of_val; use libc::{c_int, c_uint, c_char, c_long, PT_NULL, c_void}; - +use rhelp::r_builtin_help; include!(concat!("intercdep.rs")); #[no_mangle] @@ -40,9 +40,10 @@ unsafe { 'f' => functions_only = true, 'a' => arrays_only = 1, 'A' => assoc_only = 1, + 'p' => break, _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage (); diff --git a/bash-5.1/builtins_rust/shift/Cargo.toml b/bash-5.1/builtins_rust/shift/Cargo.toml index f9a623de147e2376fc1861004c6af34ac772d6e8..39d77f2d9f2c59cd6203c260649713f97d132180 100644 --- a/bash-5.1/builtins_rust/shift/Cargo.toml +++ b/bash-5.1/builtins_rust/shift/Cargo.toml @@ -11,7 +11,9 @@ authors = ["lvgenggeng"] name = "rshift" crate-type = ["staticlib","rlib"] + [dependencies] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} \ No newline at end of file diff --git a/bash-5.1/builtins_rust/shift/src/intercdep.rs b/bash-5.1/builtins_rust/shift/src/intercdep.rs index 7130cc619efba5d49b95ee4ed3c8249d1cf9329f..5ea7ff657c0a793c9d5dae8935d4d9212b07345f 100644 --- a/bash-5.1/builtins_rust/shift/src/intercdep.rs +++ b/bash-5.1/builtins_rust/shift/src/intercdep.rs @@ -6,7 +6,6 @@ pub const EX_USAGE: c_int = 258; extern "C" { pub fn builtin_usage(); - pub fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); pub fn get_numeric_arg(list: *mut WordList, fatal: c_int, count: c_long) -> c_int; diff --git a/bash-5.1/builtins_rust/shift/src/lib.rs b/bash-5.1/builtins_rust/shift/src/lib.rs index 47e92555e094e65e1b44aea1738f0b7ea63551bd..affc5e7945e44ab353d3f072baaaab6211d20763 100644 --- a/bash-5.1/builtins_rust/shift/src/lib.rs +++ b/bash-5.1/builtins_rust/shift/src/lib.rs @@ -1,5 +1,6 @@ use libc::{c_int, c_char, c_long, PT_NULL}; use rcommon::{r_sh_erange,}; +use rhelp::r_builtin_help; include!(concat!("intercdep.rs")); @@ -11,7 +12,7 @@ pub extern "C" fn r_shift_builtin(list: *mut WordList) -> i32 { unsafe { if !list.is_null() && !(*list).word.is_null() && libc::strcmp((*((*list).word)).word, "--help\0".as_ptr() as *const c_char) == 0 { - builtin_help (); + r_builtin_help (); return EX_USAGE; } diff --git a/bash-5.1/builtins_rust/shopt/Cargo.toml b/bash-5.1/builtins_rust/shopt/Cargo.toml index f7f08f7e091ad633d49af5590fff6d0b47294675..4183952724b70d071733077ebfb10daa2768d132 100644 --- a/bash-5.1/builtins_rust/shopt/Cargo.toml +++ b/bash-5.1/builtins_rust/shopt/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" libc = "*" rset = {path="../set"} rcommon = {path="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/shopt/src/lib.rs b/bash-5.1/builtins_rust/shopt/src/lib.rs index 583437e06a5fa881eaced378e9810bdd9228d71b..4642964d8b54b73395b8f5958ddb586a92beada5 100644 --- a/bash-5.1/builtins_rust/shopt/src/lib.rs +++ b/bash-5.1/builtins_rust/shopt/src/lib.rs @@ -4,6 +4,7 @@ use rset::r_set_shellopts; use libc::*; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE, EX_NOTFOUND, EX_NOEXEC, SUBSHELL_PAREN,r_builtin_usage}; +use rhelp::r_builtin_help; /* /* First, the user-visible attributes */ #define att_exported 0x0000001 /* export to environment */ @@ -123,7 +124,6 @@ extern "C" { fn builtin_usage(); fn sh_invalidoptname(_: *mut libc::c_char); fn sh_chkwrite(_: i32) -> libc::c_int; - fn builtin_help(); fn minus_o_option_value(_: *mut libc::c_char) -> i32; fn list_minus_o_opts(_: i32, _: i32); fn set_minus_o_option(_: i32, _: *mut libc::c_char) -> libc::c_int; @@ -950,7 +950,7 @@ pub unsafe extern "C" fn r_shopt_builtin(mut list: *mut WordList) -> i32 { _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage(); diff --git a/bash-5.1/builtins_rust/source/Cargo.toml b/bash-5.1/builtins_rust/source/Cargo.toml index 4c5eb608a35e465da59e6861758f8b292a39a15d..5637fcd464792277d012ec7fc34a475829970a1b 100644 --- a/bash-5.1/builtins_rust/source/Cargo.toml +++ b/bash-5.1/builtins_rust/source/Cargo.toml @@ -10,6 +10,7 @@ lazy_static = "*" libc = "*" nix = "*" rcommon = {path ="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/source/src/lib.rs b/bash-5.1/builtins_rust/source/src/lib.rs index 76371ffd2ca15c7ad692563e5148ab26f0f1ae5c..ac2ebe11ff58e68174beeb42e517db0eb98cc1a2 100644 --- a/bash-5.1/builtins_rust/source/src/lib.rs +++ b/bash-5.1/builtins_rust/source/src/lib.rs @@ -4,7 +4,7 @@ extern crate nix; use libc::{c_char, c_long, c_void}; use std::{ffi::CString}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE, EX_NOTFOUND, EX_NOEXEC, SUBSHELL_PAREN,r_builtin_usage}; - +use rhelp::r_builtin_help; #[repr(u8)] enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select, diff --git a/bash-5.1/builtins_rust/suspend/Cargo.toml b/bash-5.1/builtins_rust/suspend/Cargo.toml index b8ca88879f8cf99844d2143b43d29e6ccaaaaf1b..e1f8bccad472927aa1e0d6e620702788e6ae27be 100644 --- a/bash-5.1/builtins_rust/suspend/Cargo.toml +++ b/bash-5.1/builtins_rust/suspend/Cargo.toml @@ -15,3 +15,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/suspend/src/intercdep.rs b/bash-5.1/builtins_rust/suspend/src/intercdep.rs index b7a9c02c17bc76e7f6fed5656e17f6ccd48609c7..a8d982543ec567b1da1bf122b2f919f463da1f52 100644 --- a/bash-5.1/builtins_rust/suspend/src/intercdep.rs +++ b/bash-5.1/builtins_rust/suspend/src/intercdep.rs @@ -25,7 +25,6 @@ extern "C" { pub fn reset_internal_getopt(); pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); - pub fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); pub fn sh_nojobs(s: *mut c_char); diff --git a/bash-5.1/builtins_rust/suspend/src/lib.rs b/bash-5.1/builtins_rust/suspend/src/lib.rs index 574c8b4dac9d64ca5d8747700ef849f5b90d40af..182dcaadd9cef6eb0f7feca3e53936f625dd3fba 100644 --- a/bash-5.1/builtins_rust/suspend/src/lib.rs +++ b/bash-5.1/builtins_rust/suspend/src/lib.rs @@ -1,6 +1,6 @@ use libc::{c_int, c_char, c_long, PT_NULL}; use rcommon::{r_no_args,WordList,r_builtin_usage}; - +use rhelp::r_builtin_help; include!(concat!("intercdep.rs")); pub static mut old_cont: *mut SigHandler = PT_NULL as *mut SigHandler; @@ -21,7 +21,7 @@ unsafe { 'f' => force += 1, _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage (); diff --git a/bash-5.1/builtins_rust/test/Cargo.toml b/bash-5.1/builtins_rust/test/Cargo.toml index b4162c5c51b96c49c7b9f7d38c6dd79546ebe0af..13f2c6364aa259bee93ed8bb211606c4b0b5f444 100644 --- a/bash-5.1/builtins_rust/test/Cargo.toml +++ b/bash-5.1/builtins_rust/test/Cargo.toml @@ -15,3 +15,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/test/src/lib.rs b/bash-5.1/builtins_rust/test/src/lib.rs index 0112ec1851bc70a74a5d1c0ad5adb5ce592c3f01..5b82ccb30122658ea9bc7f677917c391ee114c2a 100644 --- a/bash-5.1/builtins_rust/test/src/lib.rs +++ b/bash-5.1/builtins_rust/test/src/lib.rs @@ -1,6 +1,7 @@ use libc::{c_int, c_char, c_void}; use rcommon::{r_make_builtin_argv,WordList}; include!(concat!("intercdep.rs")); +use rhelp::r_builtin_help; #[no_mangle] pub extern "C" fn r_test_builtin(list: *mut WordList) -> i32 { diff --git a/bash-5.1/builtins_rust/times/Cargo.toml b/bash-5.1/builtins_rust/times/Cargo.toml index e9e88365913ec6c2da98f091a4bd15406a639911..24062627be1d2edfd4ccaf390a4f05b842ac8144 100644 --- a/bash-5.1/builtins_rust/times/Cargo.toml +++ b/bash-5.1/builtins_rust/times/Cargo.toml @@ -15,3 +15,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/trap/Cargo.toml b/bash-5.1/builtins_rust/trap/Cargo.toml index 2405fb780be55fdecbb10a3d75b549255d416087..79cdfff458fe82fd9333c46775bd023c22ca0b27 100644 --- a/bash-5.1/builtins_rust/trap/Cargo.toml +++ b/bash-5.1/builtins_rust/trap/Cargo.toml @@ -15,3 +15,4 @@ crate-type = ["staticlib","rlib"] libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} diff --git a/bash-5.1/builtins_rust/trap/src/intercdep.rs b/bash-5.1/builtins_rust/trap/src/intercdep.rs index fba354db2a4f39776fd1c7b60be33f19333262e5..93e2d8a223feb297a4e278da59047ffc6a3aaf4d 100644 --- a/bash-5.1/builtins_rust/trap/src/intercdep.rs +++ b/bash-5.1/builtins_rust/trap/src/intercdep.rs @@ -37,7 +37,6 @@ extern "C" { pub fn reset_internal_getopt(); pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); - fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); pub fn sh_chkwrite(s: c_int) -> c_int; diff --git a/bash-5.1/builtins_rust/trap/src/lib.rs b/bash-5.1/builtins_rust/trap/src/lib.rs index cdc9a5fb591d7b9fe86761ab4fba64a65b27f402..93598c2449b5116ff3c6540b9c55346cd30c1e12 100644 --- a/bash-5.1/builtins_rust/trap/src/lib.rs +++ b/bash-5.1/builtins_rust/trap/src/lib.rs @@ -2,7 +2,7 @@ use std::{ffi::CString}; use libc::{c_int, c_char, c_void, PT_NULL}; use rcommon::{r_builtin_usage,r_display_signal_list,WordList,r_sh_invalidsig,r_sh_chkwrite}; - +use rhelp::r_builtin_help; include!(concat!("intercdep.rs")); @@ -24,7 +24,7 @@ unsafe { 'p' => display += 1, _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage (); diff --git a/bash-5.1/builtins_rust/type/Cargo.toml b/bash-5.1/builtins_rust/type/Cargo.toml index 8b98ea33e5d27d8a7321244f05cf14c8108e6c3e..44b8949e7c38c8ab71fa1ac676fffe835522b8d9 100644 --- a/bash-5.1/builtins_rust/type/Cargo.toml +++ b/bash-5.1/builtins_rust/type/Cargo.toml @@ -11,6 +11,7 @@ version = "0.0.1" libc = "*" nix = "*" rcommon = {path ="../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/type/src/lib.rs b/bash-5.1/builtins_rust/type/src/lib.rs index fc4c26ddac2352826b4bf992387ba876f2db0bba..5f1eab4fde3074e8289d6652fbc761690e4c67bf 100644 --- a/bash-5.1/builtins_rust/type/src/lib.rs +++ b/bash-5.1/builtins_rust/type/src/lib.rs @@ -6,6 +6,7 @@ use std::ffi::CStr; use std::ffi::CString; use std::ptr; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE, EX_NOTFOUND, EX_NOEXEC, SUBSHELL_PAREN,r_builtin_usage}; +use rhelp::r_builtin_help; #[macro_export] macro_rules! CDESC_ALL{ @@ -64,7 +65,7 @@ macro_rules! CDESC_STDPATH{ macro_rules! CHECK_HELPOPT { ($l:expr) => { if $l !=std::ptr::null_mut() && (*$l).word !=std::ptr::null_mut() && ISHELP!((*(*$l).word).word) == 0 { - builtin_help (); + r_builtin_help (); return EX_USAGE; } } @@ -356,7 +357,6 @@ extern "C" { fn reset_internal_getopt(); fn internal_getopt (list:*mut WordList , opts:*mut libc::c_char)->i32; fn builtin_usage(); - fn builtin_help(); fn sh_notfound (name:* mut libc::c_char); fn sh_chkwrite (ret:i32)->i32; fn find_alias(alia :*mut libc::c_char) ->alias_t; @@ -446,7 +446,7 @@ pub unsafe extern "C" fn r_type_builtin (mut list :*mut WordList) -> i32 { } _ =>{ if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } unsafe { diff --git a/bash-5.1/builtins_rust/ulimit/Cargo.toml b/bash-5.1/builtins_rust/ulimit/Cargo.toml index fd642b1932b2c45d874af2297d5432a6b9bf0ea9..075af9f4b82dfe8fcd394d6cac924a14df1bad56 100644 --- a/bash-5.1/builtins_rust/ulimit/Cargo.toml +++ b/bash-5.1/builtins_rust/ulimit/Cargo.toml @@ -12,6 +12,7 @@ lazy_static = "*" libc = "*" nix = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/ulimit/src/lib.rs b/bash-5.1/builtins_rust/ulimit/src/lib.rs index 283ed16cd3dbcb9c6e1220aa0f14d336662e0913..481ff72afe2a3ab1155c537e11cb6278d5921acc 100644 --- a/bash-5.1/builtins_rust/ulimit/src/lib.rs +++ b/bash-5.1/builtins_rust/ulimit/src/lib.rs @@ -6,7 +6,7 @@ use std::ffi::CString; use std::ptr; use std::mem; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE, EX_NOTFOUND, EX_NOEXEC, SUBSHELL_PAREN,r_builtin_usage}; - +use rhelp::r_builtin_help; #[derive(Copy, Clone)] #[repr(C)] @@ -388,7 +388,6 @@ extern "C" { fn sprintf(_: *mut libc::c_char, _: *const libc::c_char, _: ...) -> i32; fn string_to_rlimtype(_: *mut libc::c_char ) -> rlim_t; fn getdtablesize() -> i32; - fn builtin_help (); fn builtin_usage(); fn sh_erange (s:* mut libc::c_char, desc:* mut libc::c_char); fn sh_invalidnum(arg1: *mut libc::c_char); @@ -489,7 +488,7 @@ pub unsafe extern "C" fn r_ulimit_builtin(mut list: *mut WordList) -> i32{ _ => { //println!("enter switch default,opt is {}",opt); if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } if ncmd >= cmdlistsz { diff --git a/bash-5.1/builtins_rust/umask/Cargo.toml b/bash-5.1/builtins_rust/umask/Cargo.toml index 6c809514a88c3d42007ca5c63b5d0bc728c5931f..03234e79a2f8fa01946698461c4961b2a4c0d567 100644 --- a/bash-5.1/builtins_rust/umask/Cargo.toml +++ b/bash-5.1/builtins_rust/umask/Cargo.toml @@ -9,6 +9,7 @@ edition = "2018" [dependencies] libc = "*" rcommon = {path = "../common"} +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/umask/src/lib.rs b/bash-5.1/builtins_rust/umask/src/lib.rs index 5ad75042953e863e2a8b830c4ed2a212362d6692..3f5238500b9c239e8aeaec54c34e083d4cde7f2e 100644 --- a/bash-5.1/builtins_rust/umask/src/lib.rs +++ b/bash-5.1/builtins_rust/umask/src/lib.rs @@ -5,7 +5,7 @@ use std::ffi::{CString}; use rcommon::{r_read_octal}; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE, EX_NOTFOUND, EX_NOEXEC, SUBSHELL_PAREN,r_builtin_usage}; - +use rhelp::r_builtin_help; //结构体 @@ -152,7 +152,6 @@ extern "C" { fn reset_internal_getopt(); fn internal_getopt (list:*mut WordList, opts:*mut c_char)->i32; fn builtin_usage(); - fn builtin_help(); // fn read_octal(string:*mut c_char)->i32; fn sh_erange(s:*mut c_char,desc:*mut c_char); fn sh_chkwrite(s:i32)->i32; @@ -206,7 +205,7 @@ pub extern "C" fn r_umask_builtin(mut list:*mut WordList) ->i32{ 'p' => {pflag = pflag + 1;} _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } builtin_usage(); diff --git a/bash-5.1/builtins_rust/wait/Cargo.toml b/bash-5.1/builtins_rust/wait/Cargo.toml index ce4f668da1789135b7f7a575c09885f68fe3b9e1..a84d272aaf59cc335c427c959713b2e9b02ecc3e 100644 --- a/bash-5.1/builtins_rust/wait/Cargo.toml +++ b/bash-5.1/builtins_rust/wait/Cargo.toml @@ -12,7 +12,7 @@ nix = "*" rjobs = {path = "../jobs"} rread = {path = "../read"} rcommon = {path = "../common"} - +rhelp = {path ="../help"} [lib] crate-type = ["staticlib","rlib"] diff --git a/bash-5.1/builtins_rust/wait/src/lib.rs b/bash-5.1/builtins_rust/wait/src/lib.rs index d48e5d7d8f6a44ab1a6401d6ae2d6e1d9c887013..03f1a9c93c9f4bd6b3e5a202c3158e590d175718 100644 --- a/bash-5.1/builtins_rust/wait/src/lib.rs +++ b/bash-5.1/builtins_rust/wait/src/lib.rs @@ -14,7 +14,7 @@ use rread::{SHELL_VAR,sh_var_value_func_t,sh_var_assign_func_t, use rcommon::{r_builtin_unbind_variable,r_builtin_usage,r_get_job_spec,WordList}; use rcommon::{ WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE, EX_NOTFOUND, EX_NOEXEC, SUBSHELL_PAREN}; - +use rhelp::r_builtin_help; // 结构体 #[repr(C)] pub struct procstat{ @@ -191,7 +191,6 @@ extern "C" { static assoc_expand_once:i32; static mut last_command_exit_signal:i32; static posixly_correct:i32; - // fn sigsetjmp(env:sigjmp_buf,val:c_int)->i32; fn internal_getopt (list:*mut WordList, opts:*mut c_char)->i32; // fn builtin_usage(); @@ -212,7 +211,6 @@ extern "C" { fn wait_for_background_pids(ps:*mut procstat); fn wait_for_single_pid(pid:pid_t,flags:i32)->i32; fn wait_for_job(job:i32,flags:i32,ps:*mut procstat)->i32; - fn builtin_help(); } unsafe fn DIGIT(c:c_char)->bool{ @@ -276,7 +274,7 @@ pub extern "C" fn r_wait_builtin(mut list:*mut WordList)->i32{ 'p' => vname = list_optarg, _ => { if opt == -99 { - builtin_help(); + r_builtin_help(); return EX_USAGE; } r_builtin_usage(); diff --git a/record.txt b/record.txt index f34e96dc57d3ae22de6d24bdc63fc5f859651826..9fe2e2004a106a178097e931a8be2e60929be5fc 100644 --- a/record.txt +++ b/record.txt @@ -66,3 +66,4 @@ 88 89 90 +91