From e74c094ce29eec3dd45fd2656b233303d6d520fd Mon Sep 17 00:00:00 2001 From: trackers-love Date: Wed, 3 Dec 2025 10:10:33 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9stat=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=BD=93.=202.=E4=BF=AE=E6=94=B9utshell=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utshell-0.5.0/build.rs | 5 + utshell-0.5.0/src/alias.rs | 5 + utshell-0.5.0/src/array.rs | 5 + utshell-0.5.0/src/arrayfunc.rs | 5 + utshell-0.5.0/src/assoc.rs | 5 + utshell-0.5.0/src/bashhist.rs | 33 ++---- utshell-0.5.0/src/bashline.rs | 32 +----- utshell-0.5.0/src/bin/utshell.rs | 5 + utshell-0.5.0/src/bin/utshellversion.rs | 5 + utshell-0.5.0/src/brace.rs | 5 + utshell-0.5.0/src/bracecomp.rs | 5 + utshell-0.5.0/src/builtins/alias.rs | 5 + utshell-0.5.0/src/builtins/bashgetopt.rs | 5 + utshell-0.5.0/src/builtins/bind.rs | 5 + utshell-0.5.0/src/builtins/break_1.rs | 5 + utshell-0.5.0/src/builtins/builtin.rs | 5 + utshell-0.5.0/src/builtins/builtins.rs | 5 + utshell-0.5.0/src/builtins/caller.rs | 5 + utshell-0.5.0/src/builtins/cd.rs | 5 + utshell-0.5.0/src/builtins/cmd.rs | 5 + utshell-0.5.0/src/builtins/colon.rs | 5 + utshell-0.5.0/src/builtins/command.rs | 5 + utshell-0.5.0/src/builtins/common.rs | 5 + utshell-0.5.0/src/builtins/complete.rs | 5 + utshell-0.5.0/src/builtins/declare.rs | 5 + utshell-0.5.0/src/builtins/echo.rs | 5 + utshell-0.5.0/src/builtins/enable.rs | 5 + utshell-0.5.0/src/builtins/eval.rs | 5 + utshell-0.5.0/src/builtins/evalfile.rs | 32 +----- utshell-0.5.0/src/builtins/evalstring.rs | 5 + utshell-0.5.0/src/builtins/exec.rs | 5 + utshell-0.5.0/src/builtins/exec_cmd.rs | 5 + utshell-0.5.0/src/builtins/exit.rs | 5 + utshell-0.5.0/src/builtins/fc.rs | 5 + utshell-0.5.0/src/builtins/fg_bg.rs | 5 + utshell-0.5.0/src/builtins/getopt.rs | 5 + utshell-0.5.0/src/builtins/getopts.rs | 5 + utshell-0.5.0/src/builtins/hash.rs | 5 + utshell-0.5.0/src/builtins/help.rs | 5 + utshell-0.5.0/src/builtins/history.rs | 5 + utshell-0.5.0/src/builtins/jobs.rs | 5 + utshell-0.5.0/src/builtins/kill.rs | 5 + utshell-0.5.0/src/builtins/let_1.rs | 5 + utshell-0.5.0/src/builtins/mapfile.rs | 5 + utshell-0.5.0/src/builtins/printf.rs | 5 + utshell-0.5.0/src/builtins/pushd.rs | 5 + utshell-0.5.0/src/builtins/read.rs | 5 + utshell-0.5.0/src/builtins/return_1.rs | 5 + utshell-0.5.0/src/builtins/set.rs | 5 + utshell-0.5.0/src/builtins/setattr.rs | 5 + utshell-0.5.0/src/builtins/shift.rs | 5 + utshell-0.5.0/src/builtins/shopt.rs | 5 + utshell-0.5.0/src/builtins/signal.rs | 5 + utshell-0.5.0/src/builtins/source.rs | 5 + utshell-0.5.0/src/builtins/suspend.rs | 5 + utshell-0.5.0/src/builtins/test.rs | 5 + utshell-0.5.0/src/builtins/times.rs | 5 + utshell-0.5.0/src/builtins/trap.rs | 5 + utshell-0.5.0/src/builtins/type_1.rs | 5 + utshell-0.5.0/src/builtins/ulimit.rs | 5 + utshell-0.5.0/src/builtins/umask.rs | 5 + utshell-0.5.0/src/builtins/wait.rs | 5 + utshell-0.5.0/src/copycmd.rs | 5 + utshell-0.5.0/src/dispose_cmd.rs | 5 + utshell-0.5.0/src/error.rs | 5 + utshell-0.5.0/src/eval.rs | 5 + utshell-0.5.0/src/execute_cmd.rs | 5 + utshell-0.5.0/src/expr.rs | 5 + utshell-0.5.0/src/findcmd.rs | 86 ++------------ utshell-0.5.0/src/flags.rs | 5 + utshell-0.5.0/src/general.rs | 113 ++---------------- utshell-0.5.0/src/hashcmd.rs | 5 + utshell-0.5.0/src/hashlib.rs | 5 + utshell-0.5.0/src/input.rs | 32 +----- utshell-0.5.0/src/jobs.rs | 5 + utshell-0.5.0/src/lib.rs | 5 + utshell-0.5.0/src/list.rs | 5 + utshell-0.5.0/src/local.rs | 5 + utshell-0.5.0/src/mailcheck.rs | 140 ++--------------------- utshell-0.5.0/src/make_cmd.rs | 5 + utshell-0.5.0/src/nojobs.rs | 5 + utshell-0.5.0/src/pathexp.rs | 5 + utshell-0.5.0/src/pcomplete.rs | 5 + utshell-0.5.0/src/pcomplib.rs | 5 + utshell-0.5.0/src/print_cmd.rs | 5 + utshell-0.5.0/src/readline.rs | 5 + utshell-0.5.0/src/redir.rs | 32 +----- utshell-0.5.0/src/sig.rs | 5 + utshell-0.5.0/src/src_common.rs | 64 ++++++++++- utshell-0.5.0/src/stringlib.rs | 5 + utshell-0.5.0/src/subst.rs | 5 + utshell-0.5.0/src/syntax.rs | 5 + utshell-0.5.0/src/test.rs | 87 ++------------ utshell-0.5.0/src/trap.rs | 5 + utshell-0.5.0/src/unwind_prot.rs | 5 + utshell-0.5.0/src/utshell.rs | 32 +----- utshell-0.5.0/src/variables.rs | 5 + utshell-0.5.0/src/version.rs | 9 +- utshell-0.5.0/src/y_tab.rs | 5 + 99 files changed, 578 insertions(+), 549 deletions(-) diff --git a/utshell-0.5.0/build.rs b/utshell-0.5.0/build.rs index a9771d33..fd981525 100644 --- a/utshell-0.5.0/build.rs +++ b/utshell-0.5.0/build.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ extern crate dunce; use std::{env, path::PathBuf}; diff --git a/utshell-0.5.0/src/alias.rs b/utshell-0.5.0/src/alias.rs index 7874655e..3896dd61 100644 --- a/utshell-0.5.0/src/alias.rs +++ b/utshell-0.5.0/src/alias.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::hashlib::{ hash_create, hash_dispose, hash_flush, hash_insert, hash_remove, hash_search, }; diff --git a/utshell-0.5.0/src/array.rs b/utshell-0.5.0/src/array.rs index 3bfba569..d0d7e699 100644 --- a/utshell-0.5.0/src/array.rs +++ b/utshell-0.5.0/src/array.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::dispose_cmd::dispose_words; use crate::make_cmd::{make_bare_word, make_word_list}; use crate::src_common::*; diff --git a/utshell-0.5.0/src/arrayfunc.rs b/utshell-0.5.0/src/arrayfunc.rs index 8d14c7c0..051eaf1d 100644 --- a/utshell-0.5.0/src/arrayfunc.rs +++ b/utshell-0.5.0/src/arrayfunc.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::array::{ array_create, array_dispose_element, array_flush, array_insert, array_keys_to_word_list, array_reference, array_remove, array_to_assign, array_to_word_list, diff --git a/utshell-0.5.0/src/assoc.rs b/utshell-0.5.0/src/assoc.rs index 74f64a98..72bd8237 100644 --- a/utshell-0.5.0/src/assoc.rs +++ b/utshell-0.5.0/src/assoc.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::dispose_cmd::dispose_words; use crate::hashlib::{hash_dispose, hash_flush, hash_remove, hash_search}; use crate::make_cmd::{make_bare_word, make_word_list}; diff --git a/utshell-0.5.0/src/bashhist.rs b/utshell-0.5.0/src/bashhist.rs index 4379aba9..928e9bf6 100644 --- a/utshell-0.5.0/src/bashhist.rs +++ b/utshell-0.5.0/src/bashhist.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::bashline::bash_re_edit; use crate::general::file_exists; use crate::pathexp::setup_ignore_patterns; @@ -274,32 +279,8 @@ pub fn maybe_append_history(mut filename: *mut libc::c_char) -> libc::c_int { let mut fd: libc::c_int = 0; let mut result: libc::c_int = 0; let mut histlen: libc::c_int = 0; - let mut buf: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut buf: crate::src_common::stat = crate::src_common::stat_init; + result = EXECUTION_SUCCESS as i32; unsafe { if history_lines_this_session > 0 { diff --git a/utshell-0.5.0/src/bashline.rs b/utshell-0.5.0/src/bashline.rs index 554a5dfc..3198bf25 100644 --- a/utshell-0.5.0/src/bashline.rs +++ b/utshell-0.5.0/src/bashline.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::alias::{alias_expand, all_aliases, get_alias_value}; use crate::bashhist::{bash_add_history, pre_process_line}; use crate::bracecomp::bash_brace_completion; @@ -3267,32 +3272,7 @@ fn directory_exists( let mut new_dirname: *mut libc::c_char = 0 as *mut libc::c_char; let mut dirlen: libc::c_int = 0; let mut r: libc::c_int = 0; - let mut sb: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut sb: crate::src_common::stat = crate::src_common::stat_init; unsafe { new_dirname = if should_dequote != 0 { bash_dequote_filename(dirname as *mut libc::c_char, rl_completion_quote_character) diff --git a/utshell-0.5.0/src/bin/utshell.rs b/utshell-0.5.0/src/bin/utshell.rs index 739f677a..b4fa560f 100644 --- a/utshell-0.5.0/src/bin/utshell.rs +++ b/utshell-0.5.0/src/bin/utshell.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #![allow( dead_code, mutable_transmutes, diff --git a/utshell-0.5.0/src/bin/utshellversion.rs b/utshell-0.5.0/src/bin/utshellversion.rs index 71303495..25f20a61 100644 --- a/utshell-0.5.0/src/bin/utshellversion.rs +++ b/utshell-0.5.0/src/bin/utshellversion.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #![allow( dead_code, mutable_transmutes, diff --git a/utshell-0.5.0/src/brace.rs b/utshell-0.5.0/src/brace.rs index b868c609..3570397d 100644 --- a/utshell-0.5.0/src/brace.rs +++ b/utshell-0.5.0/src/brace.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::general::legal_number; use crate::sig::{termsig_handler, throw_to_top_level}; use crate::src_common::*; diff --git a/utshell-0.5.0/src/bracecomp.rs b/utshell-0.5.0/src/bracecomp.rs index 0bcb2bea..851a0e64 100644 --- a/utshell-0.5.0/src/bracecomp.rs +++ b/utshell-0.5.0/src/bracecomp.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; fn string_gcd(mut s1: *mut libc::c_char, mut s2: *mut libc::c_char) -> libc::c_int { diff --git a/utshell-0.5.0/src/builtins/alias.rs b/utshell-0.5.0/src/builtins/alias.rs index 4520433f..b1bfdf76 100644 --- a/utshell-0.5.0/src/builtins/alias.rs +++ b/utshell-0.5.0/src/builtins/alias.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/bashgetopt.rs b/utshell-0.5.0/src/builtins/bashgetopt.rs index 502f1255..cb2ba0c2 100644 --- a/utshell-0.5.0/src/builtins/bashgetopt.rs +++ b/utshell-0.5.0/src/builtins/bashgetopt.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::general::legal_number; use crate::src_common::*; diff --git a/utshell-0.5.0/src/builtins/bind.rs b/utshell-0.5.0/src/builtins/bind.rs index bc86db29..b2d704ab 100644 --- a/utshell-0.5.0/src/builtins/bind.rs +++ b/utshell-0.5.0/src/builtins/bind.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/break_1.rs b/utshell-0.5.0/src/builtins/break_1.rs index e9ae5fe6..73e8226e 100644 --- a/utshell-0.5.0/src/builtins/break_1.rs +++ b/utshell-0.5.0/src/builtins/break_1.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/builtin.rs b/utshell-0.5.0/src/builtins/builtin.rs index 13d18aad..d160d64e 100644 --- a/utshell-0.5.0/src/builtins/builtin.rs +++ b/utshell-0.5.0/src/builtins/builtin.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/builtins.rs b/utshell-0.5.0/src/builtins/builtins.rs index 35147b93..b1a525b3 100644 --- a/utshell-0.5.0/src/builtins/builtins.rs +++ b/utshell-0.5.0/src/builtins/builtins.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; use super::alias::{alias_builtin, unalias_builtin}; diff --git a/utshell-0.5.0/src/builtins/caller.rs b/utshell-0.5.0/src/builtins/caller.rs index 38b4a796..c331b8a5 100644 --- a/utshell-0.5.0/src/builtins/caller.rs +++ b/utshell-0.5.0/src/builtins/caller.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/cd.rs b/utshell-0.5.0/src/builtins/cd.rs index 609f52aa..45684525 100644 --- a/utshell-0.5.0/src/builtins/cd.rs +++ b/utshell-0.5.0/src/builtins/cd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/cmd.rs b/utshell-0.5.0/src/builtins/cmd.rs index b998610f..a091fc39 100644 --- a/utshell-0.5.0/src/builtins/cmd.rs +++ b/utshell-0.5.0/src/builtins/cmd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/colon.rs b/utshell-0.5.0/src/builtins/colon.rs index 145f1bbb..0e0da77b 100644 --- a/utshell-0.5.0/src/builtins/colon.rs +++ b/utshell-0.5.0/src/builtins/colon.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/command.rs b/utshell-0.5.0/src/builtins/command.rs index a32dfb90..4011afac 100644 --- a/utshell-0.5.0/src/builtins/command.rs +++ b/utshell-0.5.0/src/builtins/command.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/common.rs b/utshell-0.5.0/src/builtins/common.rs index 63a5a362..6bf9440a 100644 --- a/utshell-0.5.0/src/builtins/common.rs +++ b/utshell-0.5.0/src/builtins/common.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/complete.rs b/utshell-0.5.0/src/builtins/complete.rs index 2d473be6..677da0a9 100644 --- a/utshell-0.5.0/src/builtins/complete.rs +++ b/utshell-0.5.0/src/builtins/complete.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/declare.rs b/utshell-0.5.0/src/builtins/declare.rs index df94095d..b293eedf 100644 --- a/utshell-0.5.0/src/builtins/declare.rs +++ b/utshell-0.5.0/src/builtins/declare.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/echo.rs b/utshell-0.5.0/src/builtins/echo.rs index 396ce6f8..ee63082d 100644 --- a/utshell-0.5.0/src/builtins/echo.rs +++ b/utshell-0.5.0/src/builtins/echo.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/enable.rs b/utshell-0.5.0/src/builtins/enable.rs index ced58c78..82475c51 100644 --- a/utshell-0.5.0/src/builtins/enable.rs +++ b/utshell-0.5.0/src/builtins/enable.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/eval.rs b/utshell-0.5.0/src/builtins/eval.rs index 6eadc501..4ab4cc84 100644 --- a/utshell-0.5.0/src/builtins/eval.rs +++ b/utshell-0.5.0/src/builtins/eval.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/evalfile.rs b/utshell-0.5.0/src/builtins/evalfile.rs index 6d0f38cb..23e81aeb 100644 --- a/utshell-0.5.0/src/builtins/evalfile.rs +++ b/utshell-0.5.0/src/builtins/evalfile.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use libc::{__errno_location, close, free, malloc, memmove, open, read, strlen}; use crate::array::{array_dispose_element, array_rshift, array_shift}; @@ -35,32 +40,7 @@ fn evalfile(mut filename: *const libc::c_char, mut flags: libc::c_int) -> libc:: let mut nnull: libc::c_int = 0; let mut nr: ssize_t = 0; let mut string: *mut libc::c_char = 0 as *mut libc::c_char; - let mut finfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut finfo: crate::src_common::stat = crate::src_common::stat_init; let mut file_size: size_t = 0; let mut errfunc: sh_vmsg_func_t = None; let mut funcname_v: *mut SHELL_VAR = 0 as *mut SHELL_VAR; diff --git a/utshell-0.5.0/src/builtins/evalstring.rs b/utshell-0.5.0/src/builtins/evalstring.rs index 3579dca1..0ac9e0f2 100644 --- a/utshell-0.5.0/src/builtins/evalstring.rs +++ b/utshell-0.5.0/src/builtins/evalstring.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use libc::{close, free, malloc, open, strcmp, strcpy, strlen}; use crate::bashhist::bash_history_disable; diff --git a/utshell-0.5.0/src/builtins/exec.rs b/utshell-0.5.0/src/builtins/exec.rs index 17ce1dce..175b5397 100644 --- a/utshell-0.5.0/src/builtins/exec.rs +++ b/utshell-0.5.0/src/builtins/exec.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/exec_cmd.rs b/utshell-0.5.0/src/builtins/exec_cmd.rs index bfbc65fa..7477bcee 100644 --- a/utshell-0.5.0/src/builtins/exec_cmd.rs +++ b/utshell-0.5.0/src/builtins/exec_cmd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/exit.rs b/utshell-0.5.0/src/builtins/exit.rs index 66ef744f..540a340d 100644 --- a/utshell-0.5.0/src/builtins/exit.rs +++ b/utshell-0.5.0/src/builtins/exit.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/fc.rs b/utshell-0.5.0/src/builtins/fc.rs index d32fb3b3..bf354dfd 100644 --- a/utshell-0.5.0/src/builtins/fc.rs +++ b/utshell-0.5.0/src/builtins/fc.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/fg_bg.rs b/utshell-0.5.0/src/builtins/fg_bg.rs index 010e78f5..6607d68a 100644 --- a/utshell-0.5.0/src/builtins/fg_bg.rs +++ b/utshell-0.5.0/src/builtins/fg_bg.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/getopt.rs b/utshell-0.5.0/src/builtins/getopt.rs index 4ca79842..2fa2f514 100644 --- a/utshell-0.5.0/src/builtins/getopt.rs +++ b/utshell-0.5.0/src/builtins/getopt.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; #[no_mangle] diff --git a/utshell-0.5.0/src/builtins/getopts.rs b/utshell-0.5.0/src/builtins/getopts.rs index 2c16ea9b..0c69d04a 100644 --- a/utshell-0.5.0/src/builtins/getopts.rs +++ b/utshell-0.5.0/src/builtins/getopts.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/hash.rs b/utshell-0.5.0/src/builtins/hash.rs index af8413bb..3f48d131 100644 --- a/utshell-0.5.0/src/builtins/hash.rs +++ b/utshell-0.5.0/src/builtins/hash.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::alias::all_aliases; use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; diff --git a/utshell-0.5.0/src/builtins/help.rs b/utshell-0.5.0/src/builtins/help.rs index 37ae5400..88cbf18a 100644 --- a/utshell-0.5.0/src/builtins/help.rs +++ b/utshell-0.5.0/src/builtins/help.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; use crate::builtins::builtins::current_builtin; use crate::builtins::common::{builtin_address_internal, builtin_usage, get_local_str}; diff --git a/utshell-0.5.0/src/builtins/history.rs b/utshell-0.5.0/src/builtins/history.rs index 2c2f35e4..597d9f25 100644 --- a/utshell-0.5.0/src/builtins/history.rs +++ b/utshell-0.5.0/src/builtins/history.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::bashhist::{bash_clear_history, bash_delete_history_range, maybe_append_history}; use crate::bashhist::{bash_delete_histent, bash_delete_last_history, check_add_history}; diff --git a/utshell-0.5.0/src/builtins/jobs.rs b/utshell-0.5.0/src/builtins/jobs.rs index a2de688b..c341eb08 100644 --- a/utshell-0.5.0/src/builtins/jobs.rs +++ b/utshell-0.5.0/src/builtins/jobs.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; use crate::builtins::common::{builtin_usage, get_job_spec, sh_badjob}; diff --git a/utshell-0.5.0/src/builtins/kill.rs b/utshell-0.5.0/src/builtins/kill.rs index 5686f7af..6b87e5b0 100644 --- a/utshell-0.5.0/src/builtins/kill.rs +++ b/utshell-0.5.0/src/builtins/kill.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::builtins::common::{ builtin_usage, display_signal_list, err_translate_fn, get_job_spec, sh_badjob, sh_badpid, diff --git a/utshell-0.5.0/src/builtins/let_1.rs b/utshell-0.5.0/src/builtins/let_1.rs index 80080150..ce65ada9 100644 --- a/utshell-0.5.0/src/builtins/let_1.rs +++ b/utshell-0.5.0/src/builtins/let_1.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::builtins::common::err_translate_fn; use crate::expr::evalexp; diff --git a/utshell-0.5.0/src/builtins/mapfile.rs b/utshell-0.5.0/src/builtins/mapfile.rs index c902c3bf..6c8d4656 100644 --- a/utshell-0.5.0/src/builtins/mapfile.rs +++ b/utshell-0.5.0/src/builtins/mapfile.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::array::array_flush; use crate::arrayfunc::{bind_array_element, find_or_make_array_variable}; diff --git a/utshell-0.5.0/src/builtins/printf.rs b/utshell-0.5.0/src/builtins/printf.rs index e4153fef..6970b242 100644 --- a/utshell-0.5.0/src/builtins/printf.rs +++ b/utshell-0.5.0/src/builtins/printf.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::arrayfunc::valid_array_reference; use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; diff --git a/utshell-0.5.0/src/builtins/pushd.rs b/utshell-0.5.0/src/builtins/pushd.rs index 39d1461a..afb510e9 100644 --- a/utshell-0.5.0/src/builtins/pushd.rs +++ b/utshell-0.5.0/src/builtins/pushd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::builtins::cd::cd_builtin; use crate::builtins::common::{ diff --git a/utshell-0.5.0/src/builtins/read.rs b/utshell-0.5.0/src/builtins/read.rs index aafc4e0d..d20a64b0 100644 --- a/utshell-0.5.0/src/builtins/read.rs +++ b/utshell-0.5.0/src/builtins/read.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::array::array_flush; use crate::arrayfunc::{ diff --git a/utshell-0.5.0/src/builtins/return_1.rs b/utshell-0.5.0/src/builtins/return_1.rs index fcaaba2f..032498c8 100644 --- a/utshell-0.5.0/src/builtins/return_1.rs +++ b/utshell-0.5.0/src/builtins/return_1.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::builtins::common::get_exitstat; use crate::src_common::*; diff --git a/utshell-0.5.0/src/builtins/set.rs b/utshell-0.5.0/src/builtins/set.rs index 24c269f6..a8b1121b 100644 --- a/utshell-0.5.0/src/builtins/set.rs +++ b/utshell-0.5.0/src/builtins/set.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::arrayfunc::{array_variable_part, unbind_array_element, valid_array_reference}; use crate::bashhist::{bash_history_disable, bash_history_enable, load_history}; diff --git a/utshell-0.5.0/src/builtins/setattr.rs b/utshell-0.5.0/src/builtins/setattr.rs index 30631a80..04b9b163 100644 --- a/utshell-0.5.0/src/builtins/setattr.rs +++ b/utshell-0.5.0/src/builtins/setattr.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::array::array_to_assign; use crate::arrayfunc::print_array_assignment; diff --git a/utshell-0.5.0/src/builtins/shift.rs b/utshell-0.5.0/src/builtins/shift.rs index 9a3ca4f3..12a78601 100644 --- a/utshell-0.5.0/src/builtins/shift.rs +++ b/utshell-0.5.0/src/builtins/shift.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::builtins::common::{ builtin_usage, get_numeric_arg, number_of_args, sh_erange, shift_args, }; diff --git a/utshell-0.5.0/src/builtins/shopt.rs b/utshell-0.5.0/src/builtins/shopt.rs index 96aaa633..cc0a0482 100644 --- a/utshell-0.5.0/src/builtins/shopt.rs +++ b/utshell-0.5.0/src/builtins/shopt.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::bashline::{enable_hostname_completion, set_directory_hook}; use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; diff --git a/utshell-0.5.0/src/builtins/signal.rs b/utshell-0.5.0/src/builtins/signal.rs index 0995d8fd..b4b0afa5 100644 --- a/utshell-0.5.0/src/builtins/signal.rs +++ b/utshell-0.5.0/src/builtins/signal.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ //# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. //# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/utshell-0.5.0/src/builtins/source.rs b/utshell-0.5.0/src/builtins/source.rs index dfeacc67..47f7db31 100644 --- a/utshell-0.5.0/src/builtins/source.rs +++ b/utshell-0.5.0/src/builtins/source.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::builtins::common::{ builtin_usage, dollar_vars_changed, no_options, remember_args, set_dollar_vars_unchanged, sh_restricted, diff --git a/utshell-0.5.0/src/builtins/suspend.rs b/utshell-0.5.0/src/builtins/suspend.rs index 5f264158..1f6c7249 100644 --- a/utshell-0.5.0/src/builtins/suspend.rs +++ b/utshell-0.5.0/src/builtins/suspend.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; use crate::builtins::common::{builtin_usage, no_args, sh_nojobs}; diff --git a/utshell-0.5.0/src/builtins/test.rs b/utshell-0.5.0/src/builtins/test.rs index 74ba4c69..eaa48d91 100644 --- a/utshell-0.5.0/src/builtins/test.rs +++ b/utshell-0.5.0/src/builtins/test.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::builtins::common::make_builtin_argv; use crate::src_common::*; use crate::test::test_command; diff --git a/utshell-0.5.0/src/builtins/times.rs b/utshell-0.5.0/src/builtins/times.rs index de1894ae..7c86927b 100644 --- a/utshell-0.5.0/src/builtins/times.rs +++ b/utshell-0.5.0/src/builtins/times.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::builtins::common::{no_options, sh_chkwrite}; use crate::src_common::*; diff --git a/utshell-0.5.0/src/builtins/trap.rs b/utshell-0.5.0/src/builtins/trap.rs index 8da27e73..e7a2b3ce 100644 --- a/utshell-0.5.0/src/builtins/trap.rs +++ b/utshell-0.5.0/src/builtins/trap.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use super::help::builtin_help; use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; use crate::builtins::common::{builtin_usage, display_signal_list, sh_chkwrite, sh_invalidsig}; diff --git a/utshell-0.5.0/src/builtins/type_1.rs b/utshell-0.5.0/src/builtins/type_1.rs index ee190698..3277be82 100644 --- a/utshell-0.5.0/src/builtins/type_1.rs +++ b/utshell-0.5.0/src/builtins/type_1.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use fluent_bundle::FluentArgs; use fluent_resmgr::resource_manager::ResourceManager; diff --git a/utshell-0.5.0/src/builtins/ulimit.rs b/utshell-0.5.0/src/builtins/ulimit.rs index 3f6384c7..d8ef2bf3 100644 --- a/utshell-0.5.0/src/builtins/ulimit.rs +++ b/utshell-0.5.0/src/builtins/ulimit.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; use crate::builtins::common::{builtin_usage, sh_chkwrite, sh_erange, sh_invalidnum}; use crate::builtins::help::builtin_help; diff --git a/utshell-0.5.0/src/builtins/umask.rs b/utshell-0.5.0/src/builtins/umask.rs index 635d21ea..bf80e56d 100644 --- a/utshell-0.5.0/src/builtins/umask.rs +++ b/utshell-0.5.0/src/builtins/umask.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; diff --git a/utshell-0.5.0/src/builtins/wait.rs b/utshell-0.5.0/src/builtins/wait.rs index 0d4b7202..3acd103d 100644 --- a/utshell-0.5.0/src/builtins/wait.rs +++ b/utshell-0.5.0/src/builtins/wait.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::arrayfunc::valid_array_reference; use crate::builtins::bashgetopt::{internal_getopt, reset_internal_getopt}; use crate::builtins::common::{ diff --git a/utshell-0.5.0/src/copycmd.rs b/utshell-0.5.0/src/copycmd.rs index c1d3c06e..0263b726 100644 --- a/utshell-0.5.0/src/copycmd.rs +++ b/utshell-0.5.0/src/copycmd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::list::list_reverse; use crate::make_cmd::{make_bare_word, make_word_list}; use crate::src_common::*; diff --git a/utshell-0.5.0/src/dispose_cmd.rs b/utshell-0.5.0/src/dispose_cmd.rs index 9778d337..36f42f88 100644 --- a/utshell-0.5.0/src/dispose_cmd.rs +++ b/utshell-0.5.0/src/dispose_cmd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::error::command_error; use crate::src_common::*; diff --git a/utshell-0.5.0/src/error.rs b/utshell-0.5.0/src/error.rs index 49529332..c84f596e 100644 --- a/utshell-0.5.0/src/error.rs +++ b/utshell-0.5.0/src/error.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::array::array_reference; use crate::execute_cmd::executing_line_number; use crate::general::base_pathname; diff --git a/utshell-0.5.0/src/eval.rs b/utshell-0.5.0/src/eval.rs index a5f26d88..0d22407d 100644 --- a/utshell-0.5.0/src/eval.rs +++ b/utshell-0.5.0/src/eval.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::array::array_to_argv; use crate::builtins::common::get_working_directory; use crate::builtins::exit::bash_logout; diff --git a/utshell-0.5.0/src/execute_cmd.rs b/utshell-0.5.0/src/execute_cmd.rs index 654d13f1..42805229 100644 --- a/utshell-0.5.0/src/execute_cmd.rs +++ b/utshell-0.5.0/src/execute_cmd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; use crate::alias::delete_all_aliases; diff --git a/utshell-0.5.0/src/expr.rs b/utshell-0.5.0/src/expr.rs index 9ebb636b..60bbe06e 100644 --- a/utshell-0.5.0/src/expr.rs +++ b/utshell-0.5.0/src/expr.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::arrayfunc::{array_variable_name, array_variable_part, get_array_value}; use crate::error::err_unboundvar; use crate::general::legal_identifier; diff --git a/utshell-0.5.0/src/findcmd.rs b/utshell-0.5.0/src/findcmd.rs index 76334927..6cf8b47f 100644 --- a/utshell-0.5.0/src/findcmd.rs +++ b/utshell-0.5.0/src/findcmd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::general::{absolute_program, bash_tilde_expand, conf_standard_path, extract_colon_unit}; use crate::hashcmd::{phash_insert, phash_remove, phash_search}; use crate::pathexp::setup_ignore_patterns; @@ -46,32 +51,7 @@ fn exec_name_should_ignore(name: *const libc::c_char) -> libc::c_int { #[no_mangle] pub fn file_status(name: *const libc::c_char) -> libc::c_int { - let mut finfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut finfo: crate::src_common::stat = crate::src_common::stat_init; let mut r: libc::c_int = 0; unsafe{ if stat(name, &mut finfo) < 0 { @@ -281,32 +261,7 @@ pub fn user_command_matches( let mut path_list: *mut libc::c_char = 0 as *mut libc::c_char; let mut path_element: *mut libc::c_char = 0 as *mut libc::c_char; let mut match_0: *mut libc::c_char = 0 as *mut libc::c_char; - let mut dotinfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut dotinfo: crate::src_common::stat = crate::src_common::stat_init; static mut match_list: *mut *mut libc::c_char = 0 as *const *mut libc::c_char as *mut *mut libc::c_char; static mut match_list_size: libc::c_int = 0 as libc::c_int; @@ -484,32 +439,7 @@ fn find_user_command_in_path( let mut path: *mut libc::c_char = 0 as *mut libc::c_char; let mut path_index: libc::c_int = 0; let mut name_len: libc::c_int = 0; - let mut dotinfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut dotinfo: crate::src_common::stat = crate::src_common::stat_init; unsafe { dot_found_in_search = 0; diff --git a/utshell-0.5.0/src/flags.rs b/utshell-0.5.0/src/flags.rs index 9a41d67c..c074dafb 100644 --- a/utshell-0.5.0/src/flags.rs +++ b/utshell-0.5.0/src/flags.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::bashhist::bash_initialize_history; use crate::jobs::set_job_control; use crate::src_common::*; diff --git a/utshell-0.5.0/src/general.rs b/utshell-0.5.0/src/general.rs index 8263304d..9bf6281c 100644 --- a/utshell-0.5.0/src/general.rs +++ b/utshell-0.5.0/src/general.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::arrayfunc::{array_variable_name, valid_array_reference}; use crate::builtins::{ pushd::get_dirstack_from_string, @@ -699,58 +704,8 @@ pub fn same_file( mut stp1: *mut crate::src_common::stat, mut stp2: *mut crate::src_common::stat, ) -> libc::c_int { - let mut st1: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; - let mut st2: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut st1: crate::src_common::stat = crate::src_common::stat_init; + let mut st2: crate::src_common::stat = crate::src_common::stat_init; unsafe{ if stp1.is_null() { if stat(path1, &mut st1) != 0 as libc::c_int { @@ -899,64 +854,14 @@ pub fn sh_closepipe(mut pv: *mut libc::c_int) -> libc::c_int { /* **************************************************************** */ #[no_mangle] pub fn file_exists(mut fn_0: *const libc::c_char) -> libc::c_int { - let mut sb: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut sb: crate::src_common::stat = crate::src_common::stat_init; unsafe{ return (stat(fn_0, &mut sb) == 0 as libc::c_int) as libc::c_int;} } #[no_mangle] pub fn file_isdir(mut fn_0: *const libc::c_char) -> libc::c_int { - let mut sb: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut sb: crate::src_common::stat = crate::src_common::stat_init; unsafe{return (stat(fn_0, &mut sb) == 0 && S_ISDIR!(sb.st_mode)) as libc::c_int;} } diff --git a/utshell-0.5.0/src/hashcmd.rs b/utshell-0.5.0/src/hashcmd.rs index b7f3a20e..db882572 100644 --- a/utshell-0.5.0/src/hashcmd.rs +++ b/utshell-0.5.0/src/hashcmd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::findcmd::executable_file; use crate::general::same_file; use crate::hashlib::{hash_create, hash_flush, hash_insert, hash_remove, hash_search}; diff --git a/utshell-0.5.0/src/hashlib.rs b/utshell-0.5.0/src/hashlib.rs index d7f570f6..e207d6d1 100644 --- a/utshell-0.5.0/src/hashlib.rs +++ b/utshell-0.5.0/src/hashlib.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; #[no_mangle] diff --git a/utshell-0.5.0/src/input.rs b/utshell-0.5.0/src/input.rs index b43ecb4f..cb25fd5e 100644 --- a/utshell-0.5.0/src/input.rs +++ b/utshell-0.5.0/src/input.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::general::sh_unset_nodelay_mode; use crate::src_common::*; use crate::stringlib::xbcopy; @@ -383,32 +388,7 @@ is invalid, return a NULL stream. */ pub fn fd_to_buffered_stream(mut fd: libc::c_int) -> *mut BUFFERED_STREAM { let mut buffer: *mut libc::c_char = 0 as *mut libc::c_char; let mut size: size_t = 0; - let mut sb: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut sb: crate::src_common::stat = crate::src_common::stat_init; unsafe { if crate::src_common::fstat(fd, &mut sb) < 0 as libc::c_int { close(fd); diff --git a/utshell-0.5.0/src/jobs.rs b/utshell-0.5.0/src/jobs.rs index ceba08ca..d2ebd913 100644 --- a/utshell-0.5.0/src/jobs.rs +++ b/utshell-0.5.0/src/jobs.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::builtins::{ common::{get_working_directory, the_current_working_directory}, evalfile::sourcelevel, diff --git a/utshell-0.5.0/src/lib.rs b/utshell-0.5.0/src/lib.rs index ef5e7d80..3efe91c4 100644 --- a/utshell-0.5.0/src/lib.rs +++ b/utshell-0.5.0/src/lib.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ extern crate lazy_static; #[warn(unused_unsafe)] #[macro_use] diff --git a/utshell-0.5.0/src/list.rs b/utshell-0.5.0/src/list.rs index a6b961b2..f70fc695 100644 --- a/utshell-0.5.0/src/list.rs +++ b/utshell-0.5.0/src/list.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; #[no_mangle] diff --git a/utshell-0.5.0/src/local.rs b/utshell-0.5.0/src/local.rs index 155fd474..74487757 100644 --- a/utshell-0.5.0/src/local.rs +++ b/utshell-0.5.0/src/local.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common; use crate::src_common::*; use crate::variables::maybe_make_export_env; diff --git a/utshell-0.5.0/src/mailcheck.rs b/utshell-0.5.0/src/mailcheck.rs index d4f2c50e..f98ad552 100644 --- a/utshell-0.5.0/src/mailcheck.rs +++ b/utshell-0.5.0/src/mailcheck.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::general::{extract_colon_unit, full_pathname, legal_number}; use crate::src_common::*; use crate::subst::expand_string_to_string; @@ -63,32 +68,7 @@ fn init_mail_file(i: libc::c_int) { fn update_mail_file(i: libc::c_int) { let file: *mut libc::c_char; - let mut finfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut finfo: crate::src_common::stat = crate::src_common::stat_init; unsafe { file = (**mailfiles.offset(i as isize)).name; if mailstat(file, &mut finfo) == 0 as libc::c_int { @@ -100,32 +80,7 @@ fn update_mail_file(i: libc::c_int) { } fn add_mail_file(file: *mut libc::c_char, msg: *mut libc::c_char) -> libc::c_int { - let mut finfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut finfo: crate::src_common::stat = crate::src_common::stat_init; let filename: *mut libc::c_char; let mut i: libc::c_int; filename = full_pathname(file); @@ -224,32 +179,7 @@ pub fn init_mail_dates() { fn file_mod_date_changed(i: libc::c_int) -> libc::c_int { let mtime_0: time_t; - let mut finfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut finfo: crate::src_common::stat = crate::src_common::stat_init; unsafe { let file: *mut libc::c_char; file = (**mailfiles.offset(i as isize)).name; @@ -271,32 +201,7 @@ fn file_mod_date_changed(i: libc::c_int) -> libc::c_int { fn file_access_date_changed(i: libc::c_int) -> libc::c_int { let atime_0: time_t; - let mut finfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut finfo: crate::src_common::stat = crate::src_common::stat_init; let file: *mut libc::c_char; unsafe { file = (**mailfiles.offset(i as isize)).name; @@ -313,32 +218,7 @@ fn file_access_date_changed(i: libc::c_int) -> libc::c_int { fn file_has_grown(i: libc::c_int) -> libc::c_int { let size: off_t; - let mut finfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut finfo: crate::src_common::stat = crate::src_common::stat_init; unsafe { let file: *mut libc::c_char; file = (**mailfiles.offset(i as isize)).name; diff --git a/utshell-0.5.0/src/make_cmd.rs b/utshell-0.5.0/src/make_cmd.rs index 2d8c04ca..ed501d02 100644 --- a/utshell-0.5.0/src/make_cmd.rs +++ b/utshell-0.5.0/src/make_cmd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::array::array_reference; use crate::builtins::common::builtin_address_internal; use crate::dispose_cmd::{dispose_word, dispose_words}; diff --git a/utshell-0.5.0/src/nojobs.rs b/utshell-0.5.0/src/nojobs.rs index 5e52968e..edd86954 100644 --- a/utshell-0.5.0/src/nojobs.rs +++ b/utshell-0.5.0/src/nojobs.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; use std::mem::size_of; diff --git a/utshell-0.5.0/src/pathexp.rs b/utshell-0.5.0/src/pathexp.rs index 5045ae28..47a576f3 100644 --- a/utshell-0.5.0/src/pathexp.rs +++ b/utshell-0.5.0/src/pathexp.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; use crate::stringlib::substring; use crate::subst::skip_to_delim; diff --git a/utshell-0.5.0/src/pcomplete.rs b/utshell-0.5.0/src/pcomplete.rs index 5915a808..5b2cb240 100644 --- a/utshell-0.5.0/src/pcomplete.rs +++ b/utshell-0.5.0/src/pcomplete.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; use crate::unwind_prot::begin_unwind_frame; use std::convert::TryInto; diff --git a/utshell-0.5.0/src/pcomplib.rs b/utshell-0.5.0/src/pcomplib.rs index 3e86740c..feeaf30c 100644 --- a/utshell-0.5.0/src/pcomplib.rs +++ b/utshell-0.5.0/src/pcomplib.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::hashlib::{ hash_create, hash_dispose, hash_flush, hash_insert, hash_remove, hash_search, hash_walk, }; diff --git a/utshell-0.5.0/src/print_cmd.rs b/utshell-0.5.0/src/print_cmd.rs index 1bdc3084..728bd2ab 100644 --- a/utshell-0.5.0/src/print_cmd.rs +++ b/utshell-0.5.0/src/print_cmd.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::copycmd::copy_command; use crate::copycmd::copy_redirect; use crate::dispose_cmd::{dispose_command, dispose_redirects}; diff --git a/utshell-0.5.0/src/readline.rs b/utshell-0.5.0/src/readline.rs index 42af003f..7cf32d5a 100644 --- a/utshell-0.5.0/src/readline.rs +++ b/utshell-0.5.0/src/readline.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; pub const control_character_threshold: u32 = 32; pub const control_character_mask: u32 = 31; diff --git a/utshell-0.5.0/src/redir.rs b/utshell-0.5.0/src/redir.rs index 10ffa9a3..5e786957 100644 --- a/utshell-0.5.0/src/redir.rs +++ b/utshell-0.5.0/src/redir.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::arrayfunc::{array_variable_part, get_array_value, valid_array_reference}; use crate::copycmd::{copy_redirects, copy_word}; use crate::dispose_cmd::{dispose_redirects, dispose_words}; @@ -562,32 +567,7 @@ fn noclobber_open( unsafe { let mut r: libc::c_int = 0; let mut fd: libc::c_int = 0; - let mut finfo: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut finfo: crate::src_common::stat = crate::src_common::stat_init; let mut finfo2: crate::src_common::stat = crate::src_common::stat { ..finfo }; r = stat(filename, &mut finfo); if r == 0 && S_ISREG!(finfo.st_mode) { diff --git a/utshell-0.5.0/src/sig.rs b/utshell-0.5.0/src/sig.rs index 9a924f1b..a2f1283a 100644 --- a/utshell-0.5.0/src/sig.rs +++ b/utshell-0.5.0/src/sig.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::bashhist::maybe_save_shell_history; use crate::bashline::{bashline_reset, bashline_set_event_hook}; use crate::builtins::evalstring::parse_and_execute_cleanup; diff --git a/utshell-0.5.0/src/src_common.rs b/utshell-0.5.0/src/src_common.rs index 02044246..7ea10158 100644 --- a/utshell-0.5.0/src/src_common.rs +++ b/utshell-0.5.0/src/src_common.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ pub use libc::*; pub use crate::array::array_dispose_element; @@ -4885,10 +4890,20 @@ pub type __uid_t = libc::c_uint; pub type __gid_t = libc::c_uint; pub type __ino_t = libc::c_ulong; pub type __mode_t = libc::c_uint; + +#[cfg(target_arch = "x86_64")] pub type __nlink_t = libc::c_ulong; +#[cfg(not(target_arch = "x86_64"))] +pub type __nlink_t = libc::c_uint; + pub type __rlim_t = libc::c_ulong; pub type __time_t = libc::c_long; + +#[cfg(target_arch = "x86_64")] pub type __blksize_t = libc::c_long; +#[cfg(not(target_arch = "x86_64"))] +pub type __blksize_t = libc::c_int; + pub type __blkcnt_t = libc::c_long; pub type __syscall_slong_t = libc::c_long; pub type __sig_atomic_t = libc::c_int; @@ -4907,20 +4922,67 @@ pub type sig_atomic_t = __sig_atomic_t; pub struct stat { pub st_dev: __dev_t, pub st_ino: __ino_t, + #[cfg(target_arch = "x86_64")] pub st_nlink: __nlink_t, pub st_mode: __mode_t, + #[cfg(not(target_arch = "x86_64"))] + pub st_nlink: __nlink_t, pub st_uid: __uid_t, pub st_gid: __gid_t, + #[cfg(target_arch = "x86_64")] pub __pad0: libc::c_int, pub st_rdev: __dev_t, + #[cfg(not(target_arch = "x86_64"))] + pub __pad1: __dev_t, pub st_size: __off_t, pub st_blksize: __blksize_t, + #[cfg(not(target_arch = "x86_64"))] + pub __pad2: libc::c_int, pub st_blocks: __blkcnt_t, pub st_atim: timespec, pub st_mtim: timespec, pub st_ctim: timespec, + #[cfg(target_arch = "x86_64")] pub __glibc_reserved: [__syscall_slong_t; 3], -} + #[cfg(not(target_arch = "x86_64"))] + pub __glibc_reserved: [libc::c_int; 2], +} + +// stat类型初始化 +pub const stat_init: stat = stat { + st_dev: 0, + st_ino: 0, + st_nlink: 0, + st_mode: 0, + st_uid: 0, + st_gid: 0, + #[cfg(target_arch = "x86_64")] + __pad0: 0, + st_rdev: 0, + #[cfg(not(target_arch = "x86_64"))] + __pad1: 0, + st_size: 0, + st_blksize: 0, + #[cfg(not(target_arch = "x86_64"))] + __pad2: 0, + st_blocks: 0, + st_atim: timespec { + tv_sec: 0, + tv_nsec: 0, + }, + st_mtim: timespec { + tv_sec: 0, + tv_nsec: 0, + }, + st_ctim: timespec { + tv_sec: 0, + tv_nsec: 0, + }, + #[cfg(target_arch = "x86_64")] + __glibc_reserved: [0; 3], + #[cfg(not(target_arch = "x86_64"))] + __glibc_reserved: [0; 2], +}; #[derive(Copy, Clone)] #[repr(C)] diff --git a/utshell-0.5.0/src/stringlib.rs b/utshell-0.5.0/src/stringlib.rs index f8bf1fc5..ea685d37 100644 --- a/utshell-0.5.0/src/stringlib.rs +++ b/utshell-0.5.0/src/stringlib.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::pathexp::quote_globbing_chars; use crate::src_common::*; diff --git a/utshell-0.5.0/src/subst.rs b/utshell-0.5.0/src/subst.rs index fdb6c836..542ef373 100644 --- a/utshell-0.5.0/src/subst.rs +++ b/utshell-0.5.0/src/subst.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #![allow( dead_code, mutable_transmutes, diff --git a/utshell-0.5.0/src/syntax.rs b/utshell-0.5.0/src/syntax.rs index ad8c3037..1994480d 100644 --- a/utshell-0.5.0/src/syntax.rs +++ b/utshell-0.5.0/src/syntax.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; // use libc::c_int; // use r_bash::*; diff --git a/utshell-0.5.0/src/test.rs b/utshell-0.5.0/src/test.rs index 4ef19af2..e84c7176 100644 --- a/utshell-0.5.0/src/test.rs +++ b/utshell-0.5.0/src/test.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::arrayfunc::{array_value, valid_array_reference}; use crate::assoc::assoc_reference; use crate::builtins::common::number_of_args; @@ -691,58 +696,9 @@ pub fn filecomp( mut t: *mut libc::c_char, op: libc::c_int, ) -> libc::c_int { - let mut st1: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; - let mut st2: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut st1: crate::src_common::stat = crate::src_common::stat_init; + let mut st2: crate::src_common::stat = crate::src_common::stat_init; + let mut ts1: crate::src_common::timespec = crate::src_common::timespec { tv_sec: 0, tv_nsec: 0, @@ -882,32 +838,7 @@ pub fn binary_test( #[no_mangle] pub fn unary_test(mut op: *mut libc::c_char, mut arg: *mut libc::c_char) -> libc::c_int { let mut r: intmax_t = 0; - let mut stat_buf: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut stat_buf: crate::src_common::stat = crate::src_common::stat_init; let mut mtime: crate::src_common::timespec = crate::src_common::timespec { tv_sec: 0, tv_nsec: 0, diff --git a/utshell-0.5.0/src/trap.rs b/utshell-0.5.0/src/trap.rs index 28b5c8bf..d22133e7 100644 --- a/utshell-0.5.0/src/trap.rs +++ b/utshell-0.5.0/src/trap.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::bashline::bashline_set_event_hook; use crate::builtins::evalstring::evalstring; use crate::builtins::wait::wait_builtin; diff --git a/utshell-0.5.0/src/unwind_prot.rs b/utshell-0.5.0/src/unwind_prot.rs index 986fd8de..d7ad1bcb 100644 --- a/utshell-0.5.0/src/unwind_prot.rs +++ b/utshell-0.5.0/src/unwind_prot.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; use std::convert::TryInto; diff --git a/utshell-0.5.0/src/utshell.rs b/utshell-0.5.0/src/utshell.rs index 2db88f0d..d41a914c 100644 --- a/utshell-0.5.0/src/utshell.rs +++ b/utshell-0.5.0/src/utshell.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common; use crate::bashhist::{ bash_history_reinit, bash_initialize_history, load_history, maybe_save_shell_history, @@ -1191,32 +1196,7 @@ fn open_shell_script(script_name: *mut libc::c_char) -> libc::c_int { let mut t: *mut libc::c_char = 0 as *mut libc::c_char; let mut sample: [libc::c_char; 80] = [0; 80]; let mut sample_len: libc::c_int = 0; - let mut sb: crate::src_common::stat = crate::src_common::stat { - st_dev: 0, - st_ino: 0, - st_nlink: 0, - st_mode: 0, - st_uid: 0, - st_gid: 0, - __pad0: 0, - st_rdev: 0, - st_size: 0, - st_blksize: 0, - st_blocks: 0, - st_atim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_mtim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - st_ctim: crate::src_common::timespec { - tv_sec: 0, - tv_nsec: 0, - }, - __glibc_reserved: [0; 3], - }; + let mut sb: crate::src_common::stat = crate::src_common::stat_init; let mut funcname_v: *mut SHELL_VAR = 0 as *mut SHELL_VAR; let mut bash_source_v: *mut SHELL_VAR = 0 as *mut SHELL_VAR; let mut bash_lineno_v: *mut SHELL_VAR = 0 as *mut SHELL_VAR; diff --git a/utshell-0.5.0/src/variables.rs b/utshell-0.5.0/src/variables.rs index b32d3a0d..0fa7b61a 100644 --- a/utshell-0.5.0/src/variables.rs +++ b/utshell-0.5.0/src/variables.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::alias::add_alias; use crate::array::array_copy; use crate::array::array_create; diff --git a/utshell-0.5.0/src/version.rs b/utshell-0.5.0/src/version.rs index a6be9df9..43dcb49f 100644 --- a/utshell-0.5.0/src/version.rs +++ b/utshell-0.5.0/src/version.rs @@ -1,15 +1,20 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ use crate::src_common::*; use std::convert::TryInto; /* The distribution version number of this shell. */ #[no_mangle] -pub static mut dist_version: *const libc::c_char = b"5.1\0" as *const u8 as *const libc::c_char; +pub static mut dist_version: *const libc::c_char = b"0.5\0" as *const u8 as *const libc::c_char; /* It's important that there be no other strings in this file that match the regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh looks for to find the patch level (for the sccs version string). */ #[no_mangle] -pub static mut patch_level: libc::c_int = 4 as libc::c_int; +pub static mut patch_level: libc::c_int = 0 as libc::c_int; /* The last built version of this shell. */ #[no_mangle] diff --git a/utshell-0.5.0/src/y_tab.rs b/utshell-0.5.0/src/y_tab.rs index 1d2670bc..4314f463 100644 --- a/utshell-0.5.0/src/y_tab.rs +++ b/utshell-0.5.0/src/y_tab.rs @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2025 UnionTech Software Technology Co., Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #![allow( dead_code, mutable_transmutes, -- Gitee