From bedcfb72557955b221228557f9e4b7011491becb Mon Sep 17 00:00:00 2001 From: wangmengc Date: Fri, 30 Jun 2023 12:05:42 +0800 Subject: [PATCH] fix :160145 alias fmt error --- bash-5.1/builtins_rust/alias/src/lib.rs | 20 ++++++++++++++------ bash-5.1/builtins_rust/umask/src/lib.rs | 12 ++++++++++-- record.txt | 1 + 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/bash-5.1/builtins_rust/alias/src/lib.rs b/bash-5.1/builtins_rust/alias/src/lib.rs index c9e53be3..4b6e1e2b 100644 --- a/bash-5.1/builtins_rust/alias/src/lib.rs +++ b/bash-5.1/builtins_rust/alias/src/lib.rs @@ -1,5 +1,6 @@ use std::ffi::CStr; +use std::io::{Read, stdout, Write}; //extern crate rcommon; use rcommon::r_sh_notfound; use rcommon::{WordList, WordDesc, EX_USAGE, EXECUTION_SUCCESS, EXECUTION_FAILURE,r_builtin_usage}; @@ -212,18 +213,25 @@ unsafe extern "C" fn print_alias( alias: *mut AliasT, flags: libc::c_int) { let value: *mut libc::c_char; value = sh_single_quote((*alias).value); if flags & 0x1 as libc::c_int != 0 { - printf( - b"alias %s\0" as *const u8 as *const libc::c_char, + print!("alias "); + //printf( + // b"alias %s\0" as *const u8 as *const libc::c_char, if !((*alias).name).is_null() && *((*alias).name).offset(0 as libc::c_int as isize) as libc::c_int == '-' as i32 { - b"-- \0" as *const u8 as *const libc::c_char + // b"-- \0" as *const u8 as *const libc::c_char + print!("-- "); } else { - b"\0" as *const u8 as *const libc::c_char - }, - ); + // b"\0" as *const u8 as *const libc::c_char + print!(" "); + } + //); } + // fflush() + //unsafe { + // std::io::stdout().flush(); + //} println!("{}={}", CStr::from_ptr((*alias).name).to_string_lossy().into_owned(), CStr::from_ptr(value).to_string_lossy().into_owned()); free(value as *mut libc::c_void); diff --git a/bash-5.1/builtins_rust/umask/src/lib.rs b/bash-5.1/builtins_rust/umask/src/lib.rs index 399070d0..5ad75042 100644 --- a/bash-5.1/builtins_rust/umask/src/lib.rs +++ b/bash-5.1/builtins_rust/umask/src/lib.rs @@ -247,7 +247,15 @@ pub extern "C" fn r_umask_builtin(mut list:*mut WordList) ->i32{ else{ /* Display the UMASK for this user. */ umask_arg = umask(0o22); umask(umask_arg); - + if pflag != 0{ + if print_symbolically != 0{ + println!("umask -S"); + } + else{ + print!("umask ") + } + } +/* if pflag != 0{ if print_symbolically != 0{ println!("umask \" -S\" "); @@ -256,7 +264,7 @@ pub extern "C" fn r_umask_builtin(mut list:*mut WordList) ->i32{ println!("umask \"\" ") } } - +*/ if print_symbolically != 0{ r_print_symbolic_umask(umask_arg); } diff --git a/record.txt b/record.txt index 95e7d88f..2336e8cd 100644 --- a/record.txt +++ b/record.txt @@ -53,3 +53,4 @@ 75 76 77 +78 -- Gitee