From ffaacf51fecb09ae156153241498790e92f6ee49 Mon Sep 17 00:00:00 2001 From: liutong Date: Thu, 10 Aug 2023 23:32:07 +0800 Subject: [PATCH] fix build error --- bash-5.1/builtins_rust/alias/src/lib.rs | 14 +- bash-5.1/builtins_rust/bind/src/lib.rs | 14 +- bash-5.1/builtins_rust/break_1/src/lib.rs | 14 +- .../builtins_rust/builtin/src/intercdep.rs | 16 +-- bash-5.1/builtins_rust/builtin/src/lib.rs | 2 +- bash-5.1/builtins_rust/caller/src/lib.rs | 12 +- bash-5.1/builtins_rust/cd/src/lib.rs | 46 +++---- bash-5.1/builtins_rust/colon/src/lib.rs | 10 +- bash-5.1/builtins_rust/command/src/lib.rs | 42 +++--- bash-5.1/builtins_rust/common/src/lib.rs | 93 +++++++------ bash-5.1/builtins_rust/complete/src/lib.rs | 82 ++++++------ bash-5.1/builtins_rust/declare/src/lib.rs | 54 ++++---- bash-5.1/builtins_rust/echo/src/lib.rs | 10 +- bash-5.1/builtins_rust/enable/src/lib.rs | 18 +-- bash-5.1/builtins_rust/eval/src/lib.rs | 16 +-- bash-5.1/builtins_rust/exec/src/lib.rs | 18 +-- bash-5.1/builtins_rust/exit/src/lib.rs | 18 +-- bash-5.1/builtins_rust/fc/src/lib.rs | 50 +++---- bash-5.1/builtins_rust/fg_bg/src/lib.rs | 56 ++++---- bash-5.1/builtins_rust/getopts/src/lib.rs | 50 +++---- bash-5.1/builtins_rust/hash/src/lib.rs | 20 +-- bash-5.1/builtins_rust/help/src/lib.rs | 22 ++-- .../builtins_rust/history/src/intercdep.rs | 14 +- bash-5.1/builtins_rust/history/src/lib.rs | 10 +- bash-5.1/builtins_rust/jobs/src/lib.rs | 54 ++++---- bash-5.1/builtins_rust/kill/src/intercdep.rs | 44 +++---- bash-5.1/builtins_rust/kill/src/lib.rs | 4 +- .../builtins_rust/mapfile/src/intercdep.rs | 10 +- bash-5.1/builtins_rust/mapfile/src/lib.rs | 2 +- .../builtins_rust/printf/src/intercdep.rs | 10 +- bash-5.1/builtins_rust/printf/src/lib.rs | 6 +- bash-5.1/builtins_rust/pushd/src/lib.rs | 70 +++++----- bash-5.1/builtins_rust/read/src/intercdep.rs | 20 +-- bash-5.1/builtins_rust/read/src/lib.rs | 4 +- bash-5.1/builtins_rust/rlet/src/intercdep.rs | 10 +- bash-5.1/builtins_rust/rlet/src/lib.rs | 4 +- .../builtins_rust/rreturn/src/intercdep.rs | 10 +- bash-5.1/builtins_rust/rreturn/src/lib.rs | 4 +- bash-5.1/builtins_rust/set/src/lib.rs | 20 +-- .../builtins_rust/setattr/src/intercdep.rs | 48 +++---- bash-5.1/builtins_rust/setattr/src/lib.rs | 16 +-- bash-5.1/builtins_rust/shift/src/intercdep.rs | 10 +- bash-5.1/builtins_rust/shift/src/lib.rs | 2 +- bash-5.1/builtins_rust/shopt/Cargo.toml | 1 + bash-5.1/builtins_rust/shopt/src/lib.rs | 122 ++++++++---------- bash-5.1/builtins_rust/source/src/lib.rs | 50 +++---- .../builtins_rust/suspend/src/intercdep.rs | 12 +- bash-5.1/builtins_rust/suspend/src/lib.rs | 4 +- bash-5.1/builtins_rust/test/src/intercdep.rs | 10 +- bash-5.1/builtins_rust/test/src/lib.rs | 4 +- bash-5.1/builtins_rust/times/src/intercdep.rs | 8 +- bash-5.1/builtins_rust/times/src/lib.rs | 2 +- bash-5.1/builtins_rust/trap/src/intercdep.rs | 12 +- bash-5.1/builtins_rust/trap/src/lib.rs | 8 +- bash-5.1/builtins_rust/type/src/lib.rs | 48 +++---- bash-5.1/builtins_rust/ulimit/src/lib.rs | 14 +- bash-5.1/builtins_rust/umask/src/lib.rs | 16 +-- bash-5.1/builtins_rust/wait/src/lib.rs | 16 +-- record.txt | 1 + 59 files changed, 694 insertions(+), 683 deletions(-) diff --git a/bash-5.1/builtins_rust/alias/src/lib.rs b/bash-5.1/builtins_rust/alias/src/lib.rs index 3d44ddf..31bd018 100644 --- a/bash-5.1/builtins_rust/alias/src/lib.rs +++ b/bash-5.1/builtins_rust/alias/src/lib.rs @@ -23,8 +23,8 @@ extern "C" { fn sh_notfound(_: *mut libc::c_char); fn sh_chkwrite(_: libc::c_int) -> libc::c_int; fn builtin_help(); - static mut loptend: *mut WORD_LIST; - fn internal_getopt(_: *mut WORD_LIST, _: *mut libc::c_char) -> libc::c_int; + static mut loptend: *mut WordList; + fn internal_getopt(_: *mut WordList, _: *mut libc::c_char) -> libc::c_int; fn reset_internal_getopt(); } pub type size_t = libc::c_ulong; @@ -35,14 +35,14 @@ pub struct word_desc { pub word: *mut libc::c_char, pub flags: libc::c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[derive(Copy, Clone)] #[repr(C)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; #[derive(Copy, Clone)] #[repr(C)] pub struct bucket_contents { @@ -78,7 +78,7 @@ use rcommon::r_builtin_usage; #[no_mangle] -pub unsafe extern "C" fn r_alias_builtin(mut list: *mut WORD_LIST) -> libc::c_int { +pub unsafe extern "C" fn r_alias_builtin(mut list: *mut WordList) -> libc::c_int { println!("alias_builtin run!"); let mut any_failed = 0; let mut offset = 0; @@ -173,7 +173,7 @@ pub unsafe extern "C" fn r_alias_builtin(mut list: *mut WORD_LIST) -> libc::c_in return if any_failed != 0 { rcommon::EXECUTION_FAILURE!()} else { EXECUTION_SUCCESS}; } #[no_mangle] -pub unsafe extern "C" fn r_unalias_builtin(mut list: *mut WORD_LIST) -> libc::c_int { +pub unsafe extern "C" fn r_unalias_builtin(mut list: *mut WordList) -> libc::c_int { let mut alias: *mut alias_t = 0 as *mut alias_t; let mut opt: libc::c_int = 0; let mut aflag: libc::c_int = 0; diff --git a/bash-5.1/builtins_rust/bind/src/lib.rs b/bash-5.1/builtins_rust/bind/src/lib.rs index c9c07b9..b065ae6 100644 --- a/bash-5.1/builtins_rust/bind/src/lib.rs +++ b/bash-5.1/builtins_rust/bind/src/lib.rs @@ -10,16 +10,16 @@ use rcommon::{r_builtin_usage,r_sh_chkwrite}; //struct #[repr (C)] -pub struct WORD_DESC{ +pub struct WordDesc{ pub word:*mut c_char, pub flags:c_int, } #[repr (C)] // #[derive(Copy,Clone)] -pub struct WORD_LIST{ - pub next:*mut WORD_LIST, - pub word:*mut WORD_DESC, +pub struct WordList{ + pub next:*mut WordList, + pub word:*mut WordDesc, } #[repr (C)] pub struct _keymap_entry{ @@ -137,7 +137,7 @@ extern "C"{ static mut rl_outstream:*mut File; static stdout:*mut File; static list_optarg:*mut c_char; - static loptend:*mut WORD_LIST; + static loptend:*mut WordList; fn builtin_warning(format:*const c_char,...); fn initialize_readline(); @@ -145,7 +145,7 @@ extern "C"{ fn run_unwind_frame(tag:*mut c_char); fn unwind_protect_mem(var:*mut c_char,size:i32); fn reset_internal_getopt(); - fn internal_getopt(list:*mut WORD_LIST,opts:*mut c_char)->i32; + fn internal_getopt(list:*mut WordList,opts:*mut c_char)->i32; // fn builtin_usage(); fn rl_set_keymap(map:Keymap); // fn sh_chkwrite(s:i32)->i32; @@ -180,7 +180,7 @@ extern "C"{ #[no_mangle] -pub extern "C" fn r_bind_builtin(mut list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_bind_builtin(mut list:*mut WordList)->i32{ let mut return_code:i32; let mut kmap:Keymap; let mut saved_keymap:Keymap; 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 4b0b067..c7b6760 100644 --- a/bash-5.1/builtins_rust/break_1/src/lib.rs +++ b/bash-5.1/builtins_rust/break_1/src/lib.rs @@ -6,16 +6,16 @@ extern crate nix; use std::ffi::CString; use libc::c_long; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags: libc::c_int } #[repr (C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } // 屏蔽警告。 @@ -55,7 +55,7 @@ macro_rules! CHECK_HELPOPT { } extern "C" { - fn get_numeric_arg(list :*mut WORD_LIST, i: i32 , intmax :*mut intmax_t) -> i32; + 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); @@ -67,7 +67,7 @@ extern "C" { } #[no_mangle] -pub extern "C" fn r_break_builtin(mut list :*mut WORD_LIST) -> i32 { +pub extern "C" fn r_break_builtin(mut list :*mut WordList) -> i32 { //println!("enter r_break_builtin"); let mut newbreak : intmax_t = 1 as intmax_t; unsafe { @@ -93,7 +93,7 @@ pub extern "C" fn r_break_builtin(mut list :*mut WORD_LIST) -> i32 { return (EXECUTION_SUCCESS!()); } -fn continue_builtin (list :*mut WORD_LIST) -> i32 { +fn continue_builtin (list :*mut WordList) -> i32 { let mut newcont : intmax_t = 0 as intmax_t; unsafe { CHECK_HELPOPT! (list); diff --git a/bash-5.1/builtins_rust/builtin/src/intercdep.rs b/bash-5.1/builtins_rust/builtin/src/intercdep.rs index d07f2e3..661c386 100644 --- a/bash-5.1/builtins_rust/builtin/src/intercdep.rs +++ b/bash-5.1/builtins_rust/builtin/src/intercdep.rs @@ -5,32 +5,32 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; pub const EX_USAGE: c_int = 258; pub const EXECUTION_SUCCESS :c_int = 0; pub const EXECUTION_FAILURE :c_int = 1; extern "C" { - static mut loption :*mut WORD_LIST; - pub fn no_options(list: *mut WORD_LIST) -> c_int; - pub fn builtin_address(command: *const c_char) -> extern "C" fn(w:*mut WORD_LIST) ->i32; + static mut loption :*mut WordList; + pub fn no_options(list: *mut WordList) -> c_int; + pub fn builtin_address(command: *const c_char) -> extern "C" fn(w:*mut WordList) ->i32; static mut this_command_name: *mut libc::c_char; fn sh_notbuiltin(_: *mut libc::c_char); fn find_shell_builtin(_: *mut libc::c_char) -> Option::; static mut this_shell_builtin: Option::; - static mut loptend: *mut WORD_LIST; + static mut loptend: *mut WordList; } -pub type sh_builtin_func_t = unsafe extern "C" fn(*mut WORD_LIST) -> i32; +pub type sh_builtin_func_t = unsafe extern "C" fn(*mut WordList) -> i32; diff --git a/bash-5.1/builtins_rust/builtin/src/lib.rs b/bash-5.1/builtins_rust/builtin/src/lib.rs index 00b9709..71639d3 100644 --- a/bash-5.1/builtins_rust/builtin/src/lib.rs +++ b/bash-5.1/builtins_rust/builtin/src/lib.rs @@ -3,7 +3,7 @@ use std::ffi::CStr; include!(concat!("intercdep.rs")); #[no_mangle] -pub extern "C" fn r_builtin_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_builtin_builtin(mut list: *mut WordList) -> i32 { unsafe{ let mut function: Option:: = None; let mut command: &CStr = CStr::from_ptr((*(*list).word).word as *mut c_char); diff --git a/bash-5.1/builtins_rust/caller/src/lib.rs b/bash-5.1/builtins_rust/caller/src/lib.rs index 7a80e48..524ba95 100644 --- a/bash-5.1/builtins_rust/caller/src/lib.rs +++ b/bash-5.1/builtins_rust/caller/src/lib.rs @@ -13,15 +13,15 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; //enum @@ -119,13 +119,13 @@ macro_rules! CHECK_HELPOPT { type arrayind_t = intmax_t; //extern c extern "C" { - static loptend:*mut WORD_LIST; + 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(); - fn no_options(list:*mut WORD_LIST)->i32; + fn no_options(list:*mut WordList)->i32; fn legal_number(string:*mut c_char,result:*mut c_long)->i32; fn sh_invalidnum(s:*mut c_char); } @@ -154,7 +154,7 @@ unsafe fn array_empty(a:*mut ARRAY)->bool{ //rust #[no_mangle] -pub extern "C" fn r_caller_builtin(mut list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_caller_builtin(mut list:*mut WordList)->i32{ let funcname_v:*mut SHELL_VAR ; let bash_source_v:*mut SHELL_VAR; let bash_lineno_v:*mut SHELL_VAR; diff --git a/bash-5.1/builtins_rust/cd/src/lib.rs b/bash-5.1/builtins_rust/cd/src/lib.rs index adde5fa..72ebf56 100644 --- a/bash-5.1/builtins_rust/cd/src/lib.rs +++ b/bash-5.1/builtins_rust/cd/src/lib.rs @@ -5,16 +5,16 @@ use libc::{c_char, c_long, c_void}; use std::{ffi::{CString, CStr}}; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags:libc::c_int } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr(i8)] @@ -57,7 +57,7 @@ pub struct PROCESS { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:libc::c_int, - filename:* mut WORD_DESC + filename:* mut WordDesc } #[repr(C)] @@ -76,15 +76,15 @@ pub union REDIRECT { pub struct for_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:libc::c_int } @@ -93,7 +93,7 @@ pub struct PATTERN_LIST { pub struct case_com { flags:libc::c_int, line:libc::c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } @@ -124,7 +124,7 @@ pub struct connection { pub struct simple_com { flags:libc::c_int, line:libc::c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -132,7 +132,7 @@ pub struct simple_com { pub struct function_def { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -148,8 +148,8 @@ pub struct group_com { pub struct select_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -157,7 +157,7 @@ pub struct select_com { pub struct arith_com { flags:libc::c_int, line:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -165,16 +165,16 @@ pub struct cond_com { flags:libc::c_int, line:libc::c_int, type_c:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:libc::c_int, line:libc::c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -337,7 +337,7 @@ macro_rules! errno { extern "C" { fn builtin_error(err:*const c_char,...); - static mut loptend:*mut WORD_LIST; + static mut loptend:*mut WordList; static mut array_needs_making:i32; fn bind_variable ( lhs:*const c_char, rhs:* mut c_char, i:i32)->* mut SHELL_VAR; @@ -353,7 +353,7 @@ extern "C" { static no_symbolic_links:i32; fn reset_internal_getopt(); - fn internal_getopt (list:*mut WORD_LIST , opts:*mut c_char)->i32; + fn internal_getopt (list:*mut WordList , opts:*mut c_char)->i32; fn builtin_usage(); static cdable_vars:i32; static interactive:i32; @@ -492,7 +492,7 @@ pub extern "C" fn r_resetxattr () { } #[no_mangle] -pub extern "C" fn r_cd_builtin (mut list:*mut WORD_LIST)->i32 { +pub extern "C" fn r_cd_builtin (mut list:*mut WordList)->i32 { let mut dirname:*mut c_char=std::ptr::null_mut(); let cdpath:*mut c_char; let mut path:*mut c_char; @@ -668,7 +668,7 @@ pub extern "C" fn r_cd_builtin (mut list:*mut WORD_LIST)->i32 { } #[no_mangle] -pub extern "C" fn r_pwd_builtin (list:* mut WORD_LIST)->i32 { +pub extern "C" fn r_pwd_builtin (list:* mut WordList)->i32 { let mut directory:* mut c_char; let mut opt:i32; let mut pflag:i32; @@ -856,7 +856,7 @@ pub extern "C" fn cmd_name() ->*const u8 { return b"cd" as *const u8; } #[no_mangle] -pub extern "C" fn run(list : *mut WORD_LIST)->i32 { +pub extern "C" fn run(list : *mut WordList)->i32 { return r_cd_builtin(list); } */ diff --git a/bash-5.1/builtins_rust/colon/src/lib.rs b/bash-5.1/builtins_rust/colon/src/lib.rs index ed63b73..faea396 100644 --- a/bash-5.1/builtins_rust/colon/src/lib.rs +++ b/bash-5.1/builtins_rust/colon/src/lib.rs @@ -16,24 +16,24 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; #[no_mangle] -pub extern "C" fn r_colon_builtin(ignore:WORD_LIST)->i32 { +pub extern "C" fn r_colon_builtin(ignore:WordList)->i32 { println!("in r_colon_builtin"); 0 } #[no_mangle] -pub extern "C" fn r_false_builtin(ignore: WORD_LIST) -> i32 { +pub extern "C" fn r_false_builtin(ignore: WordList) -> i32 { println!("in r_false_builtin"); 1 } diff --git a/bash-5.1/builtins_rust/command/src/lib.rs b/bash-5.1/builtins_rust/command/src/lib.rs index 17b09ef..bf39896 100644 --- a/bash-5.1/builtins_rust/command/src/lib.rs +++ b/bash-5.1/builtins_rust/command/src/lib.rs @@ -1,7 +1,7 @@ use std::ffi::*; extern "C" { - fn copy_word_list(_: *mut WORD_LIST) -> *mut WORD_LIST; + fn copy_word_list(_: *mut WordList) -> *mut WordList; fn begin_unwind_frame(_: *mut libc::c_char); fn run_unwind_frame(_: *mut libc::c_char); fn add_unwind_protect(); @@ -9,8 +9,8 @@ extern "C" { fn make_bare_simple_command() -> *mut COMMAND; fn execute_command(_: *mut COMMAND) -> libc::c_int; static mut restricted: libc::c_int; - static mut loptend: *mut WORD_LIST; - fn internal_getopt(_: *mut WORD_LIST, _: *const libc::c_char) -> libc::c_int; + static mut loptend: *mut WordList; + fn internal_getopt(_: *mut WordList, _: *const libc::c_char) -> libc::c_int; fn reset_internal_getopt(); fn builtin_usage(); fn sh_notfound(_: *mut libc::c_char); @@ -62,19 +62,19 @@ pub struct word_desc { pub word: *mut libc::c_char, pub flags: libc::c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[derive(Copy, Clone)] #[repr(C)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; #[derive(Copy, Clone)] #[repr(C)] pub union REDIRECTEE { pub dest: libc::c_int, - pub filename: *mut WORD_DESC, + pub filename: *mut WordDesc, } #[derive(Copy, Clone)] #[repr(C)] @@ -135,9 +135,9 @@ pub struct subshell_com { pub struct arith_for_com { pub flags: libc::c_int, pub line: libc::c_int, - pub init: *mut WORD_LIST, - pub test: *mut WORD_LIST, - pub step: *mut WORD_LIST, + pub init: *mut WordList, + pub test: *mut WordList, + pub step: *mut WordList, pub action: *mut COMMAND, } #[derive(Copy, Clone)] @@ -146,7 +146,7 @@ pub struct cond_com { pub flags: libc::c_int, pub line: libc::c_int, pub type_0: libc::c_int, - pub op: *mut WORD_DESC, + pub op: *mut WordDesc, pub left: *mut cond_com, pub right: *mut cond_com, } @@ -155,15 +155,15 @@ pub struct cond_com { pub struct arith_com { pub flags: libc::c_int, pub line: libc::c_int, - pub exp: *mut WORD_LIST, + pub exp: *mut WordList, } #[derive(Copy, Clone)] #[repr(C)] pub struct select_com { pub flags: libc::c_int, pub line: libc::c_int, - pub name: *mut WORD_DESC, - pub map_list: *mut WORD_LIST, + pub name: *mut WordDesc, + pub map_list: *mut WordList, pub action: *mut COMMAND, } #[derive(Copy, Clone)] @@ -177,7 +177,7 @@ pub struct group_com { pub struct function_def { pub flags: libc::c_int, pub line: libc::c_int, - pub name: *mut WORD_DESC, + pub name: *mut WordDesc, pub command: *mut COMMAND, pub source_file: *mut libc::c_char, } @@ -186,7 +186,7 @@ pub struct function_def { pub struct simple_com { pub flags: libc::c_int, pub line: libc::c_int, - pub words: *mut WORD_LIST, + pub words: *mut WordList, pub redirects: *mut REDIRECT, } #[derive(Copy, Clone)] @@ -217,7 +217,7 @@ pub struct while_com { pub struct case_com { pub flags: libc::c_int, pub line: libc::c_int, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, pub clauses: *mut PATTERN_LIST, } pub type PATTERN_LIST = pattern_list; @@ -225,7 +225,7 @@ pub type PATTERN_LIST = pattern_list; #[repr(C)] pub struct pattern_list { pub next: *mut pattern_list, - pub patterns: *mut WORD_LIST, + pub patterns: *mut WordList, pub action: *mut COMMAND, pub flags: libc::c_int, } @@ -234,8 +234,8 @@ pub struct pattern_list { pub struct for_com { pub flags: libc::c_int, pub line: libc::c_int, - pub name: *mut WORD_DESC, - pub map_list: *mut WORD_LIST, + pub name: *mut WordDesc, + pub map_list: *mut WordList, pub action: *mut COMMAND, } @@ -300,7 +300,7 @@ pub const CMD_STDPATH :i32 = 0x4000; pub const CMD_TRY_OPTIMIZING :i32 = 0x8000; #[no_mangle] -pub unsafe extern "C" fn command_builtin(mut list: *mut WORD_LIST) -> libc::c_int { +pub unsafe extern "C" fn command_builtin(mut list: *mut WordList) -> libc::c_int { let mut result: libc::c_int = 0; let mut verbose: libc::c_int = 0; let mut use_standard_path: libc::c_int = 0; diff --git a/bash-5.1/builtins_rust/common/src/lib.rs b/bash-5.1/builtins_rust/common/src/lib.rs index 5862e87..5a159f9 100644 --- a/bash-5.1/builtins_rust/common/src/lib.rs +++ b/bash-5.1/builtins_rust/common/src/lib.rs @@ -16,15 +16,15 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; #[repr (C)] pub struct builtin{ @@ -78,7 +78,7 @@ pub struct COMMAND { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:libc::c_int, /* Place to redirect REDIRECTOR to, or ... */ - filename:* mut WORD_DESC /* filename to redirect to. */ + filename:* mut WordDesc /* filename to redirect to. */ } #[repr(u8)] @@ -109,22 +109,22 @@ pub union REDIRECT { pub struct for_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct case_com { flags:libc::c_int, line:libc::c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:libc::c_int } @@ -154,14 +154,14 @@ pub struct connection { pub struct simple_com { flags:libc::c_int, line:libc::c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } #[repr(C)] pub struct function_def { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -175,15 +175,15 @@ pub struct group_com { pub struct select_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct arith_com { flags:libc::c_int, line:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -191,15 +191,15 @@ pub struct cond_com { flags:libc::c_int, line:libc::c_int, type_c:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:libc::c_int, line:libc::c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } #[repr(C)] @@ -594,14 +594,31 @@ pub enum JOB_STATE { } //type -pub type sh_builtin_func_t = fn (*mut WORD_LIST)->i32; +pub type sh_builtin_func_t = fn (*mut WordList)->i32; pub type QSFUNC = unsafe extern "C" fn(*const c_void,*const c_void)->i32; pub static EX_SUCCESS:i32 = 0; -pub static EX_USAGE:i32 = -99; -pub static EX_:i32 = 0; +pub static EX_USAGE:i32 = 258; +/////// +pub static EX_BADUSAGE:i32 = 2; +pub static EX_MISCERROR:i32 = 2; + +pub static EX_RETRYFAIL:i32 = 124; +pub static EX_WEXPCOMSUB:i32 = 125; +pub static EX_BINARY_FILE :i32 = 126; +pub static EX_NOEXEC: i32 = 126; +pub static EX_NOINPUT:i32 = 126; +pub static EX_NOTFOUND:i32 = 127; + +pub static EX_SHERRBASE:i32 = 256; /* all special error values are > this. */ + +pub static EX_BADSYNTAX:i32 = 257; /* shell syntax error */ +pub static EX_REDIRFAIL:i32 = 259; /* redirection failed */ +pub static EX_BADASSIGN :i32 = 260; /* variable assignment error */ +pub static EX_EXPFAIL:i32= 261;/* word expansion failed */ +pub static EX_DISKFALLBACK:i32 = 262; /* fall back to disk command from builtin */ //extern C extern "C"{ @@ -613,7 +630,7 @@ extern "C"{ static stdout:*mut FILE; static mut posparam_count:i32; static mut dollar_vars:[*mut c_char;10]; - static mut rest_of_args:*mut WORD_LIST; + static mut rest_of_args:*mut WordList; static variable_context:i32; static running_trap:i32; static trap_saved_exit_value:i32; @@ -632,20 +649,20 @@ extern "C"{ fn executing_line_number()->i32; fn top_level_cleanup(); fn jump_to_top_level(value:i32); - fn internal_getopt(list:*mut WORD_LIST,opts:*mut c_char)->i32; + fn internal_getopt(list:*mut WordList,opts:*mut c_char)->i32; fn reset_internal_getopt(); fn termsig_handler(sig:i32); fn throw_to_top_level(); fn fpurge(stream:*mut FILE) ->i32; - fn strvec_from_word_list(list:*mut WORD_LIST,alloc:i32,starting_index:i32,ip:*mut i32)->*mut *mut c_char; + fn strvec_from_word_list(list:*mut WordList,alloc:i32,starting_index:i32,ip:*mut i32)->*mut *mut c_char; fn xmalloc(n:size_t)->*mut c_void; - fn dispose_words(list:*mut WORD_LIST); - fn copy_word_list(list:*mut WORD_LIST)->*mut WORD_LIST; + fn dispose_words(list:*mut WordList); + fn copy_word_list(list:*mut WordList)->*mut WordList; fn list_length(list:*mut GENERIC_LIST)->i32; fn invalidate_cached_quoted_dollar_at(); - fn set_builtin(list:*mut WORD_LIST)->i32; + fn set_builtin(list:*mut WordList)->i32; fn legal_number(string:*mut c_char,result:*mut c_long)->i32; - fn return_builtin(list:*mut WORD_LIST)->i32; + fn return_builtin(list:*mut WordList)->i32; fn getcwd(buf:*mut c_char,size:size_t)->*mut c_char; fn internal_error(format:*const c_char,...); fn strcasestr(s1:*const c_char,s2:*const c_char)->*mut c_char; @@ -656,7 +673,7 @@ extern "C"{ fn find_variable(_:*const c_char)->*mut SHELL_VAR; fn unbind_variable(name:*const c_char)->i32; fn signal_name(sig:i32)->*mut c_char; - fn kill_builtin(list:*mut WORD_LIST)->i32; + fn kill_builtin(list:*mut WordList)->i32; fn decode_signal(string:*mut c_char,flags:i32)->i32; fn builtin_help(); @@ -723,7 +740,7 @@ pub extern "C" fn r_builtin_usage(){ /* Return if LIST is NULL else barf and jump to top_level. Used by some builtins that do not accept arguments. */ #[no_mangle] -pub extern "C" fn r_no_args(list:*mut WORD_LIST){ +pub extern "C" fn r_no_args(list:*mut WordList){ unsafe{ if !list.is_null(){ let c_str = CString::new("too many arguments").unwrap(); @@ -738,7 +755,7 @@ pub extern "C" fn r_no_args(list:*mut WORD_LIST){ /* Check that no options were given to the currently-executing builtin, and return 0 if there were options. */ #[no_mangle] -pub extern "C" fn r_no_options(list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_no_options(list:*mut WordList)->i32{ let opt:i32; unsafe{ @@ -992,11 +1009,11 @@ pub extern "C" fn r_sh_chkwrite(s:i32)->i32{ /* */ /* **************************************************************** */ -/* Convert a WORD_LIST into a C-style argv. Return the number of elements +/* Convert a WordList into a C-style argv. Return the number of elements in the list in *IP, if IP is non-null. A convenience function for loadable builtins; also used by `test'. */ #[no_mangle] -pub extern "C" fn r_make_builtin_argv(list:*mut WORD_LIST,ip:*mut i32)->*mut *mut c_char{ +pub extern "C" fn r_make_builtin_argv(list:*mut WordList,ip:*mut i32)->*mut *mut c_char{ let argv:*mut *mut c_char; unsafe{ argv = strvec_from_word_list(list,0,1,ip); @@ -1010,7 +1027,7 @@ pub extern "C" fn r_make_builtin_argv(list:*mut WORD_LIST,ip:*mut i32)->*mut *mu only discard the ones that are to be replaced. Set POSPARAM_COUNT to the number of args assigned (length of LIST). */ #[no_mangle] -pub extern "C" fn r_remember_args(mut list:*mut WORD_LIST,destructive:i32){ +pub extern "C" fn r_remember_args(mut list:*mut WordList,destructive:i32){ let mut i:i32; unsafe{ @@ -1048,7 +1065,7 @@ pub extern "C" fn r_remember_args(mut list:*mut WORD_LIST,destructive:i32){ #[no_mangle] pub extern "C" fn r_shift_args(mut times:i32){ - let mut temp:*mut WORD_LIST; + let mut temp:*mut WordList; // let mut count:i32; unsafe{ @@ -1140,7 +1157,7 @@ pub extern "C" fn r_set_dollar_vars_changed(){ current command; if FATAL is 0, return an indication of an invalid number by setting *NUMOK == 0 and return -1. */ #[no_mangle] -pub extern "C" fn r_get_numeric_arg(mut list:*mut WORD_LIST,fatal:i32,count:*mut intmax_t)->i32{ +pub extern "C" fn r_get_numeric_arg(mut list:*mut WordList,fatal:i32,count:*mut intmax_t)->i32{ let arg:*mut c_char; unsafe{ if !count.is_null(){ @@ -1181,7 +1198,7 @@ pub extern "C" fn r_get_numeric_arg(mut list:*mut WORD_LIST,fatal:i32,count:*mut /* Get an eight-bit status value from LIST */ #[no_mangle] -pub extern "C" fn r_get_exitstat(mut list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_get_exitstat(mut list:*mut WordList)->i32{ let status:i32; let mut sval:intmax_t = 0; let arg:*mut c_char; @@ -1377,7 +1394,7 @@ pub extern "C" fn r_get_job_by_name(name:*const c_char,flags:i32)->i32{ /* Return the job spec found in LIST. */ #[no_mangle] -pub extern "C" fn r_get_job_spec(list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_get_job_spec(list:*mut WordList)->i32{ let mut word:*mut c_char; let job:i32; let mut jflags:i32; @@ -1426,7 +1443,7 @@ pub extern "C" fn r_get_job_spec(list:*mut WORD_LIST)->i32{ /* * NOTE: `kill' calls this function with forcecols == 0 */ -pub extern "C" fn r_display_signal_list(mut list:*mut WORD_LIST,forcecols:i32)->i32{ +pub extern "C" fn r_display_signal_list(mut list:*mut WordList,forcecols:i32)->i32{ let mut i:i32; let mut column:i32; let mut name:*mut c_char; diff --git a/bash-5.1/builtins_rust/complete/src/lib.rs b/bash-5.1/builtins_rust/complete/src/lib.rs index d00afdf..acfe6f5 100644 --- a/bash-5.1/builtins_rust/complete/src/lib.rs +++ b/bash-5.1/builtins_rust/complete/src/lib.rs @@ -5,16 +5,16 @@ use libc::{c_char, c_int, c_ulong, c_void}; use std::{ffi::CString}; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut c_char, pub flags:c_int } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr(u8)] @@ -39,7 +39,7 @@ enum r_instruction { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:c_int, - filename:* mut WORD_DESC + filename:* mut WordDesc } #[repr(C)] @@ -58,15 +58,15 @@ pub union REDIRECT { pub struct for_com { flags:c_int, line:c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:c_int } @@ -75,7 +75,7 @@ pub struct PATTERN_LIST { pub struct case_com { flags:c_int, line:c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } @@ -106,7 +106,7 @@ pub struct connection { pub struct simple_com { flags:c_int, line:c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -114,7 +114,7 @@ pub struct simple_com { pub struct function_def { flags:c_int, line:c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -130,8 +130,8 @@ pub struct group_com { pub struct select_com { flags:c_int, line:c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -139,7 +139,7 @@ pub struct select_com { pub struct arith_com { flags:c_int, line:c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -147,16 +147,16 @@ pub struct cond_com { flags:c_int, line:c_int, type_c:c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:c_int, line:c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -576,19 +576,19 @@ macro_rules! RL_STATE_COMPLETING { extern "C" { fn reset_internal_getopt(); - fn internal_getopt (list:*mut WORD_LIST , opts:*mut c_char)->i32; + fn internal_getopt (list:*mut WordList , opts:*mut c_char)->i32; fn sh_invalidopt (value:* mut c_char); fn sh_invalidid (value:* mut c_char); fn sh_invalidoptname (value:* mut c_char); fn builtin_usage(); static list_optarg:* mut c_char; fn builtin_error(err:*const c_char,...); - fn check_identifier (w:* mut WORD_DESC, f:i32)->i32; + fn check_identifier (w:* mut WordDesc, f:i32)->i32; static mut posixly_correct:i32; - static mut loptend:*mut WORD_LIST; - fn make_word_list (w:* mut WORD_DESC, list:*mut WORD_LIST)->*mut WORD_LIST; - fn make_bare_word (w:*const c_char)->* mut WORD_DESC; - fn dispose_words (list:*mut WORD_LIST); + static mut loptend:*mut WordList; + fn make_word_list (w:* mut WordDesc, list:*mut WordList)->*mut WordList; + fn make_bare_word (w:*const c_char)->* mut WordDesc; + fn dispose_words (list:*mut WordList); fn progcomp_flush (); fn compspec_create ()->* mut COMPSPEC; fn progcomp_insert (str:* mut c_char, c:* mut COMPSPEC)->i32; @@ -702,14 +702,14 @@ pub extern "C" fn r_find_compopt (name:* mut c_char)->i32 } #[no_mangle] -pub extern "C" fn r_build_actions (list : *mut WORD_LIST, flagp:* mut _optflags, actp:* mut c_ulong, optp:* mut c_ulong)->i32 +pub extern "C" fn r_build_actions (list : *mut WordList, flagp:* mut _optflags, actp:* mut c_ulong, optp:* mut c_ulong)->i32 { let mut opt:i32; let mut ind:i32; let mut opt_given:i32=0; let mut acts:c_ulong=0; let mut copts:c_ulong=0; - let mut w:WORD_DESC=WORD_DESC{word:std::ptr::null_mut(),flags:0}; + let mut w:WordDesc=WordDesc{word:std::ptr::null_mut(),flags:0}; unsafe { reset_internal_getopt (); @@ -867,7 +867,7 @@ pub extern "C" fn r_build_actions (list : *mut WORD_LIST, flagp:* mut _optflags, /* Add, remove, and display completion specifiers. */ #[no_mangle] -pub extern "C" fn r_complete_builtin (listt: *mut WORD_LIST)->i32 +pub extern "C" fn r_complete_builtin (listt: *mut WordList)->i32 { let mut opt_given:i32=0; let mut rval:i32; @@ -875,11 +875,11 @@ pub extern "C" fn r_complete_builtin (listt: *mut WORD_LIST)->i32 let mut copts:c_ulong=0; let mut cs:* mut COMPSPEC; let mut oflags:_optflags=_optflags{pflag:0,rflag:0,Dflag:0,Eflag:0,Iflag:0}; - let mut l: *mut WORD_LIST; - let mut wl: *mut WORD_LIST; + let mut l: *mut WordList; + let mut wl: *mut WordList; unsafe { - let mut list:* mut WORD_LIST=listt.clone(); + let mut list:* mut WordList=listt.clone(); if list == std::ptr::null_mut() { r_print_all_completions (); return EXECUTION_SUCCESS!(); @@ -989,9 +989,9 @@ pub extern "C" fn r_complete_builtin (listt: *mut WORD_LIST)->i32 } #[no_mangle] -pub extern "C" fn r_remove_cmd_completions (list: * mut WORD_LIST)->i32 +pub extern "C" fn r_remove_cmd_completions (list: * mut WordList)->i32 { - let mut l:* mut WORD_LIST; + let mut l:* mut WordList; let mut ret:i32; unsafe { ret = EXECUTION_SUCCESS!(); @@ -1143,9 +1143,9 @@ pub extern "C" fn r_print_all_completions () } #[no_mangle] -pub extern "C" fn r_print_cmd_completions (list:* mut WORD_LIST)->i32 +pub extern "C" fn r_print_cmd_completions (list:* mut WordList)->i32 { - let mut l:* mut WORD_LIST; + let mut l:* mut WordList; let mut cs:* mut COMPSPEC; let mut ret:i32; @@ -1167,7 +1167,7 @@ pub extern "C" fn r_print_cmd_completions (list:* mut WORD_LIST)->i32 } #[no_mangle] -pub extern "C" fn r_compgen_builtin (listt:* mut WORD_LIST)->i32 +pub extern "C" fn r_compgen_builtin (listt:* mut WordList)->i32 { let mut rval:i32; let mut acts:c_ulong=0; @@ -1179,7 +1179,7 @@ pub extern "C" fn r_compgen_builtin (listt:* mut WORD_LIST)->i32 let old_line:* mut c_char; let old_ind:i32; unsafe { - let mut list:* mut WORD_LIST=listt.clone(); + let mut list:* mut WordList=listt.clone(); if list == std::ptr::null_mut() { return EXECUTION_SUCCESS!(); } @@ -1277,7 +1277,7 @@ pub extern "C" fn r_compgen_builtin (listt:* mut WORD_LIST)->i32 } #[no_mangle] -pub extern "C" fn r_compopt_builtin (listt:* mut WORD_LIST)->i32 +pub extern "C" fn r_compopt_builtin (listt:* mut WordList)->i32 { let mut opts_on:i32=0; let mut opts_off:i32=0; @@ -1288,13 +1288,13 @@ pub extern "C" fn r_compopt_builtin (listt:* mut WORD_LIST)->i32 let mut Dflag:i32=0; let mut Eflag:i32=0; let mut Iflag:i32=0; - let mut l:* mut WORD_LIST; - let mut wl:* mut WORD_LIST; + let mut l:* mut WordList; + let mut wl:* mut WordList; let mut cs:* mut COMPSPEC; ret = EXECUTION_SUCCESS!(); unsafe { - let mut list:* mut WORD_LIST=listt.clone(); + let mut list:* mut WordList=listt.clone(); reset_internal_getopt (); opt = internal_getopt (list, CString::new("+o:DEI").unwrap().as_ptr() as * mut c_char); @@ -1409,6 +1409,6 @@ pub extern "C" fn cmd_name() ->*const u8 { } #[no_mangle] -pub extern "C" fn run(list : *mut WORD_LIST)->i32 { +pub extern "C" fn run(list : *mut WordList)->i32 { return r_complete_builtin(list); } \ No newline at end of file diff --git a/bash-5.1/builtins_rust/declare/src/lib.rs b/bash-5.1/builtins_rust/declare/src/lib.rs index a446176..b44473a 100644 --- a/bash-5.1/builtins_rust/declare/src/lib.rs +++ b/bash-5.1/builtins_rust/declare/src/lib.rs @@ -6,16 +6,16 @@ use std::{ffi::CString}; // use rcommon::{r_sh_notfound,r_sh_invalidopt,r_sh_invalidid,r_sh_readonly,r_sh_chkwrite,}; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags:libc::c_int } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr(u8)] @@ -40,7 +40,7 @@ enum r_instruction { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:libc::c_int, - filename:* mut WORD_DESC + filename:* mut WordDesc } #[repr(C)] @@ -59,15 +59,15 @@ pub union REDIRECT { pub struct for_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:libc::c_int } @@ -76,7 +76,7 @@ pub struct PATTERN_LIST { pub struct case_com { flags:libc::c_int, line:libc::c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } @@ -107,7 +107,7 @@ pub struct connection { pub struct simple_com { flags:libc::c_int, line:libc::c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -115,7 +115,7 @@ pub struct simple_com { pub struct function_def { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -131,8 +131,8 @@ pub struct group_com { pub struct select_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -140,7 +140,7 @@ pub struct select_com { pub struct arith_com { flags:libc::c_int, line:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -148,16 +148,16 @@ pub struct cond_com { flags:libc::c_int, line:libc::c_int, type_c:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:libc::c_int, line:libc::c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -484,15 +484,15 @@ extern "C" { fn find_variable (str:*const c_char)->* mut SHELL_VAR; fn find_global_variable (str:*const c_char)->* mut SHELL_VAR; fn reset_internal_getopt(); - fn internal_getopt (list:*mut WORD_LIST , opts:*mut c_char)->i32; + fn internal_getopt (list:*mut WordList , opts:*mut c_char)->i32; static mut list_opttype:i32; static mut array_needs_making:i32; fn builtin_usage(); - static mut loptend:*mut WORD_LIST; + static mut loptend:*mut WordList; fn show_local_var_attributes (v:i32, nodefs:i32)->i32; fn show_all_var_attributes (v:i32, nodefs:i32)->i32; - fn set_builtin (list:*mut WORD_LIST)->i32; - fn set_or_show_attributes (list:*mut WORD_LIST, attribute:i32, nodefs:i32)->i32; + fn set_builtin (list:*mut WordList)->i32; + fn set_or_show_attributes (list:*mut WordList, attribute:i32, nodefs:i32)->i32; fn sh_chkwrite (ret:i32)->i32; fn show_func_attributes (name:* mut c_char, nodefs:i32)->i32; fn show_localname_attributes (name:* mut c_char, nodefs:i32)->i32; @@ -542,7 +542,7 @@ extern "C" { } #[no_mangle] -pub extern "C" fn r_declare_builtin (list:* mut WORD_LIST)->i32 +pub extern "C" fn r_declare_builtin (list:* mut WordList)->i32 { return r_declare_internal (list, 0); } @@ -552,7 +552,7 @@ unsafe fn STREQ( a:* const c_char, b:* const c_char)->bool { } #[no_mangle] -pub extern "C" fn r_local_builtin (list:* mut WORD_LIST)->i32 +pub extern "C" fn r_local_builtin (list:* mut WordList)->i32 { unsafe { /* Catch a straight `local --help' before checking function context */ @@ -661,7 +661,7 @@ unsafe fn noassign_p(var:*mut SHELL_VAR) ->i32 { } #[no_mangle] -pub extern "C" fn r_declare_internal (list:* mut WORD_LIST, local_var:i32)->i32 +pub extern "C" fn r_declare_internal (list:* mut WordList, local_var:i32)->i32 { let mut flags_on:i32=0; let mut flags_off:i32=0; @@ -750,7 +750,7 @@ pub extern "C" fn r_declare_internal (list:* mut WORD_LIST, local_var:i32)->i32 internal_getopt (list, DECLARE_OPTS() as * mut c_char); } - let mut llist:* mut WORD_LIST = loptend.clone(); + let mut llist:* mut WordList = loptend.clone(); /* If there are no more arguments left, then we just want to show some variables. */ @@ -1548,6 +1548,6 @@ pub extern "C" fn cmd_name() ->*const u8 { } #[no_mangle] -pub extern "C" fn run(list : *mut WORD_LIST)->i32 { +pub extern "C" fn run(list : *mut WordList)->i32 { return r_declare_builtin(list); } diff --git a/bash-5.1/builtins_rust/echo/src/lib.rs b/bash-5.1/builtins_rust/echo/src/lib.rs index 9f54725..5e69fac 100644 --- a/bash-5.1/builtins_rust/echo/src/lib.rs +++ b/bash-5.1/builtins_rust/echo/src/lib.rs @@ -7,16 +7,16 @@ use std::ptr::read_volatile; //结构体 #[repr (C)] -pub struct WORD_DESC{ +pub struct WordDesc{ pub word:*mut c_char, pub flags:c_int, } #[repr (C)] // #[derive(Copy,Clone)] -pub struct WORD_LIST{ - pub next:*mut WORD_LIST, - pub word:*mut WORD_DESC, +pub struct WordList{ + pub next:*mut WordList, + pub word:*mut WordDesc, } @@ -92,7 +92,7 @@ pub static mut xpg_echo:i32 = 0; // 也有可能是1 echo syntax from Version 9 Unix systems. */ #[no_mangle] -pub extern "C" fn r_echo_builtin(mut list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_echo_builtin(mut list:*mut WordList)->i32{ println!("r_echo_builtin"); let mut display_return:i32; let mut do_v9:i32; diff --git a/bash-5.1/builtins_rust/enable/src/lib.rs b/bash-5.1/builtins_rust/enable/src/lib.rs index 1d61f3c..2df3366 100644 --- a/bash-5.1/builtins_rust/enable/src/lib.rs +++ b/bash-5.1/builtins_rust/enable/src/lib.rs @@ -107,8 +107,8 @@ extern "C" { fn initialize_shell_builtins(); fn builtin_help(); static mut list_optarg: *mut libc::c_char; - static mut loptend: *mut WORD_LIST; - fn internal_getopt(_: *const WORD_LIST, _: *const libc::c_char) -> i32; + static mut loptend: *mut WordList; + fn internal_getopt(_: *const WordList, _: *const libc::c_char) -> i32; fn reset_internal_getopt(); fn find_in_path( _: *const libc::c_char, @@ -134,17 +134,17 @@ pub struct word_desc { pub word: *mut libc::c_char, pub flags: libc::c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[derive(Copy, Clone)] #[repr(C)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; pub type sh_load_func_t = unsafe extern "C" fn(*mut libc::c_char) -> libc::c_int; pub type sh_unload_func_t = unsafe extern "C" fn(*mut libc::c_char) -> (); -pub type sh_builtin_func_t = unsafe extern "C" fn(*mut WORD_LIST) -> libc::c_int; +pub type sh_builtin_func_t = unsafe extern "C" fn(*mut WordList) -> libc::c_int; #[derive(Copy, Clone)] #[repr(C)] pub struct _list_of_strings { @@ -174,7 +174,7 @@ pub struct _list_of_items { } pub type ITEMLIST = _list_of_items; #[no_mangle] -pub unsafe extern "C" fn r_enable_builtin(mut list: *mut WORD_LIST) -> i32 { +pub unsafe extern "C" fn r_enable_builtin(mut list: *mut WordList) -> i32 { let mut result: i32 = 0; let mut flags: i32 = 0; let mut opt: i32 = 0; @@ -353,11 +353,11 @@ unsafe extern "C" fn enable_shell_command( return EXECUTION_SUCCESS; } unsafe extern "C" fn dyn_load_builtin( - mut list: *mut WORD_LIST, + mut list: *mut WordList, mut flags: libc::c_int, mut filename: *mut libc::c_char, ) -> libc::c_int { - let mut l: *mut WORD_LIST = 0 as *mut WORD_LIST; + let mut l: *mut WordList = 0 as *mut WordList; let mut handle: *mut libc::c_void = 0 as *mut libc::c_void; let mut total: libc::c_int = 0; let mut size: libc::c_int = 0; diff --git a/bash-5.1/builtins_rust/eval/src/lib.rs b/bash-5.1/builtins_rust/eval/src/lib.rs index 00ae90c..4d6609e 100644 --- a/bash-5.1/builtins_rust/eval/src/lib.rs +++ b/bash-5.1/builtins_rust/eval/src/lib.rs @@ -3,7 +3,7 @@ extern crate rcommon; use libc::{c_char,c_int}; use std::ffi::{CString}; -use rcommon::{r_no_options,WORD_LIST}; +use rcommon::{r_no_options,WordList}; // #[repr(C)] // #[derive(Copy, Clone)] @@ -11,15 +11,15 @@ use rcommon::{r_no_options,WORD_LIST}; // pub word: *mut c_char, // pub flags: c_int, // } -// pub type WORD_DESC = word_desc; +// pub type WordDesc = word_desc; // #[repr(C)] // #[derive(Copy, Clone)] // pub struct word_list { // pub next: *mut word_list, -// pub word: *mut WORD_DESC, +// pub word: *mut WordDesc, // } -// pub type WORD_LIST = word_list; +// pub type WordList = word_list; #[macro_export] macro_rules! EX_USAGE { @@ -40,15 +40,15 @@ macro_rules! EXECUTION_SUCCESS { extern "C" { - static loptend:*mut WORD_LIST; + static loptend:*mut WordList; - // fn no_options(list:*mut WORD_LIST)->i32; + // fn no_options(list:*mut WordList)->i32; fn evalstring(string:*mut c_char,from_file:*const c_char,flag:i32)->i32; - fn string_list(list:*mut WORD_LIST)->*mut c_char; + fn string_list(list:*mut WordList)->*mut c_char; } #[no_mangle] -pub extern "C" fn r_eval_builtin(mut list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_eval_builtin(mut list:*mut WordList)->i32{ println!("r_eval_builtin"); unsafe{ diff --git a/bash-5.1/builtins_rust/exec/src/lib.rs b/bash-5.1/builtins_rust/exec/src/lib.rs index 7adea36..6913970 100644 --- a/bash-5.1/builtins_rust/exec/src/lib.rs +++ b/bash-5.1/builtins_rust/exec/src/lib.rs @@ -10,16 +10,16 @@ use rcommon::r_sh_restricted; #[repr (C)] #[derive(Copy,Clone)] -pub struct WORD_DESC{ +pub struct WordDesc{ pub word:*mut c_char, pub flags:c_int, } #[repr (C)] #[derive(Copy,Clone)] -pub struct WORD_LIST{ - pub next:*mut WORD_LIST, - pub word:*mut WORD_DESC, +pub struct WordList{ + pub next:*mut WordList, + pub word:*mut WordDesc, } #[repr (C)] @@ -37,7 +37,7 @@ type REDIRECT = redirect; #[repr (C)] union REDIRECTEE { dest:i32, - filename:*mut WORD_DESC, + filename:*mut WordDesc, } #[repr(i8)] //i8 or C ??????? @@ -125,7 +125,7 @@ extern "C" { // static errno:i32; static mut exec_argv0:*mut c_char; static list_optarg:*mut c_char; - static loptend:*mut WORD_LIST; + static loptend:*mut WordList; static mut redirection_undo_list:*mut REDIRECT; static restricted:i32; // static comsub_ignore_return:i32; @@ -139,11 +139,11 @@ extern "C" { fn xmalloc(n:size_t)->*mut c_void; fn reset_internal_getopt(); - fn internal_getopt(list:*mut WORD_LIST,opts:*mut c_char)->i32; + fn internal_getopt(list:*mut WordList,opts:*mut c_char)->i32; fn builtin_usage(); fn dispose_redirects(list:*mut REDIRECT); // fn sh_restricted(s:*mut c_char); - fn strvec_from_word_list(list:*mut WORD_LIST,alloc:i32,starting_index:i32,ip:*mut i32)->*mut *mut c_char; + fn strvec_from_word_list(list:*mut WordList,alloc:i32,starting_index:i32,ip:*mut i32)->*mut *mut c_char; fn absolute_program(string:*const c_char)->i32; fn search_for_command(pathname:*const c_char,flags:i32)->*mut c_char; fn file_isdir(f:*const c_char)->i32; @@ -190,7 +190,7 @@ extern "C" fn r_mkdashname(name:*mut c_char)->*mut c_char{ #[no_mangle] -pub extern "C" fn r_exec_builtin(mut list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_exec_builtin(mut list:*mut WordList)->i32{ let mut exit_value ; let mut cleanenv:i32 = 0; let mut login:i32 = 0; diff --git a/bash-5.1/builtins_rust/exit/src/lib.rs b/bash-5.1/builtins_rust/exit/src/lib.rs index 723cab9..ac3f925 100644 --- a/bash-5.1/builtins_rust/exit/src/lib.rs +++ b/bash-5.1/builtins_rust/exit/src/lib.rs @@ -5,7 +5,7 @@ extern crate nix; use libc::c_char; use std::ffi::CString; -use rjobs::{PROCESS, COMMAND, r_jobs_builtin, JLIST_STANDARD, WORD_LIST}; +use rjobs::{PROCESS, COMMAND, r_jobs_builtin, JLIST_STANDARD, WordList}; #[repr(C)] pub struct JOB { @@ -109,10 +109,10 @@ macro_rules! SYS_BASH_LOGOOUT { extern "C"{ static mut interactive:i32; static mut login_shell:i32; - // static mut last_shell_builtin:*mut fn(v:*mut WORD_LIST)->i32; - static mut last_shell_builtin:extern fn(v:*mut WORD_LIST)->i32; - // static mut this_shell_builtin:*mut fn(v:*mut WORD_LIST)->i32; - static mut this_shell_builtin:extern fn(v:*mut WORD_LIST)->i32; + // static mut last_shell_builtin:*mut fn(v:*mut WordList)->i32; + static mut last_shell_builtin:extern fn(v:*mut WordList)->i32; + // static mut this_shell_builtin:*mut fn(v:*mut WordList)->i32; + static mut this_shell_builtin:extern fn(v:*mut WordList)->i32; static js:jobstats ; static mut check_jobs_at_exit:i32; static mut jobs:*mut*mut JOB; @@ -124,7 +124,7 @@ extern "C"{ fn builtin_help(); fn builtin_error(err:*const c_char,...); fn list_all_jobs(form:i32); - fn get_exitstat(list:*mut WORD_LIST) -> i32; + fn get_exitstat(list:*mut WordList) -> i32; fn jump_to_top_level(level:i32); fn maybe_execute_file(fname:*const c_char,force_noninteractive:i32)->i32; } @@ -144,7 +144,7 @@ unsafe fn STREQ(a:*const c_char,b:*const c_char)->bool{ static mut sourced_logout:i32 = 0; #[no_mangle] -pub extern "C" fn r_exit_builtin(list:*mut WORD_LIST) -> i32{ +pub extern "C" fn r_exit_builtin(list:*mut WordList) -> i32{ println!("r_exit_builtin"); unsafe{ let c_str = CString::new("--help").unwrap(); @@ -174,7 +174,7 @@ pub extern "C" fn r_exit_builtin(list:*mut WORD_LIST) -> i32{ } #[no_mangle] -pub extern "C" fn r_logout_builtin(list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_logout_builtin(list:*mut WordList)->i32{ unsafe{ let c_str = CString::new("--help").unwrap(); let c_ptr = c_str.as_ptr(); @@ -196,7 +196,7 @@ pub extern "C" fn r_logout_builtin(list:*mut WORD_LIST)->i32{ } #[no_mangle] -pub extern "C" fn r_exit_or_logout(list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_exit_or_logout(list:*mut WordList)->i32{ // let stream:*mut libc::FILE; let exit_value:i32; let exit_immediate_okay:i32; diff --git a/bash-5.1/builtins_rust/fc/src/lib.rs b/bash-5.1/builtins_rust/fc/src/lib.rs index 409dbe2..9d97c2e 100644 --- a/bash-5.1/builtins_rust/fc/src/lib.rs +++ b/bash-5.1/builtins_rust/fc/src/lib.rs @@ -5,16 +5,16 @@ use libc::{c_char, c_long, c_void}; use std::{ffi::CString, i32, io::{Write, stdout}, ops::Add, string, u32}; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags:libc::c_int } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr(i8)] @@ -57,7 +57,7 @@ pub struct PROCESS { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:libc::c_int, - filename:* mut WORD_DESC + filename:* mut WordDesc } #[repr(C)] @@ -76,15 +76,15 @@ pub union REDIRECT { pub struct for_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:libc::c_int } @@ -93,7 +93,7 @@ pub struct PATTERN_LIST { pub struct case_com { flags:libc::c_int, line:libc::c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } @@ -124,7 +124,7 @@ pub struct connection { pub struct simple_com { flags:libc::c_int, line:libc::c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -132,7 +132,7 @@ pub struct simple_com { pub struct function_def { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -148,8 +148,8 @@ pub struct group_com { pub struct select_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -157,7 +157,7 @@ pub struct select_com { pub struct arith_com { flags:libc::c_int, line:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -165,16 +165,16 @@ pub struct cond_com { flags:libc::c_int, line:libc::c_int, type_c:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:libc::c_int, line:libc::c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -375,10 +375,10 @@ pub union Functions { extern "C" { fn reset_internal_getopt(); - static mut loptend:*mut WORD_LIST; - static mut lcurrent:*mut WORD_LIST; + static mut loptend:*mut WordList; + static mut lcurrent:*mut WordList; fn legal_number (str1:*const c_char,result:* mut c_long)->i32; - fn internal_getopt (list:*mut WORD_LIST , opts:*mut c_char)->i32; + fn internal_getopt (list:*mut WordList , opts:*mut c_char)->i32; static list_optarg:*mut c_char; fn builtin_usage(); fn history_list ()->*mut * mut HIST_ENTRY; @@ -423,7 +423,7 @@ pub extern "C" fn r_set_verbose_flag (){ } #[no_mangle] -pub extern "C" fn r_fc_number (list:* mut WORD_LIST)->i32 +pub extern "C" fn r_fc_number (list:* mut WordList)->i32 { let mut s:*mut c_char; @@ -500,7 +500,7 @@ unsafe fn STREQN ( a:* const c_char, b:* const c_char, n:i32)->bool { } #[no_mangle] -pub extern "C" fn r_fc_builtin (list:* mut WORD_LIST)->i32 +pub extern "C" fn r_fc_builtin (list:* mut WordList)->i32 { let mut i:i32; let mut sep:*mut c_char; @@ -558,7 +558,7 @@ pub extern "C" fn r_fc_builtin (list:* mut WORD_LIST)->i32 ret= ret && (opt !=-1); } - let mut llist:* mut WORD_LIST = loptend.clone(); + let mut llist:* mut WordList = loptend.clone(); if ename != std::ptr::null_mut() && char::from(*ename as u8 ) == '-' && char::from(*((ename as usize +4) as * mut c_char) as u8 )== '\0'{ execute = 1; @@ -1201,7 +1201,7 @@ pub extern "C" fn cmd_name() ->*const u8 { return b"fc" as *const u8; } #[no_mangle] -pub extern "C" fn run(list : *mut WORD_LIST)->i32 { +pub extern "C" fn run(list : *mut WordList)->i32 { return r_fc_builtin(list); } */ 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 224272a..7780ea4 100644 --- a/bash-5.1/builtins_rust/fg_bg/src/lib.rs +++ b/bash-5.1/builtins_rust/fg_bg/src/lib.rs @@ -5,16 +5,16 @@ use libc::{c_char, c_long}; use std::{ffi::CString, ops::Add}; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags:libc::c_int } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr(i8)] @@ -57,7 +57,7 @@ pub struct PROCESS { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:libc::c_int, /* Place to redirect REDIRECTOR to, or ... */ - filename:* mut WORD_DESC /* filename to redirect to. */ + filename:* mut WordDesc /* filename to redirect to. */ } #[repr(C)] @@ -76,15 +76,15 @@ pub union REDIRECT { pub struct for_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:libc::c_int } @@ -93,7 +93,7 @@ pub struct PATTERN_LIST { pub struct case_com { flags:libc::c_int, line:libc::c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } @@ -124,7 +124,7 @@ pub struct connection { pub struct simple_com { flags:libc::c_int, line:libc::c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -132,7 +132,7 @@ pub struct simple_com { pub struct function_def { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -148,8 +148,8 @@ pub struct group_com { pub struct select_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -157,7 +157,7 @@ pub struct select_com { pub struct arith_com { flags:libc::c_int, line:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -165,16 +165,16 @@ pub struct cond_com { flags:libc::c_int, line:libc::c_int, type_c:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:libc::c_int, line:libc::c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -352,14 +352,14 @@ macro_rules! CHECK_HELPOPT { extern "C" { fn builtin_error(err:*const c_char,...); - fn get_job_spec (list:*mut WORD_LIST)->i32; + fn get_job_spec (list:*mut WordList)->i32; fn sh_badjob (str:*mut c_char); static jobs:*mut*mut JOB; static js:jobstats ; - static mut loptend:*mut WORD_LIST; + static mut loptend:*mut WordList; fn sh_nojobs (str:*mut c_char); - fn no_options (list:*mut WORD_LIST)->i32; + fn no_options (list:*mut WordList)->i32; fn builtin_help (); static mut job_control:i32; static mut last_asynchronous_pid:i32; @@ -368,7 +368,7 @@ extern "C" { /* How to bring a job into the foreground. */ #[no_mangle] -pub extern "C" fn r_fg_builtin (list:*mut WORD_LIST)->i32 { +pub extern "C" fn r_fg_builtin (list:*mut WordList)->i32 { let fg_bit:i32; unsafe { CHECK_HELPOPT! (list); @@ -388,7 +388,7 @@ pub extern "C" fn r_fg_builtin (list:*mut WORD_LIST)->i32 { if loptend == std::ptr::null_mut() { return r_fg_bg (loptend, 1); } else { - let mut t:WORD_LIST=*loptend; + let mut t:WordList=*loptend; while t.next !=std::ptr::null_mut() { t=*(t.next); } @@ -408,7 +408,7 @@ pub extern "C" fn r_fg_builtin (list:*mut WORD_LIST)->i32 { /* How to put a job into the background. */ #[no_mangle] -pub extern "C" fn r_bg_builtin (list:*mut WORD_LIST)->i32 { +pub extern "C" fn r_bg_builtin (list:*mut WordList)->i32 { let mut r:i32; unsafe { CHECK_HELPOPT !(list); @@ -422,7 +422,7 @@ pub extern "C" fn r_bg_builtin (list:*mut WORD_LIST)->i32 { return EX_USAGE!(); } - /* This relies on the fact that fg_bg() takes a WORD_LIST *, but only acts + /* This relies on the fact that fg_bg() takes a WordList *, but only acts on the first member (if any) of that list. */ r = EXECUTION_SUCCESS!(); @@ -431,7 +431,7 @@ pub extern "C" fn r_bg_builtin (list:*mut WORD_LIST)->i32 { } if loptend !=std::ptr::null_mut() { - let mut t:WORD_LIST=*loptend; + let mut t:WordList=*loptend; while t.next !=std::ptr::null_mut() { if r_fg_bg (&mut t, 0) == EXECUTION_FAILURE!() { r = EXECUTION_FAILURE!(); @@ -447,7 +447,7 @@ pub extern "C" fn r_bg_builtin (list:*mut WORD_LIST)->i32 { /* How to put a job into the foreground/background. */ #[no_mangle] -pub extern "C" fn r_fg_bg (list:*mut WORD_LIST, foreground:i32)->i32{ +pub extern "C" fn r_fg_bg (list:*mut WordList, foreground:i32)->i32{ let mut set:nix::sys::signal::SigSet=nix::sys::signal::SigSet::empty(); let mut oset:nix::sys::signal::SigSet =nix::sys::signal::SigSet::empty(); @@ -515,7 +515,7 @@ pub extern "C" fn cmd_name() ->*const u8 { return b"fg" as *const u8; } #[no_mangle] -pub extern "C" fn run(list : *mut WORD_LIST)->i32 { +pub extern "C" fn run(list : *mut WordList)->i32 { return r_fg_builtin(list); } */ diff --git a/bash-5.1/builtins_rust/getopts/src/lib.rs b/bash-5.1/builtins_rust/getopts/src/lib.rs index 90b0793..a133a5d 100644 --- a/bash-5.1/builtins_rust/getopts/src/lib.rs +++ b/bash-5.1/builtins_rust/getopts/src/lib.rs @@ -5,16 +5,16 @@ use libc::{c_char, c_long, c_void}; use std::{ffi::CString}; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags:libc::c_int } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr(u8)] @@ -39,7 +39,7 @@ enum r_instruction { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:libc::c_int, - filename:* mut WORD_DESC + filename:* mut WordDesc } #[repr(C)] @@ -58,15 +58,15 @@ pub union REDIRECT { pub struct for_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:libc::c_int } @@ -75,7 +75,7 @@ pub struct PATTERN_LIST { pub struct case_com { flags:libc::c_int, line:libc::c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } @@ -106,7 +106,7 @@ pub struct connection { pub struct simple_com { flags:libc::c_int, line:libc::c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -114,7 +114,7 @@ pub struct simple_com { pub struct function_def { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -130,8 +130,8 @@ pub struct group_com { pub struct select_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -139,7 +139,7 @@ pub struct select_com { pub struct arith_com { flags:libc::c_int, line:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -147,16 +147,16 @@ pub struct cond_com { flags:libc::c_int, line:libc::c_int, type_c:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:libc::c_int, line:libc::c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -286,16 +286,16 @@ extern "C" { fn sh_getopt_restore_state (argv:*mut*mut c_char); static dollar_vars:[* mut c_char;10]; fn sh_getopt (argc:i32, argv: * const*mut c_char, optstring: * const c_char)->i32; - static rest_of_args:* mut WORD_LIST; + static rest_of_args:* mut WordList; fn number_of_args ()->i32; fn strvec_create (i:i32)->*mut*mut c_char; static sh_optarg:* mut c_char; static sh_optopt:i32; fn reset_internal_getopt(); - fn internal_getopt (list:*mut WORD_LIST , opts:*mut c_char)->i32; + fn internal_getopt (list:*mut WordList , opts:*mut c_char)->i32; fn builtin_help (); - static mut loptend:*mut WORD_LIST; - fn make_builtin_argv (list:* mut WORD_LIST, ac:* mut i32)->*mut*mut c_char; + static mut loptend:*mut WordList; + fn make_builtin_argv (list:* mut WordList, ac:* mut i32)->*mut*mut c_char; } /* getopts_reset is magic code for when OPTIND is reset. N is the @@ -408,7 +408,7 @@ pub extern "C" fn r_dogetopts(argc:i32, argv:*mut*mut c_char)->i32 sh_getopt_restore_state(&mut (dollar_vars[0] as * mut c_char)); ret = sh_getopt(i, &dollar_vars[0], optstr); } else { - let mut words: * mut WORD_LIST; + let mut words: * mut WordList; let v:*mut*mut c_char; i = number_of_args() + 1; /* +1 for $0 */ @@ -515,7 +515,7 @@ pub extern "C" fn r_dogetopts(argc:i32, argv:*mut*mut c_char)->i32 } #[no_mangle] -pub extern "C" fn r_getopts_builtin(list: * mut WORD_LIST)->i32 +pub extern "C" fn r_getopts_builtin(list: * mut WordList)->i32 { unsafe { let av:*mut*mut c_char; @@ -538,7 +538,7 @@ pub extern "C" fn r_getopts_builtin(list: * mut WORD_LIST)->i32 return EX_USAGE!(); } - let llist: * mut WORD_LIST=loptend.clone(); + let llist: * mut WordList=loptend.clone(); av = make_builtin_argv(llist, &mut ac); ret = r_dogetopts(ac, av); libc::free(av as * mut c_void); diff --git a/bash-5.1/builtins_rust/hash/src/lib.rs b/bash-5.1/builtins_rust/hash/src/lib.rs index 45dea8c..142514f 100644 --- a/bash-5.1/builtins_rust/hash/src/lib.rs +++ b/bash-5.1/builtins_rust/hash/src/lib.rs @@ -11,16 +11,16 @@ use rcommon::{r_find_shell_builtin,r_builtin_usage}; //struct //结构体 #[repr (C)] -pub struct WORD_DESC{ +pub struct WordDesc{ pub word:*mut c_char, pub flags:c_int, } #[repr (C)] // #[derive(Copy,Clone)] -pub struct WORD_LIST{ - pub next:*mut WORD_LIST, - pub word:*mut WORD_DESC, +pub struct WordList{ + pub next:*mut WordList, + pub word:*mut WordDesc, } type PTR_T=c_void; @@ -123,11 +123,11 @@ macro_rules! FREE { // type i32 hash_efunc PARAMS(*mut BUCKET_CONTENTS); type hash_wfunc = extern fn(*mut BUCKET_CONTENTS)->i32; -type sh_builtin_func_t = extern fn (*mut WORD_LIST)->i32; +type sh_builtin_func_t = extern fn (*mut WordList)->i32; //extern c extern "C"{ - static loptend:*mut WORD_LIST; + static loptend:*mut WordList; static hashing_enabled:i32; static list_optarg:*mut c_char; static this_command_name:*mut c_char; @@ -139,7 +139,7 @@ extern "C"{ fn builtin_error(format:*const c_char,...); fn reset_internal_getopt(); - fn internal_getopt(list:*mut WORD_LIST,opts:*mut c_char)->i32; + fn internal_getopt(list:*mut WordList,opts:*mut c_char)->i32; fn builtin_usage(); fn sh_needarg(s:*mut c_char); fn phash_flush(); @@ -163,7 +163,7 @@ extern "C"{ not empty, then rehash (or hash in the first place) the specified commands. */ #[no_mangle] -pub extern "C" fn r_hash_builtin(mut list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_hash_builtin(mut list:*mut WordList)->i32{ println!("r_hash_builtin"); let mut expunge_hash_table:i32; let mut list_targets:i32; @@ -388,11 +388,11 @@ extern "C" fn r_print_hashed_commands(fmt:i32)->i32{ } #[no_mangle] -extern "C" fn r_list_hashed_filename_targets(list:*mut WORD_LIST,fmt:i32)->i32{ +extern "C" fn r_list_hashed_filename_targets(list:*mut WordList,fmt:i32)->i32{ let mut all_found:i32; let multiple:i32; let mut target:*mut c_char; - let mut l:*mut WORD_LIST; + let mut l:*mut WordList; all_found = 1; diff --git a/bash-5.1/builtins_rust/help/src/lib.rs b/bash-5.1/builtins_rust/help/src/lib.rs index 40847e9..b215aac 100644 --- a/bash-5.1/builtins_rust/help/src/lib.rs +++ b/bash-5.1/builtins_rust/help/src/lib.rs @@ -10,16 +10,16 @@ pub enum Option { } #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags:libc::c_int } #[repr (C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr (C)] @@ -32,7 +32,7 @@ pub struct builtin { short_doc :*mut libc::c_char, handle :*mut libc::c_char } -type sh_builtin_func_t = fn(WORD_LIST) -> i32; +type sh_builtin_func_t = fn(WordList) -> i32; #[repr(C)] struct FieldStruct { @@ -92,14 +92,14 @@ macro_rules! EXIT_FAILURE{ extern "C"{ fn reset_internal_getopt(); - fn internal_getopt (list:*mut WORD_LIST , opts:*mut c_char)->i32; + fn internal_getopt (list:*mut WordList , opts:*mut c_char)->i32; //fn builtin_error(err:*const c_char,...); fn builtin_usage(); fn show_shell_version(ver:i32); fn glob_pattern_p(pattern:*const c_char) -> i32; fn zcatfd(fd : i32 ,id : i32, nn :*mut c_char) -> i32; fn zmapfd(fd : i32, name :*mut *mut libc::c_char, nn: *mut libc::c_char) -> i32; - fn sh_builtin_func_t(list :*mut WORD_LIST) -> i32; + fn sh_builtin_func_t(list :*mut WordList) -> i32; fn builtin_address_internal(comand_name:*mut c_char, i:i32) -> *mut builtin; fn termsig_handler (sig:i32); fn throw_to_top_level(); @@ -108,7 +108,7 @@ extern "C"{ fn xstrmatch (string1 : * mut libc::c_char, string2 : * mut libc::c_char, i : i8) -> i8; fn open(pathname : *const libc::c_char, oflag : i32) -> i32; fn wcwidth( c :libc::wchar_t) -> i32; - static mut loptend:*mut WORD_LIST; + static mut loptend:*mut WordList; static bash_copyright : *const c_char; static bash_license : *const c_char; static mut terminating_signal:i32; @@ -121,7 +121,7 @@ extern "C"{ } #[no_mangle] -pub extern "C" fn r_help_builtin(mut list:*mut WORD_LIST)->i32 { +pub extern "C" fn r_help_builtin(mut list:*mut WordList)->i32 { // let mut i:i32; let mut plen:usize; @@ -134,7 +134,7 @@ pub extern "C" fn r_help_builtin(mut list:*mut WORD_LIST)->i32 { let mut this_found:i32; let mut pattern:*mut c_char; let mut name:*mut c_char; - let l:*mut WORD_LIST= list; + let l:*mut WordList= list; let mut i : i32; unsafe { reset_internal_getopt(); @@ -251,7 +251,7 @@ pub extern "C" fn r_help_builtin(mut list:*mut WORD_LIST)->i32 { #[no_mangle] -pub extern "C" fn r_help_null_builtin (mut list:*mut WORD_LIST) -> i32{ +pub extern "C" fn r_help_null_builtin (mut list:*mut WordList) -> i32{ unsafe { show_shell_version(0); } diff --git a/bash-5.1/builtins_rust/history/src/intercdep.rs b/bash-5.1/builtins_rust/history/src/intercdep.rs index 187a02a..5ea73da 100644 --- a/bash-5.1/builtins_rust/history/src/intercdep.rs +++ b/bash-5.1/builtins_rust/history/src/intercdep.rs @@ -5,15 +5,15 @@ // pub word: *mut c_char, // pub flags: c_int, // } -// pub type WORD_DESC = word_desc; +// pub type WordDesc = word_desc; // #[repr(C)] // #[derive(Copy, Clone)] // pub struct word_list { // pub next: *mut word_list, -// pub word: *mut WORD_DESC, +// pub word: *mut WordDesc, // } -// pub type WORD_LIST = word_list; +// pub type WordList = word_list; pub const EXECUTION_SUCCESS : c_int = 0; pub const EXECUTION_FAILURE : c_int = 1; @@ -32,7 +32,7 @@ pub type HIST_ENTRY = _hist_entry; extern "C" { pub fn reset_internal_getopt(); - pub fn internal_getopt(list: *mut WORD_LIST, opts: *mut c_char) -> c_int; + pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); pub fn builtin_error(format: *const c_char, ...); @@ -53,9 +53,9 @@ extern "C" { pub fn read_history(filename: *const c_char) -> c_int; pub fn read_history_range(filename: *const c_char, from: c_int, to: c_int) -> c_int; pub fn strftime(s: *mut c_char, maxsize:size_t, format: *const c_char, timeptr: *const libc::tm) -> size_t; - pub fn get_numeric_arg(list: *mut WORD_LIST, fatal: c_int, count: *mut c_long) -> c_int; + pub fn get_numeric_arg(list: *mut WordList, fatal: c_int, count: *mut c_long) -> c_int; - pub fn string_list(list: *mut WORD_LIST) -> *mut c_char; + pub fn string_list(list: *mut WordList) -> *mut c_char; pub fn sh_chkwrite(s: c_int) -> c_int; pub fn get_string_value(var_name: *const c_char) -> *mut c_char; @@ -69,7 +69,7 @@ extern "C" { pub fn sh_restricted(s: *mut c_char) -> c_void; pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; pub static mut remember_on_history: c_int; pub static mut hist_last_line_pushed: c_int; diff --git a/bash-5.1/builtins_rust/history/src/lib.rs b/bash-5.1/builtins_rust/history/src/lib.rs index b94f758..077183e 100644 --- a/bash-5.1/builtins_rust/history/src/lib.rs +++ b/bash-5.1/builtins_rust/history/src/lib.rs @@ -1,7 +1,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,WORD_LIST}; +use rcommon::{r_builtin_usage,r_sh_erange,r_sh_restricted,r_sh_chkwrite,r_get_numeric_arg,WordList}; include!(concat!("intercdep.rs")); @@ -15,7 +15,7 @@ pub const CFLAG: c_int = 0x40; pub const DFLAG: c_int = 0x80; #[no_mangle] -pub extern "C" fn r_history_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_history_builtin(mut list: *mut WordList) -> i32 { println!("r_history_builtin call"); let mut flags: c_int = 0; @@ -231,7 +231,7 @@ unsafe fn quit() } } -unsafe fn display_history(list: *mut WORD_LIST) -> c_int +unsafe fn display_history(list: *mut WordList) -> c_int { let mut limit:c_long = 0; let mut histtimefmt: *mut c_char; @@ -285,7 +285,7 @@ unsafe fn display_history(list: *mut WORD_LIST) -> c_int return EXECUTION_SUCCESS; } -fn push_history(list: *mut WORD_LIST) { +fn push_history(list: *mut WordList) { unsafe { if remember_on_history != 0 && hist_last_line_pushed == 0 && (hist_last_line_added != 0 || (current_command_line_count > 0 && current_command_first_line_saved != 0 && command_oriented_history != 0)) && @@ -301,7 +301,7 @@ unsafe { } } -fn expand_and_print_history(mut list: *mut WORD_LIST) -> c_int +fn expand_and_print_history(mut list: *mut WordList) -> c_int { unsafe { diff --git a/bash-5.1/builtins_rust/jobs/src/lib.rs b/bash-5.1/builtins_rust/jobs/src/lib.rs index 3f74083..c04ad2c 100644 --- a/bash-5.1/builtins_rust/jobs/src/lib.rs +++ b/bash-5.1/builtins_rust/jobs/src/lib.rs @@ -5,16 +5,16 @@ use libc::{c_char, c_long}; use std::ffi::CString; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags:libc::c_int } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - pub next: *mut WORD_LIST, - pub word: *mut WORD_DESC +pub struct WordList { + pub next: *mut WordList, + pub word: *mut WordDesc } #[repr(i8)] @@ -57,7 +57,7 @@ pub struct PROCESS { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:libc::c_int, /* Place to redirect REDIRECTOR to, or ... */ - filename:* mut WORD_DESC /* filename to redirect to. */ + filename:* mut WordDesc /* filename to redirect to. */ } #[repr(C)] @@ -76,15 +76,15 @@ pub union REDIRECT { pub struct for_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:libc::c_int } @@ -93,7 +93,7 @@ pub struct PATTERN_LIST { pub struct case_com { flags:libc::c_int, line:libc::c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } @@ -124,7 +124,7 @@ pub struct connection { pub struct simple_com { flags:libc::c_int, line:libc::c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -132,7 +132,7 @@ pub struct simple_com { pub struct function_def { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -148,8 +148,8 @@ pub struct group_com { pub struct select_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -157,7 +157,7 @@ pub struct select_com { pub struct arith_com { flags:libc::c_int, line:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -165,16 +165,16 @@ pub struct cond_com { flags:libc::c_int, line:libc::c_int, type_c:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:libc::c_int, line:libc::c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -369,14 +369,14 @@ macro_rules! INVALID_JOB { extern "C" { fn list_running_jobs(format:i32); fn reset_internal_getopt(); - fn internal_getopt (list:*mut WORD_LIST , opts:*mut c_char)->i32; + fn internal_getopt (list:*mut WordList , opts:*mut c_char)->i32; fn builtin_error(err:*const c_char,...); fn builtin_usage(); - static mut loptend:*mut WORD_LIST; + static mut loptend:*mut WordList; fn list_all_jobs(form:i32); fn list_stopped_jobs(form:i32); fn list_one_job (jjob:*mut JOB, format:i32, ignore:i32, job_index:i32); - fn get_job_spec (list:*mut WORD_LIST)->i32; + fn get_job_spec (list:*mut WordList)->i32; fn sh_badjob (str:*mut c_char); static jobs:*mut*mut JOB; fn discard_unwind_frame (str: * mut c_char); @@ -384,7 +384,7 @@ extern "C" { fn execute_command (command:* mut COMMAND)->i32; fn dispose_command (command:* mut COMMAND); fn make_bare_simple_command ()->* mut COMMAND; - fn copy_word_list (list:*mut WORD_LIST)->* mut WORD_LIST; + fn copy_word_list (list:*mut WordList)->* mut WordList; static js:jobstats ; fn add_unwind_protect(_:unsafe extern "C" fn(command:* mut COMMAND),...); fn legal_number(str:* const c_char, result:* mut c_long)->i32; @@ -396,10 +396,10 @@ extern "C" { } #[no_mangle] - pub extern "C" fn r_execute_list_with_replacements (list:*mut WORD_LIST)->i32{ + pub extern "C" fn r_execute_list_with_replacements (list:*mut WordList)->i32{ //println!("r_execute_list_with_replacements"); unsafe{ - let mut l:*mut WORD_LIST=list; + let mut l:*mut WordList=list; let mut job:i32; let result:i32; let command:*mut COMMAND; @@ -439,7 +439,7 @@ extern "C" { } #[no_mangle] -pub extern "C" fn r_jobs_builtin(list:*mut WORD_LIST)->i32 { +pub extern "C" fn r_jobs_builtin(list:*mut WordList)->i32 { println!("r_jobs_builtin"); let mut form:i32; let mut execute:i32=0; @@ -524,7 +524,7 @@ pub extern "C" fn r_jobs_builtin(list:*mut WORD_LIST)->i32 { } #[no_mangle] -pub extern "C" fn r_disown_builtin (list:* mut WORD_LIST)->libc::c_int { +pub extern "C" fn r_disown_builtin (list:* mut WordList)->libc::c_int { let opt:i32; let mut job:i32=0; let mut retval:i32; @@ -619,7 +619,7 @@ pub extern "C" fn cmd_name() ->*const u8 { /* #[no_mangle] -pub extern "C" fn run(list : *mut WORD_LIST)->i32 { +pub extern "C" fn run(list : *mut WordList)->i32 { return r_jobs_builtin(list); } */ diff --git a/bash-5.1/builtins_rust/kill/src/intercdep.rs b/bash-5.1/builtins_rust/kill/src/intercdep.rs index 1d7d400..48b59a2 100644 --- a/bash-5.1/builtins_rust/kill/src/intercdep.rs +++ b/bash-5.1/builtins_rust/kill/src/intercdep.rs @@ -1,19 +1,19 @@ -use rcommon::{r_builtin_usage,r_sh_invalidsig,r_sh_badpid,r_sh_badjob,r_get_job_spec,r_display_signal_list,WORD_LIST,WORD_DESC}; +use rcommon::{r_builtin_usage,r_sh_invalidsig,r_sh_badpid,r_sh_badjob,r_get_job_spec,r_display_signal_list,WordList,WordDesc}; // #[repr(C)] // #[derive(Copy, Clone)] // pub struct word_desc { // pub word: *mut c_char, // pub flags: c_int, // } -// pub type WORD_DESC = word_desc; +// pub type WordDesc = word_desc; // #[repr(C)] // #[derive(Copy, Clone)] // pub struct word_list { // pub next: *mut word_list, -// pub word: *mut WORD_DESC, +// pub word: *mut WordDesc, // } -// pub type WORD_LIST = word_list; +// pub type WordList = word_list; pub const EXECUTION_SUCCESS : c_int = 0; pub const EXECUTION_FAILURE : c_int = 1; @@ -39,7 +39,7 @@ pub type command_type = c_uint; #[derive(Copy, Clone)] pub union REDIRECTEE { pub dest: c_int, - pub filename: *mut WORD_DESC, + pub filename: *mut WordDesc, } pub type r_instruction = c_uint; @@ -89,7 +89,7 @@ pub type COMMAND = command; #[derive(Copy, Clone)] pub struct pattern_list { pub next: *mut pattern_list, - pub patterns: *mut WORD_LIST, + pub patterns: *mut WordList, pub action: *mut COMMAND, pub flags: c_int, } @@ -100,7 +100,7 @@ pub type PATTERN_LIST = pattern_list; pub struct case_com { pub flags: c_int, pub line: c_int, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, pub clauses: *mut PATTERN_LIST, } @@ -110,8 +110,8 @@ pub type CASE_COM = case_com; pub struct for_com { pub flags: c_int, pub line: c_int, - pub name: *mut WORD_DESC, - pub map_list: *mut WORD_LIST, + pub name: *mut WordDesc, + pub map_list: *mut WordList, pub action: *mut COMMAND, } @@ -121,9 +121,9 @@ pub type FOR_COM = for_com; pub struct arith_for_com { pub flags: c_int, pub line: c_int, - pub init: *mut WORD_LIST, - pub test: *mut WORD_LIST, - pub step: *mut WORD_LIST, + pub init: *mut WordList, + pub test: *mut WordList, + pub step: *mut WordList, pub action: *mut COMMAND, } @@ -133,8 +133,8 @@ pub type ARITH_FOR_COM = arith_for_com; pub struct select_com { pub flags: c_int, pub line: c_int, - pub name: *mut WORD_DESC, - pub map_list: *mut WORD_LIST, + pub name: *mut WordDesc, + pub map_list: *mut WordList, pub action: *mut COMMAND, } @@ -163,7 +163,7 @@ pub type WHILE_COM = while_com; pub struct arith_com { pub flags: c_int, pub line: c_int, - pub exp: *mut WORD_LIST, + pub exp: *mut WordList, } pub type ARITH_COM = arith_com; @@ -173,7 +173,7 @@ pub struct cond_com { pub flags: c_int, pub line: c_int, pub type_: c_int, - pub op: *mut WORD_DESC, + pub op: *mut WordDesc, pub left: *mut cond_com, pub right: *mut cond_com, } @@ -184,7 +184,7 @@ pub type COND_COM = cond_com; pub struct simple_com { pub flags: c_int, pub line: c_int, - pub words: *mut WORD_LIST, + pub words: *mut WordList, pub redirects: *mut REDIRECT, } @@ -194,7 +194,7 @@ pub type SIMPLE_COM = simple_com; pub struct function_def { pub flags: c_int, pub line: c_int, - pub name: *mut WORD_DESC, + pub name: *mut WordDesc, pub command: *mut COMMAND, pub source_file: *mut c_char, } @@ -294,16 +294,16 @@ pub struct jobstats { extern "C" { pub fn reset_internal_getopt(); - pub fn internal_getopt(list: *mut WORD_LIST, opts: *mut c_char) -> c_int; + pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; - pub fn get_job_spec(list: *mut WORD_LIST) -> c_int; + 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; - pub fn display_signal_list (list: *mut WORD_LIST, forcecols: c_int) -> c_int; + pub fn display_signal_list (list: *mut WordList, forcecols: c_int) -> c_int; pub fn decode_signal (string: *mut c_char, flags: c_int) -> c_int; pub fn sh_needarg(s: *mut c_char) -> c_void; @@ -314,7 +314,7 @@ extern "C" { pub fn kill_pid(pid: libc::pid_t, sig: c_int, group: c_int) -> c_int; pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; pub static posixly_correct: 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 eb27c62..0a6f237 100644 --- a/bash-5.1/builtins_rust/kill/src/lib.rs +++ b/bash-5.1/builtins_rust/kill/src/lib.rs @@ -1,13 +1,13 @@ use std::{ffi::{CString, CStr}}; use libc::{c_int, c_uint, c_char, c_long, c_void, PT_NULL}; -// use rcommon::{r_builtin_usage,r_sh_invalidsig,r_sh_badpid,r_sh_badjob,r_get_job_spec,r_display_signal_list,WORD_LIST}; +// use rcommon::{r_builtin_usage,r_sh_invalidsig,r_sh_badpid,r_sh_badjob,r_get_job_spec,r_display_signal_list,WordList}; include!(concat!("intercdep.rs")); #[no_mangle] -pub extern "C" fn r_kill_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_kill_builtin(mut list: *mut WordList) -> i32 { println!("r_kill_builtin call"); unsafe { diff --git a/bash-5.1/builtins_rust/mapfile/src/intercdep.rs b/bash-5.1/builtins_rust/mapfile/src/intercdep.rs index f4de2e9..d1d3956 100644 --- a/bash-5.1/builtins_rust/mapfile/src/intercdep.rs +++ b/bash-5.1/builtins_rust/mapfile/src/intercdep.rs @@ -5,15 +5,15 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; pub type arrayind_t = c_long; @@ -83,7 +83,7 @@ pub const att_noassign: c_int = 0x0004000; extern "C" { pub fn reset_internal_getopt(); - pub fn internal_getopt(list: *mut WORD_LIST, opts: *mut c_char) -> c_int; + pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); pub fn builtin_error(format: *const c_char, ...); @@ -109,6 +109,6 @@ extern "C" { pub fn zgetline (fd: c_int, lineptr: *mut *mut c_char, n: *mut size_t, delim: c_int, unbuffered_read: c_int) -> ssize_t; pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; } diff --git a/bash-5.1/builtins_rust/mapfile/src/lib.rs b/bash-5.1/builtins_rust/mapfile/src/lib.rs index c4504d7..512d37f 100644 --- a/bash-5.1/builtins_rust/mapfile/src/lib.rs +++ b/bash-5.1/builtins_rust/mapfile/src/lib.rs @@ -12,7 +12,7 @@ pub const MAPF_CHOP: c_int = 0x02; static mut delim: c_int = 0; #[no_mangle] -pub extern "C" fn r_mapfile_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_mapfile_builtin(mut list: *mut WordList) -> i32 { println!("r_mapfile_builtin call"); let mut opt: c_int; diff --git a/bash-5.1/builtins_rust/printf/src/intercdep.rs b/bash-5.1/builtins_rust/printf/src/intercdep.rs index ebc27b2..5fd1594 100644 --- a/bash-5.1/builtins_rust/printf/src/intercdep.rs +++ b/bash-5.1/builtins_rust/printf/src/intercdep.rs @@ -4,15 +4,15 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; // pub type SHELL_VAR = variable; @@ -70,7 +70,7 @@ pub const att_noassign: c_int = 0x0004000; extern "C" { pub fn reset_internal_getopt(); - pub fn internal_getopt(list: *mut WORD_LIST, opts: *mut c_char) -> c_int; + pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); pub fn builtin_error(format: *const c_char, ...); pub fn builtin_warning(format: *const c_char, ...); @@ -105,7 +105,7 @@ extern "C" { pub fn sh_wrerror() -> c_void; pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; pub static mut assoc_expand_once: c_int; pub static terminating_signal : c_int; diff --git a/bash-5.1/builtins_rust/printf/src/lib.rs b/bash-5.1/builtins_rust/printf/src/lib.rs index b53dda6..ce4971f 100644 --- a/bash-5.1/builtins_rust/printf/src/lib.rs +++ b/bash-5.1/builtins_rust/printf/src/lib.rs @@ -48,11 +48,11 @@ static mut vblen: c_int = 0; static mut retval: c_int = 0; static mut tw: c_long = 0; -static mut garglist: *mut WORD_LIST = PT_NULL as *mut WORD_LIST; -static mut orig_arglist: *mut WORD_LIST = PT_NULL as *mut WORD_LIST; +static mut garglist: *mut WordList = PT_NULL as *mut WordList; +static mut orig_arglist: *mut WordList = PT_NULL as *mut WordList; #[no_mangle] -pub extern "C" fn r_printf_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_printf_builtin(mut list: *mut WordList) -> i32 { println!("r_printf_builtin call"); let mut ch: c_int; diff --git a/bash-5.1/builtins_rust/pushd/src/lib.rs b/bash-5.1/builtins_rust/pushd/src/lib.rs index bd0783c..8a823e2 100644 --- a/bash-5.1/builtins_rust/pushd/src/lib.rs +++ b/bash-5.1/builtins_rust/pushd/src/lib.rs @@ -5,16 +5,16 @@ use libc::{c_char, c_long, c_void}; use std::{ffi::CString}; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags:libc::c_int } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr(u8)] @@ -39,7 +39,7 @@ enum r_instruction { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:libc::c_int, - filename:* mut WORD_DESC + filename:* mut WordDesc } #[repr(C)] @@ -58,15 +58,15 @@ pub union REDIRECT { pub struct for_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:libc::c_int } @@ -75,7 +75,7 @@ pub struct PATTERN_LIST { pub struct case_com { flags:libc::c_int, line:libc::c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } @@ -106,7 +106,7 @@ pub struct connection { pub struct simple_com { flags:libc::c_int, line:libc::c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -114,7 +114,7 @@ pub struct simple_com { pub struct function_def { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -130,8 +130,8 @@ pub struct group_com { pub struct select_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -139,7 +139,7 @@ pub struct select_com { pub struct arith_com { flags:libc::c_int, line:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -147,16 +147,16 @@ pub struct cond_com { flags:libc::c_int, line:libc::c_int, type_c:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:libc::c_int, line:libc::c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -254,12 +254,12 @@ extern "C" { fn builtin_usage(); fn sh_invalidnum (value:* mut c_char); fn legal_number (str1:* const c_char, num:* mut libc::c_long)->i32; - fn cd_builtin (list:*mut WORD_LIST)->i32; + fn cd_builtin (list:*mut WordList)->i32; fn polite_directory_format (path:* mut c_char)->* mut c_char; fn sh_erange (str1:* mut c_char, str2:* mut c_char); - fn make_word_list (w: * mut WORD_DESC , l: * mut WORD_LIST)->* mut WORD_LIST; - fn make_word (w:*const c_char)->* mut WORD_DESC; - fn dispose_words (l: * mut WORD_LIST); + fn make_word_list (w: * mut WordDesc , l: * mut WordList)->* mut WordList; + fn make_word (w:*const c_char)->* mut WordDesc; + fn dispose_words (l: * mut WordList); fn strvec_resize (c:* mut * mut c_char, s:i32)->* mut * mut c_char; fn get_string_value (w:*const c_char)-> * mut c_char; fn sh_chkwrite (i:i32)->i32; @@ -290,9 +290,9 @@ unsafe fn savestring(x:* const c_char)->* mut c_char } #[no_mangle] -pub extern "C" fn r_pushd_builtin (listt:* mut WORD_LIST)->i32 +pub extern "C" fn r_pushd_builtin (listt:* mut WordList)->i32 { - let orig_list:* mut WORD_LIST; + let orig_list:* mut WordList; let mut temp:* mut c_char; let current_directory:* mut c_char; let mut top:* mut c_char; @@ -303,7 +303,7 @@ pub extern "C" fn r_pushd_builtin (listt:* mut WORD_LIST)->i32 let mut direction:c_char; unsafe { - let mut list:* mut WORD_LIST=listt.clone(); + let mut list:* mut WordList=listt.clone(); orig_list = list.clone(); if list != std::ptr::null_mut() && (*list).word != std::ptr::null_mut() && ISHELP((*((*list).word)).word) { @@ -479,7 +479,7 @@ pub extern "C" fn r_pushd_builtin (listt:* mut WORD_LIST)->i32 If LIST is non-null it should consist of a word +N or -N, which says what element to delete from the stack. The default is the top one. */ #[no_mangle] -pub extern "C" fn r_popd_builtin (listt:* mut WORD_LIST)->i32 { +pub extern "C" fn r_popd_builtin (listt:* mut WordList)->i32 { let mut i:i32; let mut which:libc::c_long; let mut flags:i32; @@ -487,7 +487,7 @@ let mut direction:c_char; let mut which_word:* mut c_char; unsafe { -let mut list:* mut WORD_LIST=listt.clone(); +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 (); return EX_USAGE!(); @@ -589,7 +589,7 @@ if (direction == '+' as c_char && which == 0) || /* Print the current list of directories on the directory stack. */ #[no_mangle] -pub extern "C" fn r_dirs_builtin (listt:* mut WORD_LIST)->i32 +pub extern "C" fn r_dirs_builtin (listt:* mut WordList)->i32 { let mut flags:i32=0; let mut desired_index:i32=-1; @@ -600,7 +600,7 @@ pub extern "C" fn r_dirs_builtin (listt:* mut WORD_LIST)->i32 let mut w:* mut c_char=CString::new("").unwrap().as_ptr() as * mut c_char; unsafe { - let mut list:* mut WORD_LIST=listt.clone(); + 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 (); return EX_USAGE!(); @@ -765,8 +765,8 @@ pub extern "C" fn r_clear_directory_stack () pub extern "C" fn r_cd_to_string (name:* mut c_char)->i32 { unsafe { - let tlist:* mut WORD_LIST; - let dir:* mut WORD_LIST; + let tlist:* mut WordList; + let dir:* mut WordList; let result:i32; dir = make_word_list (make_word (name), std::ptr::null_mut()); @@ -914,10 +914,10 @@ pub extern "C" fn r_set_dirstack_element (ind:libc::c_long, sign:i32, value:* mu } #[no_mangle] -pub extern "C" fn r_get_directory_stack (flags:i32)->* mut WORD_LIST +pub extern "C" fn r_get_directory_stack (flags:i32)->* mut WordList { let mut i:i32; - let mut ret:* mut WORD_LIST; + let mut ret:* mut WordList; let mut d:* mut c_char; let t:* mut c_char; unsafe { @@ -957,7 +957,7 @@ pub extern "C" fn r_get_directory_stack (flags:i32)->* mut WORD_LIST if i !=0 { libc::free (d as * mut c_void); } - return ret; /* was (REVERSE_LIST (ret, (WORD_LIST *)); */ + return ret; /* was (REVERSE_LIST (ret, (WordList *)); */ } } @@ -967,6 +967,6 @@ pub extern "C" fn cmd_name() ->*const u8 { } #[no_mangle] -pub extern "C" fn run(list : *mut WORD_LIST)->i32 { +pub extern "C" fn run(list : *mut WordList)->i32 { return r_pushd_builtin(list); } \ No newline at end of file diff --git a/bash-5.1/builtins_rust/read/src/intercdep.rs b/bash-5.1/builtins_rust/read/src/intercdep.rs index 231a6d9..2fed8da 100644 --- a/bash-5.1/builtins_rust/read/src/intercdep.rs +++ b/bash-5.1/builtins_rust/read/src/intercdep.rs @@ -5,15 +5,15 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; use rcommon::{r_builtin_usage,r_sh_invalidid,r_builtin_bind_variable}; //use rcommon::{r_builtin_usage,r_sh_invalidid,r_builtin_bind_variable,SHELL_VAR}; @@ -105,21 +105,21 @@ extern "C" { pub fn reset_internal_getopt(); pub fn internal_getopt( - arg1: *mut WORD_LIST, + arg1: *mut WordList, arg2: *mut c_char, ) -> c_int; - pub fn list_string(s: *mut c_char, t: *mut c_char, i: c_int) -> *mut WORD_LIST; + pub fn list_string(s: *mut c_char, t: *mut c_char, i: c_int) -> *mut WordList; pub fn dequote_string(s: *mut c_char) -> *mut c_char; - pub fn dequote_list(s: *mut WORD_LIST) -> *mut WORD_LIST; - pub fn word_list_remove_quoted_nulls(s: *mut WORD_LIST); - pub fn dispose_words(s: *mut WORD_LIST); - pub fn assign_array_var_from_word_list(var: *mut SHELL_VAR, list: *mut WORD_LIST, flags: c_int) -> *mut SHELL_VAR; + pub fn dequote_list(s: *mut WordList) -> *mut WordList; + pub fn word_list_remove_quoted_nulls(s: *mut WordList); + pub fn dispose_words(s: *mut WordList); + pub fn assign_array_var_from_word_list(var: *mut SHELL_VAR, list: *mut WordList, flags: c_int) -> *mut SHELL_VAR; pub fn builtin_usage(); pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; pub static mut assoc_expand_once : c_int; pub static mut interactive_shell : c_int; diff --git a/bash-5.1/builtins_rust/read/src/lib.rs b/bash-5.1/builtins_rust/read/src/lib.rs index 7a7c390..6fcffee 100644 --- a/bash-5.1/builtins_rust/read/src/lib.rs +++ b/bash-5.1/builtins_rust/read/src/lib.rs @@ -25,7 +25,7 @@ static mut interactive : c_int = 0; static mut default_buffered_input : c_int = -1; #[no_mangle] -pub extern "C" fn r_read_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_read_builtin(mut list: *mut WordList) -> i32 { println!("r_read_builtin call"); let mut varname :*mut c_char = libc::PT_NULL as *mut c_char; @@ -94,7 +94,7 @@ pub extern "C" fn r_read_builtin(mut list: *mut WORD_LIST) -> i32 { ttset = std::mem::zeroed(); } - let mut alist : *mut WORD_LIST; + let mut alist : *mut WordList; let mut vflags : c_int; let mut rlbuf : *mut c_char = null_mut(); diff --git a/bash-5.1/builtins_rust/rlet/src/intercdep.rs b/bash-5.1/builtins_rust/rlet/src/intercdep.rs index d2246f9..fda0e61 100644 --- a/bash-5.1/builtins_rust/rlet/src/intercdep.rs +++ b/bash-5.1/builtins_rust/rlet/src/intercdep.rs @@ -5,15 +5,15 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; pub const EXECUTION_SUCCESS : c_int = 0; pub const EXECUTION_FAILURE : c_int = 1; @@ -32,7 +32,7 @@ pub struct _hist_entry { pub type HIST_ENTRY = _hist_entry; extern "C" { - pub fn string_list(list: *mut WORD_LIST) -> *mut c_char; + pub fn string_list(list: *mut WordList) -> *mut c_char; pub fn builtin_usage(); pub fn builtin_help(); @@ -41,6 +41,6 @@ extern "C" { pub fn evalexp (expr: *mut c_char, flags: c_int, validp: *mut c_int) -> c_long; pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; } diff --git a/bash-5.1/builtins_rust/rlet/src/lib.rs b/bash-5.1/builtins_rust/rlet/src/lib.rs index 998909d..56186ed 100644 --- a/bash-5.1/builtins_rust/rlet/src/lib.rs +++ b/bash-5.1/builtins_rust/rlet/src/lib.rs @@ -5,7 +5,7 @@ use libc::{c_int, c_char, c_long, c_void}; include!(concat!("intercdep.rs")); #[no_mangle] -pub extern "C" fn r_let_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_let_builtin(mut list: *mut WordList) -> i32 { println!("r_let_builtin call"); unsafe { let mut ret: c_long = 0; @@ -39,7 +39,7 @@ unsafe { } #[no_mangle] -pub extern "C" fn r_exp_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_exp_builtin(mut list: *mut WordList) -> i32 { println!("r_exp_builtin call"); unsafe { diff --git a/bash-5.1/builtins_rust/rreturn/src/intercdep.rs b/bash-5.1/builtins_rust/rreturn/src/intercdep.rs index f1af732..42b6d10 100644 --- a/bash-5.1/builtins_rust/rreturn/src/intercdep.rs +++ b/bash-5.1/builtins_rust/rreturn/src/intercdep.rs @@ -5,15 +5,15 @@ // pub word: *mut c_char, // pub flags: c_int, // } -// pub type WORD_DESC = word_desc; +// pub type WordDesc = word_desc; // #[repr(C)] // #[derive(Copy, Clone)] // pub struct word_list { // pub next: *mut word_list, -// pub word: *mut WORD_DESC, +// pub word: *mut WordDesc, // } -// pub type WORD_LIST = word_list; +// pub type WordList = word_list; pub const EXECUTION_SUCCESS : c_int = 0; pub const EXECUTION_FAILURE : c_int = 1; @@ -41,12 +41,12 @@ extern "C" { pub fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); - pub fn get_exitstat(list: *mut WORD_LIST) -> c_int; + pub fn get_exitstat(list: *mut WordList) -> c_int; pub fn siglongjmp(__env: *mut __jmp_buf_tag, __val: c_int); pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; pub static mut return_catch_value: c_int; pub static return_catch_flag: 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 1d344b7..a08a40d 100644 --- a/bash-5.1/builtins_rust/rreturn/src/lib.rs +++ b/bash-5.1/builtins_rust/rreturn/src/lib.rs @@ -1,9 +1,9 @@ use libc::{c_int, c_char, c_long, c_ulong}; -use rcommon::{r_get_exitstat,WORD_LIST}; +use rcommon::{r_get_exitstat,WordList}; include!(concat!("intercdep.rs")); #[no_mangle] -pub extern "C" fn r_return_builtin(list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_return_builtin(list: *mut WordList) -> i32 { println!("r_return_builtin call"); unsafe { diff --git a/bash-5.1/builtins_rust/set/src/lib.rs b/bash-5.1/builtins_rust/set/src/lib.rs index 74feac9..24ab4ec 100644 --- a/bash-5.1/builtins_rust/set/src/lib.rs +++ b/bash-5.1/builtins_rust/set/src/lib.rs @@ -7,16 +7,16 @@ use std::ptr; use std::mem; use std::io; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut i8, pub flags:i32 } #[repr (C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[macro_export] @@ -857,7 +857,7 @@ extern "C" { fn all_shell_functions () -> *mut *mut SHELL_VAR; fn num_posix_options() -> i32; fn find_flag(_: i32) -> *mut i32; - fn internal_getopt (list:*mut WORD_LIST , opts:*mut i8)->i32; + fn internal_getopt (list:*mut WordList , opts:*mut i8)->i32; fn get_posix_options(_: *mut i8) -> *mut i8; fn sh_chkwrite (_:i32)->i32; fn reset_internal_getopt(); @@ -869,7 +869,7 @@ extern "C" { fn bash_history_enable(); fn load_history(); fn bash_history_disable(); - fn remember_args (list:* mut WORD_LIST, argc:i32); + fn remember_args (list:* mut WordList, argc:i32); fn sh_invalidid (value:* mut i8); fn legal_identifier (_:*const i8) -> i32; fn unbind_array_element(_: *mut SHELL_VAR, _:*mut i8,_: i32) -> i32; @@ -893,7 +893,7 @@ extern "C" { static mut history_lines_this_session : i32; static mut rl_editing_mode : i32; static mut list_optopt :i32; - static mut loptend:*mut WORD_LIST; + static mut loptend:*mut WordList; static assoc_expand_once:i32; static mut stdin : libc::FILE; } @@ -1404,7 +1404,7 @@ unsafe fn reset_shell_options () { } #[no_mangle] - pub extern "C" fn r_set_builtin (mut list: *mut WORD_LIST) -> i32 { + pub extern "C" fn r_set_builtin (mut list: *mut WordList) -> i32 { //println!("write by huanhuan"); let mut on_or_off : i32 ; let mut flag_name : i32 = 0; @@ -1527,7 +1527,7 @@ unsafe fn reset_shell_options () { /* -+o option-name */ //println!("optChar == 'o'"); let mut option_name : *mut i8 = 0 as *mut i8 ; - let mut opt : *mut WORD_LIST = 0 as *mut WORD_LIST; + let mut opt : *mut WordList = 0 as *mut WordList; unsafe {opt = (*list).next;} if opt == std::ptr::null_mut(){ //println!("opt is null"); @@ -1643,7 +1643,7 @@ unsafe fn reset_shell_options () { } #[no_mangle] -pub extern "C" fn r_unset_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_unset_builtin(mut list: *mut WordList) -> i32 { let mut unset_function: i32 = 0; let mut unset_variable: i32 = 0; let mut unset_array: i32 = 0; diff --git a/bash-5.1/builtins_rust/setattr/src/intercdep.rs b/bash-5.1/builtins_rust/setattr/src/intercdep.rs index cea139d..98a323e 100644 --- a/bash-5.1/builtins_rust/setattr/src/intercdep.rs +++ b/bash-5.1/builtins_rust/setattr/src/intercdep.rs @@ -5,15 +5,15 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; pub type __intmax_t = c_long; pub type intmax_t = __intmax_t; @@ -53,7 +53,7 @@ pub type command_type = c_uint; #[derive(Copy, Clone)] pub union REDIRECTEE { pub dest: c_int, - pub filename: *mut WORD_DESC, + pub filename: *mut WordDesc, } pub type r_instruction = c_uint; @@ -104,7 +104,7 @@ pub type COMMAND = command; #[derive(Copy, Clone)] pub struct pattern_list { pub next: *mut pattern_list, - pub patterns: *mut WORD_LIST, + pub patterns: *mut WordList, pub action: *mut COMMAND, pub flags: c_int, } @@ -115,7 +115,7 @@ pub type PATTERN_LIST = pattern_list; pub struct case_com { pub flags: c_int, pub line: c_int, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, pub clauses: *mut PATTERN_LIST, } @@ -125,8 +125,8 @@ pub type CASE_COM = case_com; pub struct for_com { pub flags: c_int, pub line: c_int, - pub name: *mut WORD_DESC, - pub map_list: *mut WORD_LIST, + pub name: *mut WordDesc, + pub map_list: *mut WordList, pub action: *mut COMMAND, } @@ -136,9 +136,9 @@ pub type FOR_COM = for_com; pub struct arith_for_com { pub flags: c_int, pub line: c_int, - pub init: *mut WORD_LIST, - pub test: *mut WORD_LIST, - pub step: *mut WORD_LIST, + pub init: *mut WordList, + pub test: *mut WordList, + pub step: *mut WordList, pub action: *mut COMMAND, } @@ -148,8 +148,8 @@ pub type ARITH_FOR_COM = arith_for_com; pub struct select_com { pub flags: c_int, pub line: c_int, - pub name: *mut WORD_DESC, - pub map_list: *mut WORD_LIST, + pub name: *mut WordDesc, + pub map_list: *mut WordList, pub action: *mut COMMAND, } @@ -178,7 +178,7 @@ pub type WHILE_COM = while_com; pub struct arith_com { pub flags: c_int, pub line: c_int, - pub exp: *mut WORD_LIST, + pub exp: *mut WordList, } pub type ARITH_COM = arith_com; @@ -188,7 +188,7 @@ pub struct cond_com { pub flags: c_int, pub line: c_int, pub type_: c_int, - pub op: *mut WORD_DESC, + pub op: *mut WordDesc, pub left: *mut cond_com, pub right: *mut cond_com, } @@ -199,7 +199,7 @@ pub type COND_COM = cond_com; pub struct simple_com { pub flags: c_int, pub line: c_int, - pub words: *mut WORD_LIST, + pub words: *mut WordList, pub redirects: *mut REDIRECT, } @@ -209,7 +209,7 @@ pub type SIMPLE_COM = simple_com; pub struct function_def { pub flags: c_int, pub line: c_int, - pub name: *mut WORD_DESC, + pub name: *mut WordDesc, pub command: *mut COMMAND, pub source_file: *mut c_char, } @@ -308,7 +308,7 @@ pub struct jobstats { } pub type sh_builtin_func_t = - unsafe extern "C" fn(arg1: *mut WORD_LIST) -> c_int; + unsafe extern "C" fn(arg1: *mut WordList) -> c_int; pub const att_exported: c_int = 0x0000001; pub const att_readonly: c_int = 0x0000002; @@ -341,7 +341,7 @@ pub const FUNC_MULTILINE: c_int = 0x01; pub const FUNC_EXTERNAL: c_int = 0x02; extern "C" { - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; pub static mut array_needs_making: c_int; pub static mut this_shell_builtin: sh_builtin_func_t; pub static mut posixly_correct: c_int; @@ -351,7 +351,7 @@ extern "C" { pub static mut nameref_invalid_value: SHELL_VAR; pub fn reset_internal_getopt(); - pub fn internal_getopt(list: *mut WORD_LIST, opts: *mut c_char) -> c_int; + pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); pub fn builtin_error(arg1: *const c_char, ...); pub fn find_function(name: *const c_char) -> *mut SHELL_VAR; @@ -359,10 +359,10 @@ extern "C" { pub fn assignment(string: *const c_char, flags: c_int) -> c_int; pub fn legal_identifier(arg1: *const c_char) -> c_int; pub fn sh_invalidid(s: *mut c_char); - pub fn make_word(string: *const c_char) -> *mut WORD_DESC; - pub fn make_word_list(word: *mut WORD_DESC, wlink: *mut WORD_LIST) -> *mut WORD_LIST; - pub fn declare_builtin(list:* mut WORD_LIST) -> c_int; - pub fn dispose_word(w: *mut WORD_DESC); + pub fn make_word(string: *const c_char) -> *mut WordDesc; + pub fn make_word_list(word: *mut WordDesc, wlink: *mut WordList) -> *mut WordList; + pub fn declare_builtin(list:* mut WordList) -> c_int; + pub fn dispose_word(w: *mut WordDesc); pub fn do_assignment_no_expand(string: *mut c_char) -> c_int; pub fn all_shell_functions() -> *mut *mut SHELL_VAR; diff --git a/bash-5.1/builtins_rust/setattr/src/lib.rs b/bash-5.1/builtins_rust/setattr/src/lib.rs index bbe8547..3237cbe 100644 --- a/bash-5.1/builtins_rust/setattr/src/lib.rs +++ b/bash-5.1/builtins_rust/setattr/src/lib.rs @@ -3,19 +3,19 @@ use libc::{c_int, c_uint, c_char, c_long, PT_NULL, c_void}; include!(concat!("intercdep.rs")); #[no_mangle] -pub extern "C" fn r_export_builtin(list: *mut WORD_LIST) -> c_int { +pub extern "C" fn r_export_builtin(list: *mut WordList) -> c_int { println!("r_export_builtin call"); return set_or_show_attributes(list, att_exported, 0); } #[no_mangle] -pub extern "C" fn r_readonly_builtin(list: *mut WORD_LIST) -> c_int { +pub extern "C" fn r_readonly_builtin(list: *mut WordList) -> c_int { println!("r_readonly_builtin call"); return set_or_show_attributes(list, att_readonly, 0); } #[no_mangle] -pub extern "C" fn set_or_show_attributes(mut list: *mut WORD_LIST, mut attribute: c_int, nodefs: c_int) -> c_int { +pub extern "C" fn set_or_show_attributes(mut list: *mut WordList, mut attribute: c_int, nodefs: c_int) -> c_int { let mut assign_error: c_int = 0; let mut any_failed: c_int = 0; let mut undo: c_int = 0; @@ -26,9 +26,9 @@ pub extern "C" fn set_or_show_attributes(mut list: *mut WORD_LIST, mut attribute let mut var: *mut SHELL_VAR; let mut assign: c_int; let mut aflags: c_int; - let mut tlist: *mut WORD_LIST; - let mut nlist: *mut WORD_LIST; - let mut w: *mut WORD_DESC; + let mut tlist: *mut WordList; + let mut nlist: *mut WordList; + let mut w: *mut WordDesc; unsafe { reset_internal_getopt(); let opt_str = std::ffi::CString::new("aAfnp").unwrap(); @@ -109,7 +109,7 @@ unsafe { if arrays_only != 0 || assoc_only != 0 { tlist = (*list).next; - (*list).next = PT_NULL as *mut WORD_LIST; + (*list).next = PT_NULL as *mut WordList; let mut optw: [u8;8] = [0;8]; optw[0] = b'-'; @@ -219,7 +219,7 @@ unsafe { } #[no_mangle] -pub extern "C" fn show_all_var_attributes(list: *mut WORD_LIST, v: c_int, nodefs: c_int) -> c_int { +pub extern "C" fn show_all_var_attributes(list: *mut WordList, v: c_int, nodefs: c_int) -> c_int { let mut i = 0; let mut any_failed = 0; let mut var: *mut SHELL_VAR; diff --git a/bash-5.1/builtins_rust/shift/src/intercdep.rs b/bash-5.1/builtins_rust/shift/src/intercdep.rs index 24ce4a1..5e0851b 100644 --- a/bash-5.1/builtins_rust/shift/src/intercdep.rs +++ b/bash-5.1/builtins_rust/shift/src/intercdep.rs @@ -5,15 +5,15 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; pub const EXECUTION_SUCCESS : c_int = 0; pub const EXECUTION_FAILURE : c_int = 1; @@ -24,7 +24,7 @@ extern "C" { pub fn builtin_help(); pub fn builtin_error(format: *const c_char, ...); - pub fn get_numeric_arg(list: *mut WORD_LIST, fatal: c_int, count: c_long) -> c_int; + pub fn get_numeric_arg(list: *mut WordList, fatal: c_int, count: c_long) -> c_int; pub fn number_of_args() -> c_int; pub fn sh_erange(s: *mut c_char, desc: *mut c_char); pub fn clear_dollar_vars(); @@ -32,5 +32,5 @@ extern "C" { pub fn invalidate_cached_quoted_dollar_at(); pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; } diff --git a/bash-5.1/builtins_rust/shift/src/lib.rs b/bash-5.1/builtins_rust/shift/src/lib.rs index d0ae6a2..746196e 100644 --- a/bash-5.1/builtins_rust/shift/src/lib.rs +++ b/bash-5.1/builtins_rust/shift/src/lib.rs @@ -6,7 +6,7 @@ include!(concat!("intercdep.rs")); pub static print_shift_error: c_int = 0; #[no_mangle] -pub extern "C" fn r_shift_builtin(list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_shift_builtin(list: *mut WordList) -> i32 { println!("r_shift_builtin call"); unsafe { diff --git a/bash-5.1/builtins_rust/shopt/Cargo.toml b/bash-5.1/builtins_rust/shopt/Cargo.toml index 689ba72..f7f08f7 100644 --- a/bash-5.1/builtins_rust/shopt/Cargo.toml +++ b/bash-5.1/builtins_rust/shopt/Cargo.toml @@ -8,6 +8,7 @@ edition = "2018" [dependencies] libc = "*" rset = {path="../set"} +rcommon = {path="../common"} [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 b121fc0..ff0a319 100644 --- a/bash-5.1/builtins_rust/shopt/src/lib.rs +++ b/bash-5.1/builtins_rust/shopt/src/lib.rs @@ -1,6 +1,10 @@ +extern crate rcommon; use std::ffi::*; use rset::r_set_shellopts; use libc::*; +use rcommon::WordDesc; +use rcommon::WordList; + /* /* First, the user-visible attributes */ #define att_exported 0x0000001 /* export to environment */ @@ -168,20 +172,6 @@ extern "C" { } pub type SizeT = libc::c_ulong; pub type IntmaxT = libc::c_long; -#[derive(Copy, Clone)] -#[repr(C)] -pub struct word_desc { - pub word: *mut libc::c_char, - pub flags: i32, -} -pub type WordDesc = word_desc; -#[derive(Copy, Clone)] -#[repr(C)] -pub struct word_list { - pub next: *mut word_list, - pub word: *mut WordDesc, -} -pub type WordList = word_list; pub type ArrayindT = intmax_t; #[derive(Copy, Clone)] @@ -933,10 +923,10 @@ static mut ON: *const libc::c_char = b"on\0" as *const u8 as *const libc::c_char static mut OFF: *const libc::c_char = b"off\0" as *const u8 as *const libc::c_char; #[no_mangle] pub unsafe extern "C" fn r_shopt_builtin(mut list: *mut WordList) -> i32 { - let mut opt: i32 = 0; + let mut opt: i32; let mut flags: i32 = 0; let mut rval: i32 = 0; - flags = 0 as i32; + reset_internal_getopt(); let psuoq = CString::new("psuoq").expect("CString::new failed"); loop { @@ -984,29 +974,30 @@ pub unsafe extern "C" fn r_shopt_builtin(mut list: *mut WordList) -> i32 { ); return EXECUTION_FAILURE; } - rval = 0; - if flags & OFLAG != 0 && flags & (SFLAG | UFLAG) == 0 // shopt -o + + if (flags & OFLAG != 0) &&( (flags & (SFLAG | UFLAG)) == 0) // shopt -o {//设置了o-flag,并没设s或u-flag rval = r_list_shopt_o_options(list, flags); - } else if !list.is_null() && flags & OFLAG != 0 { //shopt -so args + } else if !list.is_null() && flags & OFLAG != 0 { //设置-o了 //shopt -so args , shopt -u args rval = set_shopt_o_options( - if flags & SFLAG != 0 { '-' as i32 } else { '+' as i32 }, + if flags & SFLAG != 0 { '-' as i32 /*on*/} else { '+' as i32 /*off*/}, list, - flags & QFLAG, + flags & QFLAG,//是否沉默? ); } else if flags & OFLAG != 0 { // shopt -so rval = list_some_o_options( if flags & SFLAG != 0 { 1 } else { 0 }, flags, ); - } else if !list.is_null() && flags & (SFLAG | UFLAG) != 0 { // shopt -su args + } else if !list.is_null() && flags & (SFLAG | UFLAG) != 0 { // shopt -s/u args rval = toggle_shopts( if flags & SFLAG != 0 { 1 } else { 0 }, list, flags & QFLAG, ); } else if flags & (SFLAG | UFLAG) == 0 { // shopt [args] - rval = list_shopts(list, flags); + println!("shopt ===list all "); + rval = r_list_shopts(list, flags); } else { // shopt -su rval = list_some_shopts( if flags & SFLAG != 0 { SETOPT } else { UNSETOPT }, @@ -1093,8 +1084,9 @@ unsafe extern "C" fn shopt_error( s: *mut libc::c_char) { unsafe extern "C" fn toggle_shopts( mode: i32, list: *mut WordList, - quiet: i32, + _quiet: i32, ) -> i32 { + printf(CString::new(" set command: %s mode=%d").expect("").as_ptr() ,(*(*list).word).word, mode); let mut l: *mut WordList; let mut ind:i32; let mut rval: i32; @@ -1135,10 +1127,10 @@ unsafe extern "C" fn print_shopt( flags: i32, ) { - let msg: CString = CString::new("shopt %s %s\n").expect("CString new faild"); - let s: CString = CString::new("-s").expect("CString new faild"); - let u: CString = CString::new("-u").expect("CString new faild"); - let optfmt: CString = CString::new("%-15s\t%s\n").expect("CString new faild"); + let msg: CString = CString::new("shopt %s %s\n").expect("CString new faild"); + let s: CString = CString::new("-s").expect("CString new faild"); + let u: CString = CString::new("-u").expect("CString new faild"); + let optfmt: CString = CString::new("%-15s\t%s\n").expect("CString new faild"); if flags & PFLAG != 0 { printf( msg.as_ptr(), @@ -1157,41 +1149,42 @@ unsafe extern "C" fn print_shopt( ); }; } -unsafe extern "C" fn list_shopts( +unsafe extern "C" fn r_list_shopts( list: *mut WordList, flags: i32, ) -> i32 { let mut l:*mut WordList; let mut i; let mut val = 0; - let mut rval; - if list.is_null() { - for item in SHOPT_VARS { - if (flags & QFLAG) ==0 { - print_shopt(item.name, val, flags); + let mut rval =0; + rval = EXECUTION_SUCCESS; + if (flags & QFLAG) ==0 { + if list.is_null() { + for item in SHOPT_VARS { + if item.value != std::ptr::null_mut() { + val = *item.value; + print_shopt(item.name, val, flags); + } } + return sh_chkwrite(EXECUTION_SUCCESS); } - return sh_chkwrite(EXECUTION_SUCCESS); - } - l = list; - rval = EXECUTION_SUCCESS; - while !l.is_null() { - i = find_shopt((*(*l).word).word); - if i < 0 { - shopt_error((*(*l).word).word); - rval = EXECUTION_FAILURE; - } else { - val = *SHOPT_VARS[i as usize].value; - if val == 0 as i32 { + l = list; + while !l.is_null() { + i = find_shopt((*(*l).word).word); + if i < 0 { + shopt_error((*(*l).word).word); rval = EXECUTION_FAILURE; - } - if flags & QFLAG == 0 { + } else { + val = *SHOPT_VARS[i as usize].value; + if val == 0 { + rval = EXECUTION_FAILURE; + } print_shopt((*(*l).word).word, val, flags); } + l = (*l).next; } - l = (*l).next; - } + } return sh_chkwrite(rval); } @@ -1216,7 +1209,7 @@ unsafe extern "C" fn r_list_shopt_o_options( ) -> i32 { let mut l: *mut WordList = 0 as *mut WordList; let mut val: i32 = 0; - let mut rval: i32 = 0; + let mut rval: i32 = EXECUTION_SUCCESS; if list.is_null() { if flags & QFLAG == 0 { list_minus_o_opts(-1, flags & PFLAG); @@ -1224,7 +1217,7 @@ unsafe extern "C" fn r_list_shopt_o_options( return sh_chkwrite(EXECUTION_SUCCESS); } l = list; - rval = EXECUTION_SUCCESS; + while !l.is_null() { val = minus_o_option_value((*(*l).word).word); if val == -1 { @@ -1270,7 +1263,7 @@ unsafe extern "C" fn set_shopt_o_options( list: *mut WordList, quiet: i32, ) -> i32 { - //let mut l: *mut WORD_LIST =0 as *mut WORD_LIST; + //let mut l: *mut WordList =0 as *mut WordList; let mut l: *mut WordList; let mut rval: i32 ; l = list; @@ -1447,7 +1440,7 @@ pub unsafe extern "C" fn r_shopt_setopt( let wl: *mut WordList; let r: i32; wl = make_word_list(make_word(name), std::ptr::null_mut()); - //wl = make_word_list(make_word(name), 0 as *mut libc::c_void as *mut WORD_LIST); + //wl = make_word_list(make_word(name), 0 as *mut libc::c_void as *mut WordList); r = toggle_shopts(mode, wl, 0); dispose_words(wl); return r; @@ -1459,8 +1452,8 @@ pub unsafe extern "C" fn r_shopt_listopt( ) -> i32 { let mut i: i32 = 0; if name.is_null() { - return list_shopts( - // 0 as *mut libc::c_void as *mut WORD_LIST, + return r_list_shopts( + // 0 as *mut libc::c_void as *mut WordList, std::ptr::null_mut(), if reusable != 0 { PFLAG } else { 0 }, ); @@ -1503,7 +1496,7 @@ pub unsafe extern "C" fn r_set_bashopts() { .wrapping_add(1 as i32 as libc::c_ulong), ) as i32 as libc::c_int; */ - tflag[i as usize] = 1 as i32 as libc::c_char; + tflag[i as usize] = 1 as libc::c_char; } i += 1; } @@ -1532,20 +1525,19 @@ pub unsafe extern "C" fn r_set_bashopts() { (*v).attributes &= !(0x2 as i32); exported = (*v).attributes & 0x1 as i32; } else { - exported = 0 as i32; + exported = 0; } v = bind_variable( b"BASHOPTS\0" as *const u8 as *const libc::c_char, value, - 0 as i32, + 0, ); - (*v).attributes |= 0x2 as i32; + (*v).attributes |= 0x2; if mark_modified_vars != 0 && exported == 0 as i32 - && (*v).attributes & 0x1 as i32 != 0 + && (*v).attributes & 0x1 != 0 { - (*v).attributes &= !(0x1 as i32); + (*v).attributes &= !(0x1); } - //libc::free(value ); libc::free(value as *mut libc::c_void); } #[no_mangle] @@ -1585,11 +1577,11 @@ pub unsafe extern "C" fn r_initialize_bashopts(no_bashopts: i32) { temp = if (*var).attributes & att_array != 0 || (*var).attributes & att_assoc != 0 { - 0 as *mut libc::c_void as *mut libc::c_char + std::ptr::null_mut() } else { strcpy( xmalloc( - (1 as i32 as libc::c_ulong) + (1 as libc::c_ulong) .wrapping_add(strlen((*var).value)), ) as *mut libc::c_char, (*var).value, diff --git a/bash-5.1/builtins_rust/source/src/lib.rs b/bash-5.1/builtins_rust/source/src/lib.rs index f3e3d5e..53de38f 100644 --- a/bash-5.1/builtins_rust/source/src/lib.rs +++ b/bash-5.1/builtins_rust/source/src/lib.rs @@ -5,16 +5,16 @@ use libc::{c_char, c_long, c_void}; use std::{ffi::CString}; #[repr(C)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut libc::c_char, pub flags:libc::c_int } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr(u8)] @@ -39,7 +39,7 @@ enum r_instruction { #[derive(Copy,Clone)] pub union REDIRECTEE { dest:libc::c_int, - filename:* mut WORD_DESC + filename:* mut WordDesc } #[repr(C)] @@ -58,15 +58,15 @@ pub union REDIRECT { pub struct for_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:libc::c_int } @@ -75,7 +75,7 @@ pub struct PATTERN_LIST { pub struct case_com { flags:libc::c_int, line:libc::c_int, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } @@ -106,7 +106,7 @@ pub struct connection { pub struct simple_com { flags:libc::c_int, line:libc::c_int, - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -114,7 +114,7 @@ pub struct simple_com { pub struct function_def { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut c_char } @@ -130,8 +130,8 @@ pub struct group_com { pub struct select_com { flags:libc::c_int, line:libc::c_int, - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -139,7 +139,7 @@ pub struct select_com { pub struct arith_com { flags:libc::c_int, line:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -147,16 +147,16 @@ pub struct cond_com { flags:libc::c_int, line:libc::c_int, type_c:libc::c_int, - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags:libc::c_int, line:libc::c_int, - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -239,8 +239,8 @@ extern "C" { fn pop_args (); fn set_dollar_vars_unchanged (); fn invalidate_cached_quoted_dollar_at (); - fn no_options (list:* mut WORD_LIST)->i32; - static mut loptend:*mut WORD_LIST; + fn no_options (list:* mut WordList)->i32; + static mut loptend:*mut WordList; fn builtin_usage(); fn builtin_error(err:*const c_char,...); static mut restricted:i32; @@ -262,8 +262,8 @@ extern "C" { fn push_dollar_vars (); static shell_compatibility_level:i32; fn init_bash_argv(); - fn remember_args (list:* mut WORD_LIST, argc:i32); - fn push_args (list:* mut WORD_LIST); + fn remember_args (list:* mut WordList, argc:i32); + fn push_args (list:* mut WordList); static mut function_trace_mode:i32; fn signal_is_trapped (sig:i32)->i32; fn signal_is_ignored (sig:i32)->i32; @@ -311,7 +311,7 @@ unsafe fn DEBUG_TRAP()->i32 } #[no_mangle] -pub extern "C" fn r_source_builtin (list:* mut WORD_LIST)->i32 +pub extern "C" fn r_source_builtin (list:* mut WordList)->i32 { let mut result:i32; let mut filename:*mut c_char; @@ -322,7 +322,7 @@ pub extern "C" fn r_source_builtin (list:* mut WORD_LIST)->i32 return EX_USAGE!(); } - let mut llist:* mut WORD_LIST = loptend.clone(); + let mut llist:* mut WordList = loptend.clone(); if list == std::ptr::null_mut() { builtin_error (CString::new("filename argument required").unwrap().as_ptr()); @@ -411,6 +411,6 @@ pub extern "C" fn cmd_name() ->*const u8 { } #[no_mangle] -pub extern "C" fn run(list : *mut WORD_LIST)->i32 { +pub extern "C" fn run(list : *mut WordList)->i32 { return r_source_builtin(list); } \ No newline at end of file diff --git a/bash-5.1/builtins_rust/suspend/src/intercdep.rs b/bash-5.1/builtins_rust/suspend/src/intercdep.rs index c75067b..b7a9c02 100644 --- a/bash-5.1/builtins_rust/suspend/src/intercdep.rs +++ b/bash-5.1/builtins_rust/suspend/src/intercdep.rs @@ -5,15 +5,15 @@ // pub word: *mut c_char, // pub flags: c_int, // } -// pub type WORD_DESC = word_desc; +// pub type WordDesc = word_desc; // #[repr(C)] // #[derive(Copy, Clone)] // pub struct word_list { // pub next: *mut word_list, -// pub word: *mut WORD_DESC, +// pub word: *mut WordDesc, // } -// pub type WORD_LIST = word_list; +// pub type WordList = word_list; pub const EXECUTION_SUCCESS : c_int = 0; pub const EXECUTION_FAILURE : c_int = 1; @@ -23,19 +23,19 @@ pub type SigHandler = unsafe extern "C" fn(arg1: c_int); extern "C" { pub fn reset_internal_getopt(); - pub fn internal_getopt(list: *mut WORD_LIST, opts: *mut c_char) -> c_int; + 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); - pub fn no_args(list: *mut WORD_LIST); + pub fn no_args(list: *mut WordList); pub fn killpg(pgrp: libc::pid_t, sig: c_int) -> c_int; pub fn set_signal_handler(arg1: c_int, arg2: *mut SigHandler) -> *mut SigHandler; pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; pub static mut job_control: c_int; pub static mut login_shell: c_int; pub static mut shell_pgrp: libc::pid_t; diff --git a/bash-5.1/builtins_rust/suspend/src/lib.rs b/bash-5.1/builtins_rust/suspend/src/lib.rs index e3b46cc..3798740 100644 --- a/bash-5.1/builtins_rust/suspend/src/lib.rs +++ b/bash-5.1/builtins_rust/suspend/src/lib.rs @@ -1,12 +1,12 @@ use libc::{c_int, c_char, c_long, PT_NULL}; -use rcommon::{r_no_args,WORD_LIST,r_builtin_usage}; +use rcommon::{r_no_args,WordList,r_builtin_usage}; include!(concat!("intercdep.rs")); pub static mut old_cont: *mut SigHandler = PT_NULL as *mut SigHandler; #[no_mangle] -pub extern "C" fn r_suspend_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_suspend_builtin(mut list: *mut WordList) -> i32 { println!("r_suspend_builtin call"); let mut opt: c_int; diff --git a/bash-5.1/builtins_rust/test/src/intercdep.rs b/bash-5.1/builtins_rust/test/src/intercdep.rs index 05be0bf..8b4b7da 100644 --- a/bash-5.1/builtins_rust/test/src/intercdep.rs +++ b/bash-5.1/builtins_rust/test/src/intercdep.rs @@ -5,15 +5,15 @@ // pub word: *mut c_char, // pub flags: c_int, // } -// pub type WORD_DESC = word_desc; +// pub type WordDesc = word_desc; // #[repr(C)] // #[derive(Copy, Clone)] // pub struct word_list { // pub next: *mut word_list, -// pub word: *mut WORD_DESC, +// pub word: *mut WordDesc, // } -// pub type WORD_LIST = word_list; +// pub type WordList = word_list; pub const EXECUTION_SUCCESS : c_int = 0; pub const EXECUTION_FAILURE : c_int = 1; @@ -23,10 +23,10 @@ pub const EX_USAGE: c_int = 258; extern "C" { pub fn builtin_error(format: *const c_char, ...); - pub fn make_builtin_argv(list: *mut WORD_LIST, ip: *mut c_int) -> *mut *mut c_char; + pub fn make_builtin_argv(list: *mut WordList, ip: *mut c_int) -> *mut *mut c_char; pub fn test_command (margc: c_int, margv: *mut *mut c_char) -> c_int; pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; pub static mut this_command_name: *mut c_char; } diff --git a/bash-5.1/builtins_rust/test/src/lib.rs b/bash-5.1/builtins_rust/test/src/lib.rs index f060b4f..2f622d2 100644 --- a/bash-5.1/builtins_rust/test/src/lib.rs +++ b/bash-5.1/builtins_rust/test/src/lib.rs @@ -1,9 +1,9 @@ use libc::{c_int, c_char, c_void}; -use rcommon::{r_make_builtin_argv,WORD_LIST}; +use rcommon::{r_make_builtin_argv,WordList}; include!(concat!("intercdep.rs")); #[no_mangle] -pub extern "C" fn r_test_builtin(list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_test_builtin(list: *mut WordList) -> i32 { println!("r_test_builtin call"); let result: c_int; diff --git a/bash-5.1/builtins_rust/times/src/intercdep.rs b/bash-5.1/builtins_rust/times/src/intercdep.rs index beca332..eb18f38 100644 --- a/bash-5.1/builtins_rust/times/src/intercdep.rs +++ b/bash-5.1/builtins_rust/times/src/intercdep.rs @@ -5,22 +5,22 @@ pub struct word_desc { pub word: *mut c_char, pub flags: c_int, } -pub type WORD_DESC = word_desc; +pub type WordDesc = word_desc; #[repr(C)] #[derive(Copy, Clone)] pub struct word_list { pub next: *mut word_list, - pub word: *mut WORD_DESC, + pub word: *mut WordDesc, } -pub type WORD_LIST = word_list; +pub type WordList = word_list; pub const EXECUTION_SUCCESS : c_int = 0; pub const EXECUTION_FAILURE : c_int = 1; pub const EX_USAGE: c_int = 258; extern "C" { - pub fn no_options(list: *mut WORD_LIST) -> c_int; + pub fn no_options(list: *mut WordList) -> c_int; pub fn print_timeval(fp: *mut libc::FILE, tvp: *mut libc::timeval); pub fn sh_chkwrite(s: c_int) -> c_int; diff --git a/bash-5.1/builtins_rust/times/src/lib.rs b/bash-5.1/builtins_rust/times/src/lib.rs index fcc936d..0e2323d 100644 --- a/bash-5.1/builtins_rust/times/src/lib.rs +++ b/bash-5.1/builtins_rust/times/src/lib.rs @@ -3,7 +3,7 @@ use rcommon::{r_sh_chkwrite}; include!(concat!("intercdep.rs")); #[no_mangle] -pub extern "C" fn r_times_builtin(list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_times_builtin(list: *mut WordList) -> i32 { println!("r_times_builtin call"); unsafe { diff --git a/bash-5.1/builtins_rust/trap/src/intercdep.rs b/bash-5.1/builtins_rust/trap/src/intercdep.rs index cbcbd00..93e2d8a 100644 --- a/bash-5.1/builtins_rust/trap/src/intercdep.rs +++ b/bash-5.1/builtins_rust/trap/src/intercdep.rs @@ -5,15 +5,15 @@ // pub word: *mut c_char, // pub flags: c_int, // } -// pub type WORD_DESC = word_desc; +// pub type WordDesc = word_desc; // #[repr(C)] // #[derive(Copy, Clone)] // pub struct word_list { // pub next: *mut word_list, -// pub word: *mut WORD_DESC, +// pub word: *mut WordDesc, // } -// pub type WORD_LIST = word_list; +// pub type WordList = word_list; pub type SigHandler = unsafe extern "C" fn(arg1: c_int); @@ -35,12 +35,12 @@ pub const SUBSHELL_RESETTRAP: c_int = 0x80; extern "C" { pub fn reset_internal_getopt(); - pub fn internal_getopt(list: *mut WORD_LIST, opts: *mut c_char) -> c_int; + pub fn internal_getopt(list: *mut WordList, opts: *mut c_char) -> c_int; pub fn builtin_usage(); pub fn builtin_error(format: *const c_char, ...); pub fn sh_chkwrite(s: c_int) -> c_int; - pub fn display_signal_list(list: *mut WORD_LIST, forcecols: c_int) -> c_int; + pub fn display_signal_list(list: *mut WordList, forcecols: c_int) -> c_int; pub fn initialize_terminating_signals(); pub fn get_all_original_signals(); pub fn free_trap_strings(); @@ -61,7 +61,7 @@ extern "C" { pub fn sh_invalidsig(s: *mut c_char); pub static mut list_optarg : *mut libc::c_char; - pub static mut loptend : *mut WORD_LIST; + pub static mut loptend : *mut WordList; pub static trap_list: [*mut c_char; BASH_NSIG as usize]; pub static posixly_correct: 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 39dc5e6..7e10165 100644 --- a/bash-5.1/builtins_rust/trap/src/lib.rs +++ b/bash-5.1/builtins_rust/trap/src/lib.rs @@ -1,13 +1,13 @@ use std::{ffi::CString}; use libc::{c_int, c_char, c_void, PT_NULL}; -use rcommon::{r_builtin_usage,r_display_signal_list,WORD_LIST,r_sh_invalidsig,r_sh_chkwrite}; +use rcommon::{r_builtin_usage,r_display_signal_list,WordList,r_sh_invalidsig,r_sh_chkwrite}; include!(concat!("intercdep.rs")); #[no_mangle] -pub extern "C" fn r_trap_builtin(mut list: *mut WORD_LIST) -> i32 { +pub extern "C" fn r_trap_builtin(mut list: *mut WordList) -> i32 { println!("r_trap_builtin call"); let mut list_signal_names: c_int = 0; @@ -35,7 +35,7 @@ unsafe { opt = DSIG_NOCASE | DSIG_SIGPREFIX; if list_signal_names != 0 { - return r_sh_chkwrite(r_display_signal_list(PT_NULL as *mut WORD_LIST, 1)); + return r_sh_chkwrite(r_display_signal_list(PT_NULL as *mut WordList, 1)); } else if display != 0 || list.is_null() { initialize_terminating_signals(); get_all_original_signals(); @@ -152,7 +152,7 @@ unsafe fn showtrap(i: c_int, show_default: c_int) } } -unsafe fn display_traps(mut list: *mut WORD_LIST, show_all: c_int) -> c_int +unsafe fn display_traps(mut list: *mut WordList, show_all: c_int) -> c_int { if list.is_null() { for i in 0..BASH_NSIG { diff --git a/bash-5.1/builtins_rust/type/src/lib.rs b/bash-5.1/builtins_rust/type/src/lib.rs index 0f0a43a..d4374c9 100644 --- a/bash-5.1/builtins_rust/type/src/lib.rs +++ b/bash-5.1/builtins_rust/type/src/lib.rs @@ -119,22 +119,22 @@ macro_rules! STREQ{ #[macro_export] macro_rules! SIZEOFWORD{ () => { - std::mem::size_of::() + std::mem::size_of::() } } #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut i8, pub flags:i32 } #[repr (C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr(C)] @@ -156,7 +156,7 @@ pub struct alias { flags:i8 } -type sh_builtin_func_t = fn(WORD_LIST) -> i32; +type sh_builtin_func_t = fn(WordList) -> i32; type alias_t = alias; pub fn math(op: fn(i32, i32) -> i32, a: i32, b: i32) -> i32{ @@ -224,8 +224,8 @@ pub union REDIRECT { pub struct for_com { flags: i32 , line: i32 , - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -233,20 +233,20 @@ pub struct for_com { #[derive(Copy,Clone)] pub union REDIRECTEE { dest: i32 , - filename:* mut WORD_DESC + filename:* mut WordDesc } #[repr(C)] pub struct case_com { flags: i32, line: i32, - word:*mut WORD_DESC, + word:*mut WordDesc, clauses:*mut PATTERN_LIST } #[repr(C)] pub struct PATTERN_LIST { next:* mut PATTERN_LIST, - patterns:* mut WORD_LIST, + patterns:* mut WordList, action:*mut COMMAND, flags:i32 } @@ -277,7 +277,7 @@ pub struct connection { pub struct simple_com { flags: i32 , line: i32 , - words:*mut WORD_LIST, + words:*mut WordList, redirects:*mut REDIRECT } @@ -285,7 +285,7 @@ pub struct simple_com { pub struct function_def { flags: i32 , line: i32 , - name:*mut WORD_DESC, + name:*mut WordDesc, command:*mut COMMAND, source_file:*mut i8 } @@ -301,8 +301,8 @@ pub struct group_com { pub struct select_com { flags: i32 , line: i32 , - name:*mut WORD_DESC, - map_list:*mut WORD_LIST, + name:*mut WordDesc, + map_list:*mut WordList, action:*mut COMMAND } @@ -310,7 +310,7 @@ pub struct select_com { pub struct arith_com { flags: i32 , line: i32 , - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] @@ -318,16 +318,16 @@ pub struct cond_com { flags: i32 , line: i32 , type_c: i32 , - exp:*mut WORD_LIST + exp:*mut WordList } #[repr(C)] pub struct arith_for_com { flags: i32 , line: i32 , - init:*mut WORD_LIST, - test:*mut WORD_LIST, - step:*mut WORD_LIST, + init:*mut WordList, + test:*mut WordList, + step:*mut WordList, action:*mut COMMAND } @@ -379,7 +379,7 @@ macro_rules! ABSPATH { extern "C" { fn reset_internal_getopt(); - fn internal_getopt (list:*mut WORD_LIST , opts:*mut i8)->i32; + fn internal_getopt (list:*mut WordList , opts:*mut i8)->i32; fn builtin_usage(); fn sh_notfound (name:* mut i8); fn sh_chkwrite (ret:i32)->i32; @@ -400,7 +400,7 @@ extern "C" { fn sh_makepath(path:*const i8, path1:*const i8, i: i32) -> *mut i8; //fn find_alias(alia : *mut i8) -> *mut alias_t; static expand_aliases : i32; - static mut loptend:*mut WORD_LIST; + static mut loptend:*mut WordList; static posixly_correct:i32; } @@ -409,12 +409,12 @@ unsafe fn function_cell(var:*mut SHELL_VAR) ->* mut COMMAND { } #[no_mangle] -pub unsafe extern "C" fn r_type_builtin (mut list :*mut WORD_LIST) -> i32 { +pub unsafe extern "C" fn r_type_builtin (mut list :*mut WordList) -> i32 { //println!("rtype is run"); let mut dflags : i32; let mut any_failed: i32 = 0 ; let mut opt : i32 = 0; - let mut this : *mut WORD_LIST; + let mut this : *mut WordList; dflags = CDESC_SHORTDESC!(); /* default */ unsafe{ diff --git a/bash-5.1/builtins_rust/ulimit/src/lib.rs b/bash-5.1/builtins_rust/ulimit/src/lib.rs index 2e2d862..adf0be5 100644 --- a/bash-5.1/builtins_rust/ulimit/src/lib.rs +++ b/bash-5.1/builtins_rust/ulimit/src/lib.rs @@ -16,16 +16,16 @@ pub struct rlimit { #[repr(C)] #[derive(Copy,Clone)] -pub struct WORD_DESC { +pub struct WordDesc { pub word: *mut i8, pub flags:i32 } #[repr (C)] #[derive(Copy,Clone)] -pub struct WORD_LIST { - next: *mut WORD_LIST, - word: *mut WORD_DESC +pub struct WordList { + next: *mut WordList, + word: *mut WordDesc } #[repr (C)] @@ -409,7 +409,7 @@ extern "C" { fn xrealloc(_: *mut libc::c_void, _: u64) -> *mut libc::c_void; fn all_digits(_: *const i8) -> i32; fn sh_chkwrite(_: i32) -> i32; - fn internal_getopt(_: *mut WORD_LIST, _: *mut i8) -> i32; + fn internal_getopt(_: *mut WordList, _: *mut i8) -> i32; fn strerror(_: i32) -> *mut i8; fn sprintf(_: *mut i8, _: *const i8, _: ...) -> i32; fn string_to_rlimtype(_: *mut i8 ) -> rlim_t; @@ -429,7 +429,7 @@ extern "C" { fn getmaxchild() -> i64; fn print_rlimtype(_: rlim_t, _: i32); - static mut loptend: *mut WORD_LIST; + static mut loptend: *mut WordList; static mut list_optarg: *mut i8; static mut posixly_correct:i32 ; static mut current_user: user_info; @@ -455,7 +455,7 @@ fn _findlim (opt:i32) -> i32{ } #[no_mangle] -pub unsafe extern "C" fn r_ulimit_builtin(mut list: *mut WORD_LIST) -> i32{ +pub unsafe extern "C" fn r_ulimit_builtin(mut list: *mut WordList) -> i32{ //println!("enter ulimit set by huanhuan"); let mut s : *mut i8; diff --git a/bash-5.1/builtins_rust/umask/src/lib.rs b/bash-5.1/builtins_rust/umask/src/lib.rs index 9191337..9f2b72a 100644 --- a/bash-5.1/builtins_rust/umask/src/lib.rs +++ b/bash-5.1/builtins_rust/umask/src/lib.rs @@ -8,16 +8,16 @@ use rcommon::{r_read_octal}; //结构体 #[repr (C)] #[derive(Debug)] -pub struct WORD_DESC{ +pub struct WordDesc{ pub word:*mut c_char, pub flags:c_int, } #[repr (C)] #[derive(Debug)] -pub struct WORD_LIST{ - pub next:*mut WORD_LIST, - pub word:*mut WORD_DESC, +pub struct WordList{ + pub next:*mut WordList, + pub word:*mut WordDesc, } @@ -181,10 +181,10 @@ macro_rules! S_IXUGO { //C库 extern "C" { - static mut loptend:*mut WORD_LIST; + static mut loptend:*mut WordList; fn reset_internal_getopt(); - fn internal_getopt (list:*mut WORD_LIST, opts:*mut c_char)->i32; + fn internal_getopt (list:*mut WordList, opts:*mut c_char)->i32; fn builtin_usage(); // fn read_octal(string:*mut c_char)->i32; fn sh_erange(s:*mut c_char,desc:*mut c_char); @@ -218,7 +218,7 @@ unsafe fn member(c:*mut c_char,s:*mut c_char) -> bool{ /* Set or display the mask used by the system when creating files. Flag of -S means display the umask in a symbolic mode. */ -pub extern "C" fn r_umask_builtin(mut list:*mut WORD_LIST) ->i32{ +pub extern "C" fn r_umask_builtin(mut list:*mut WordList) ->i32{ println!("r_umask_builtin"); let mut print_symbolically:i32; let mut opt:i32; @@ -463,7 +463,7 @@ extern "C" fn r_parse_symbolic_mode(mode:*mut c_char,initial_bits:i32)->i32{ by chmod. If the -S argument is given, then print the umask in a symbolic form. */ -extern "C" fn r_symbolic_umask(list:*mut WORD_LIST)->i32{ +extern "C" fn r_symbolic_umask(list:*mut WordList)->i32{ let mut um:i32; let bits:i32; diff --git a/bash-5.1/builtins_rust/wait/src/lib.rs b/bash-5.1/builtins_rust/wait/src/lib.rs index 85793e9..98d236a 100644 --- a/bash-5.1/builtins_rust/wait/src/lib.rs +++ b/bash-5.1/builtins_rust/wait/src/lib.rs @@ -8,10 +8,10 @@ use std::ffi::{CString,}; use nix::sys::signal::{SigSet}; use rjobs::{PROCESS,COMMAND, BLOCK_CHILD, UNBLOCK_CHILD}; -// use rjobs::WORD_LIST; +// use rjobs::WordList; use rread::{SHELL_VAR,sh_var_value_func_t,sh_var_assign_func_t, sigjmp_buf,__jmp_buf_tag,__sigset_t,__sigsetjmp,}; -use rcommon::{r_builtin_unbind_variable,r_builtin_usage,r_get_job_spec,WORD_LIST}; +use rcommon::{r_builtin_unbind_variable,r_builtin_usage,r_get_job_spec,WordList}; @@ -202,7 +202,7 @@ pub type procenv_t=sigjmp_buf; extern "C" { static mut wait_signal_received:i32; // static mut wait_intr_flag:i32; - static mut loptend:*mut WORD_LIST; + static mut loptend:*mut WordList; static js:jobstats ; static mut jobs:*mut*mut JOB; static list_optarg:*mut c_char; @@ -211,11 +211,11 @@ extern "C" { static posixly_correct:i32; // fn sigsetjmp(env:sigjmp_buf,val:c_int)->i32; - fn internal_getopt (list:*mut WORD_LIST, opts:*mut c_char)->i32; + fn internal_getopt (list:*mut WordList, opts:*mut c_char)->i32; // fn builtin_usage(); fn legal_number(string:*const c_char,result:*mut c_long)->i32; fn get_job_by_pid(pid:pid_t,block:i32,procp:*mut *mut PROCESS)->i32; - // fn get_job_spec(list:*mut WORD_LIST)->i32; + // fn get_job_spec(list:*mut WordList)->i32; fn sh_badjob(str:*mut c_char); fn reset_internal_getopt(); fn legal_identifier(name:*const c_char)->i32; @@ -257,7 +257,7 @@ pub static mut wait_intr_buf:procenv_t = [__jmp_buf_tag{ //rust #[no_mangle] -pub extern "C" fn r_wait_builtin(mut list:*mut WORD_LIST)->i32{ +pub extern "C" fn r_wait_builtin(mut list:*mut WordList)->i32{ let mut status:i32; let code:i32; let mut opt:i32; @@ -471,14 +471,14 @@ pub extern "C" fn r_wait_builtin(mut list:*mut WORD_LIST)->i32{ #[no_mangle] -extern "C" fn r_set_waitlist(list:*mut WORD_LIST) -> i32{ +extern "C" fn r_set_waitlist(list:*mut WordList) -> i32{ let mut set:SigSet = SigSet::empty(); let mut oset:SigSet = SigSet::empty(); let mut job:i32; let mut r:i32; let mut njob:i32; let mut pid:intmax_t=0; - let mut l:*mut WORD_LIST; + let mut l:*mut WordList; unsafe{ BLOCK_CHILD!(Some(&mut set),Some(&mut oset)); diff --git a/record.txt b/record.txt index f8718de..bfc4952 100644 --- a/record.txt +++ b/record.txt @@ -43,3 +43,4 @@ 42 43 44 +45 -- Gitee