From fd762f9d3c0ded46474917deee5298387d968749 Mon Sep 17 00:00:00 2001 From: Aoran Zeng Date: Fri, 22 Nov 2024 09:14:55 +0800 Subject: [PATCH] Fix mirror selection when reset in Dry Run mode [GitHub #123] --- src/chsrc-main.c | 8 ++++---- src/framework/core.c | 14 +++++++++----- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/chsrc-main.c b/src/chsrc-main.c index 9447bd3..da5dea1 100644 --- a/src/chsrc-main.c +++ b/src/chsrc-main.c @@ -19,7 +19,7 @@ * | czyt * | * Created On : <2023-08-28> - * Last Modified : <2024-11-21> + * Last Modified : <2024-11-22> * * chsrc: Change Source —— 全平台通用命令行换源工具 * ------------------------------------------------------------*/ @@ -660,10 +660,10 @@ main (int argc, char const *argv[]) if (CliOpt_DryRun) { - char *dry_msg = CliOpt_InEnglish ? "**Enable [Dry Run] mode. " \ + char *dry_msg = CliOpt_InEnglish ? "Enable [Dry Run] mode. " \ "Simulate the source changing process (skipping speed measurement). " \ - "Commands only print but don't run**\n" - : "**开启Dry Run模式,模拟换源过程(跳过测速),命令仅打印并不运行**\n"; + "Commands only print but don't run\n" + : "开启Dry Run模式,模拟换源过程(跳过测速),命令仅打印并不运行\n"; chsrc_log (bdyellow(dry_msg)); } diff --git a/src/framework/core.c b/src/framework/core.c index 5d1fb7b..98cfc26 100644 --- a/src/framework/core.c +++ b/src/framework/core.c @@ -672,11 +672,11 @@ measure_speed_for_every_source (Source_t sources[], int size, double speed_recor int select_mirror_autoly (Source_t *sources, size_t size, const char *target_name) { + if (!CliOpt_DryRun) { - char *msg = CliOpt_InEnglish ? "Measuring speed in sequence" : "测速中"; - - xy_log_brkt (App_Name, bdpurple (CliOpt_InEnglish ? "MEASURE" : "测速"), msg); - br(); + char *msg = CliOpt_InEnglish ? "Measuring speed in sequence" : "测速中"; + xy_log_brkt (App_Name, bdpurple (CliOpt_InEnglish ? "MEASURE" : "测速"), msg); + br(); } if (0==size || 1==size) @@ -689,7 +689,11 @@ select_mirror_autoly (Source_t *sources, size_t size, const char *target_name) if (CliOpt_DryRun) { - return 1; // Dry Run 时,跳过测速 + /* Dry Run 时,跳过测速 */ + if (ProgMode_CMD_Reset) + return 0; /* 选择默认源 */ + else + return 1; /* 原则第一个源 */ } bool only_one = false;