summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Alexander Steffens (heftig) <heftig@archlinux.org>2023-05-21 16:24:54 +0200
committerLevente Polyak <anthraxx@archlinux.org>2023-05-23 02:20:03 +0200
commitd759eadb50409e83d8d58fa54812738c30ac626d (patch)
tree12a13cc32fe14f081cb0bd73d4dd964e602212c5
parent1c399778f9a52552f1bfe20eb7e08b89ef8abe12 (diff)
downloaddevtools-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.in7
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