diff --git a/devel/0161.md b/devel/0161.md new file mode 100644 index 0000000000..1919e08855 --- /dev/null +++ b/devel/0161.md @@ -0,0 +1,42 @@ +# [0161] 移除未使用的 -delete-server-data 和 -delete-databases 选项 + +## 相关文档 +- [dddd.md](dddd.md) - 任务文档模板 + +## 任务相关的代码文件 +- `src/Mogan/Research/research.cpp` +- `src/System/Boot/init_texmacs.cpp` + +## 如何测试 + +### 确定性测试(单元测试) +```bash +xmake b stem +``` + +### 非确定性测试(文档验证) +启动 Mogan Research,确认 `-delete-server-data` 和 `-delete-databases` 参数已不在命令行选项列表中。 + +## 如何提交 + +提交前执行以下最少步骤: + +```bash +bin/format +xmake b stem +``` + +## What + +从代码中彻底移除 `-delete-server-data` 和 `-delete-databases` 两个命令行选项。 + +1. 从 `src/Mogan/Research/research.cpp` 中移除对应处理逻辑 +2. 从 `src/System/Boot/init_texmacs.cpp` 的参数解析列表中移除这两个选项 + +## Why + +这两个选项使用了外部 `rm -rf` 命令,存在潜在安全风险,且实际未被使用。直接移除最为安全。 + +## How + +在 `research.cpp` 中删除对应的 `else if` 分支,在 `init_texmacs.cpp` 中将这两个选项从有效参数列表中剔除。 diff --git a/src/Mogan/Research/research.cpp b/src/Mogan/Research/research.cpp index 3bc3123877..c2a170ed7a 100644 --- a/src/Mogan/Research/research.cpp +++ b/src/Mogan/Research/research.cpp @@ -131,12 +131,6 @@ immediate_options (int argc, char** argv) { } else if (s == "-delete-plugin-cache") remove (get_tm_cache_path () * url ("plugin_cache.scm")); - else if (s == "-delete-server-data") - system ("rm -rf", url ("$TEXMACS_HOME_PATH/server")); - else if (s == "-delete-databases") { - system ("rm -rf", url ("$TEXMACS_HOME_PATH/system/database")); - system ("rm -rf", url ("$TEXMACS_HOME_PATH/users")); - } #ifdef QTTEXMACS else if (s == "-headless") headless_mode= true; #endif diff --git a/src/System/Boot/init_texmacs.cpp b/src/System/Boot/init_texmacs.cpp index aef1d38e10..8d8e5e1f6d 100644 --- a/src/System/Boot/init_texmacs.cpp +++ b/src/System/Boot/init_texmacs.cpp @@ -799,8 +799,7 @@ TeXmacs_main (int argc, char** argv) { else if ((s == "-S") || (s == "-setup") || (s == "-delete-cache") || (s == "-delete-font-cache") || (s == "-delete-style-cache") || (s == "-delete-file-cache") || (s == "-delete-doc-cache") || - (s == "-delete-plugin-cache") || (s == "-delete-server-data") || - (s == "-delete-databases") || (s == "-headless")) + (s == "-delete-plugin-cache") || (s == "-headless")) ; else if (s == "-build-manual") { if ((++i) < argc)