From 128a9c2c8b1b442e21ca2d9bacf68efd7dd7a09e Mon Sep 17 00:00:00 2001 From: Mikachu2333 Date: Wed, 1 Oct 2025 15:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9B=20chsrc=5Foverwrite=5Ffile?= =?UTF-8?q?=20=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/framework/core.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/framework/core.c b/src/framework/core.c index 8969072..2ec7531 100644 --- a/src/framework/core.c +++ b/src/framework/core.c @@ -1781,16 +1781,26 @@ chsrc_overwrite_file (const char *str, const char *filename) char *dir = xy_parent_dir (file); chsrc_ensure_dir (dir); - char *cmd = NULL; - if (xy.on_windows) + FILE *f = fopen (file, "w"); + if (NULL==f) { - cmd = xy_strcat (4, "echo ", str, " > ", file); + char *msg = ENGLISH ? xy_2strcat ("Unable to open file to overwrite: ", file) + : xy_2strcat ("无法打开文件以覆盖: ", file); + chsrc_error2 (msg); + exit (Exit_UserCause); } - else + + size_t len = strlen (str); + size_t ret = fwrite (str, len, 1, f); + if (ret != 1) { - cmd = xy_strcat (4, "echo '", str, "' > ", file); + char *msg = ENGLISH ? xy_2strcat ("Write failed to ", file) + : xy_2strcat ("写入文件失败: ", file); + chsrc_error2 (msg); + exit (Exit_UserCause); } - chsrc_run_as_a_service (cmd); + + fclose (f); log_anyway: /* 输出recipe指定的文件名 */