diff options
author | Jan Alexander Steffens (heftig) <heftig@archlinux.org> | 2023-05-21 16:24:54 +0200 |
---|---|---|
committer | Levente Polyak <anthraxx@archlinux.org> | 2023-05-23 02:20:03 +0200 |
commit | d759eadb50409e83d8d58fa54812738c30ac626d (patch) | |
tree | 12a13cc32fe14f081cb0bd73d4dd964e602212c5 | |
parent | 1c399778f9a52552f1bfe20eb7e08b89ef8abe12 (diff) | |
download | devtools-d759eadb50409e83d8d58fa54812738c30ac626d.tar.xz |
fix(diffpkg): Fix scoping of DIFFOPTIONS when comparing split pkgs
`diff_pkgs` needs to use a local variable for its options, otherwise
they will accumulate for each package diffed.
Whem comparing split packages this lead to earlier mutated DIFFOPTIONS
containing too many labels which resulted in a failure.
-rw-r--r-- | src/diffpkg.in | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/diffpkg.in b/src/diffpkg.in index ab1a5af..160c4ba 100644 --- a/src/diffpkg.in +++ b/src/diffpkg.in @@ -215,7 +215,8 @@ diff_pkgs() { [[ -f $oldpkg ]] || die "No such file: %s" "${oldpkg}" [[ -f $newpkg ]] || die "No such file: %s" "${newpkg}" - DIFFOPTIONS+=(--label "${oldpkg}" --label "${newpkg}") + local -a diffoptions + diffoptions=("${DIFFOPTIONS[@]}" --label "${oldpkg}" --label "${newpkg}") if (( TARLIST )); then tar_list "$oldpkg" > "$TMPDIR/old" @@ -236,7 +237,7 @@ diff_pkgs() { # Resolve dynamic auto width one we know the content to diff if [[ $DIFFWIDTH == --width=auto ]]; then AUTOLENGTH=$(file_diff_columns "$TMPDIR/old" "$TMPDIR/new") - DIFFOPTIONS+=("--width=${AUTOLENGTH}") + diffoptions+=("--width=${AUTOLENGTH}") fi # Print a header for side-by-side view as it lacks labels @@ -244,7 +245,7 @@ diff_pkgs() { printf -- "--- %s\n+++ %s\n" "${oldpkg}" "${newpkg}" fi - diff "${DIFFOPTIONS[@]}" "$TMPDIR/old" "$TMPDIR/new" + diff "${diffoptions[@]}" "$TMPDIR/old" "$TMPDIR/new" fi if (( DIFFOSCOPE )); then |