diff --git a/bash-5.1/r_bracecomp/src/lib.rs b/bash-5.1/r_bracecomp/src/lib.rs index 61707096cc17de703cf543ba7c091bc7d942fdf4..b88f0c508c2e34ce38ec925ab754e31ece71219f 100644 --- a/bash-5.1/r_bracecomp/src/lib.rs +++ b/bash-5.1/r_bracecomp/src/lib.rs @@ -50,4 +50,70 @@ pub type rl_completion_func_t = unsafe extern "C" fn( libc::c_int, ) -> *mut *mut libc::c_char; +pub type rl_quote_func_t = unsafe extern "C" fn( + *mut libc::c_char, + libc::c_int, + *mut libc::c_char, +) -> *mut libc::c_char; + +pub type rl_compignore_func_t = unsafe extern "C" fn( + *mut *mut libc::c_char, +) -> libc::c_int; + +extern "C" { + fn rl_complete_internal(_: libc::c_int) -> libc::c_int; + fn rl_filename_completion_function( + _: *const libc::c_char, + _: libc::c_int, + ) -> *mut libc::c_char; + static mut rl_completion_entry_function: Option::; + static mut rl_ignore_some_completions_function: Option::; + static mut rl_attempted_completion_function: Option::; + static mut rl_filename_quoting_desired: libc::c_int; + static mut rl_filename_quoting_function: Option::; + +} + +unsafe extern "C" fn hack_braces_completion( + mut names: *mut *mut libc::c_char, +) -> libc::c_int { + let mut i: libc::c_int = 0; + let mut temp: *mut libc::c_char = 0 as *mut libc::c_char; + i = strvec_len(names); + if __ctype_get_mb_cur_max() > 1 as usize + && i > 2 as libc::c_int + { + qsort( + names.offset(1 as libc::c_int as isize) as *mut libc::c_void, + (i - 1 as libc::c_int) as usize, + std::mem::size_of::<*mut libc::c_char>() as usize, + std::mem::transmute::< + Option:: libc::c_int>, + Option::, + >( + Some( + std::mem::transmute::< + unsafe extern "C" fn( + *mut *mut libc::c_char, + *mut *mut libc::c_char, + ) -> libc::c_int, + unsafe extern "C" fn() -> libc::c_int, + >(_strcompare), + ), + ), + ); + } + temp = really_munge_braces(names, 1 as libc::c_int, i, 0 as libc::c_int); + i = 0 as libc::c_int; + while !(*names.offset(i as isize)).is_null() { + free(*names.offset(i as isize) as *mut libc::c_void); + let ref mut fresh0 = *names.offset(i as isize); + *fresh0 = 0 as *mut libc::c_char; + i += 1; + i; + } + let ref mut fresh1 = *names.offset(0 as libc::c_int as isize); + *fresh1 = temp; + return 0 as libc::c_int; +}