Title: adds {cwd-tilde} support

This commit is contained in:
李通洲
2026-02-28 18:44:13 +08:00
parent 5087ea77b4
commit 1c032624ac
2 changed files with 19 additions and 1 deletions
+1 -1
View File
@@ -498,7 +498,7 @@
"type": "string"
},
"titleFormat": {
"description": "Output format of the module `Title`. See Wiki for formatting syntax\n 1. {user-name}: User name\n 2. {host-name}: Host name\n 3. {home-dir}: Home directory\n 4. {exe-path}: Executable path of current process\n 5. {user-shell}: User's default shell\n 6. {user-name-colored}: User name (colored)\n 7. {at-symbol-colored}: @ symbol (colored)\n 8. {host-name-colored}: Host name (colored)\n 9. {full-user-name}: Full user name\n 10. {user-id}: UID (*nix) / SID (Windows)\n 11. {pid}: PID of current process\n 12. {cwd}: Current working directory",
"description": "Output format of the module `Title`. See Wiki for formatting syntax\n 1. {user-name}: User name\n 2. {host-name}: Host name\n 3. {home-dir}: Home directory\n 4. {exe-path}: Executable path of current process\n 5. {user-shell}: User's default shell\n 6. {user-name-colored}: User name (colored)\n 7. {at-symbol-colored}: @ symbol (colored)\n 8. {host-name-colored}: Host name (colored)\n 9. {full-user-name}: Full user name\n 10. {user-id}: UID (*nix) / SID (Windows)\n 11. {pid}: PID of current process\n 12. {cwd}: Current working directory\n 13. {cwd-tilde}: CWD with home dir replaced by ~",
"type": "string"
},
"themeFormat": {
+18
View File
@@ -54,6 +54,22 @@ bool ffPrintTitle(FFTitleOptions* options)
}
else
{
FF_STRBUF_AUTO_DESTROY cwdTilde = ffStrbufCreate();
if (
#if _WIN32
ffStrbufStartsWithIgnCase
#else
ffStrbufStartsWith
#endif
(&instance.state.platform.cwd, &instance.state.platform.homeDir))
{
ffStrbufAppendS(&cwdTilde, "~/");
ffStrbufAppendNS(&cwdTilde, instance.state.platform.cwd.length - instance.state.platform.homeDir.length, &instance.state.platform.cwd.chars[instance.state.platform.homeDir.length]);
}
else
ffStrbufSet(&cwdTilde, &instance.state.platform.cwd);
ffStrbufTrimRight(&cwdTilde, '/');
FF_PRINT_FORMAT_CHECKED(FF_TITLE_MODULE_NAME, 0, &options->moduleArgs, FF_PRINT_TYPE_DEFAULT, ((FFformatarg[]){
FF_FORMAT_ARG(instance.state.platform.userName, "user-name"),
FF_FORMAT_ARG(hostName, "host-name"),
@@ -71,6 +87,7 @@ bool ffPrintTitle(FFTitleOptions* options)
#endif
FF_FORMAT_ARG(instance.state.platform.pid, "pid"),
FF_FORMAT_ARG(instance.state.platform.cwd, "cwd"),
FF_FORMAT_ARG(cwdTilde, "cwd-tilde"),
}));
}
@@ -186,5 +203,6 @@ FFModuleBaseInfo ffTitleModuleInfo = {
{"UID (*nix) / SID (Windows)", "user-id"},
{"PID of current process", "pid"},
{"Current working directory", "cwd"},
{"CWD with home dir replaced by `~`, and trims trailing `/`", "cwd-tilde"},
}))
};