pull/562/merge
FUTATSUKI Yasuhito 2025-11-24 15:26:12 +07:00 committed by GitHub
commit 59431d95c7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 39 additions and 1 deletions

@ -187,6 +187,22 @@ fn app() -> clap::Command {
.value_parser(clap::value_parser!(u32))
.required(false),
)
.arg(
// Dummy 'unified' flag of POSIX/GNU diff utility for svn support:
// This takes no effect.
Arg::new("nop_unified")
.short('u')
.action(ArgAction::SetTrue)
.hide(true)
)
.arg(
Arg::new("label").short('L')
.long("label")
.value_name("LABEL")
.action(ArgAction::Append)
.value_parser(value_parser!(OsString))
.help("Label of file(s) which should be used for printing instead of PATH(s).")
)
.arg(
Arg::new("width")
.long("width")
@ -886,7 +902,29 @@ pub(crate) fn parse_args() -> Mode {
[lhs_path, rhs_path] => {
let lhs_arg = FileArgument::from_cli_argument(lhs_path);
let rhs_arg = FileArgument::from_cli_argument(rhs_path);
let display_path = build_display_path(&lhs_arg, &rhs_arg);
let display_path = if matches.contains_id("label") {
let labels: Vec<_> = matches
.get_many::<OsString>("label")
.unwrap_or_default()
.collect();
let (_lhs_display_path, rhs_display_path) = match &labels[..] {
[lhs_display_path, rhs_display_path] => (
lhs_display_path.to_string_lossy().to_string(),
rhs_display_path.to_string_lossy().to_string(),
),
[display_path] => (
display_path.to_string_lossy().to_string(),
display_path.to_string_lossy().to_string(),
),
_ => {
eprintln!("More than 2 labels specified");
std::process::exit(EXIT_BAD_ARGUMENTS);
}
};
rhs_display_path
} else {
build_display_path(&lhs_arg, &rhs_arg)
};
let lhs_permissions = lhs_arg.permissions();
let rhs_permissions = rhs_arg.permissions();