+++ /dev/null
-diff -ur amanda-2.6.1p1/changer-src/chg-zd-mtx.sh amanda-2.6.1p1-sh/changer-src/chg-zd-mtx.sh
---- amanda-2.6.1p1/changer-src/chg-zd-mtx.sh 2008-12-16 21:46:41.000000000 +0100
-+++ amanda-2.6.1p1-sh/changer-src/chg-zd-mtx.sh 2009-07-03 21:00:25.379617588 +0200
-@@ -364,7 +364,7 @@
-
- internal_call=0
- Exit() {
-- if [ $internal_call -gt 0 ]; then
-+ if [ "$internal_call" -gt 0 ]; then
- call_type=Return
- else
- call_type=Exit
-@@ -376,7 +376,7 @@
- exit_answer="$@"
- Log $call_type "($code) -> $exit_slot $@"
- echo "$exit_slot" "$@"
-- if [ $call_type = Return ]; then
-+ if [ "$call_type" = "Return" ]; then
- return $code
- fi
- amgetconf dbclose.$myname:$DBGFILE > /dev/null 2>&1
-@@ -393,12 +393,12 @@
- "$@" > $stdout 2> $stderr
- exitcode=$?
- Log `_ 'Exit code: %s' "$exitcode"`
-- if [ -s $stdout ]
-+ if [ -s "$stdout" ]
- then
- LogAppend Stdout:
- cat $stdout >> $DBGFILE
- fi
-- if [ -s $stderr ]
-+ if [ -s "$stderr" ]
- then
- LogAppend Stderr:
- cat $stderr >> $DBGFILE
-@@ -425,13 +425,13 @@
- mtx_status_valid=0
- get_mtx_status() {
- test -n "$DEBUG" && set -x
-- if [ $mtx_status_valid -ne 0 ]; then
-+ if [ "$mtx_status_valid" -ne 0 ]; then
- return 0
- fi
- rm -f $mtx_status
- Run $MTX status > $mtx_status 2>&1
- status=$?
-- if [ $status -eq 0 ]; then
-+ if [ "$status" -eq 0 ]; then
- mtx_status_valid=1
- fi
-
-@@ -503,7 +503,7 @@
- fi
-
- #Use the current slot if it's empty and we don't know which slot is loaded'
-- if [ $loadedslot -eq -2 ]; then
-+ if [ "$loadedslot" -eq -2 ]; then
- set x `sed -n '
- {
- /^.*Storage Element '$currentslot':Empty/ {
-@@ -526,13 +526,13 @@
- ' < $mtx_status 2>& 1`
- shift # get rid of the "x"
- loadedslotx=$1
-- if [ ! -z $loadedslotx ]; then
-+ if [ ! -z "$loadedslotx" ]; then
- loadedslot=$loadedslotx
- fi
- fi
-
- #Use the first empty slot if we don't know which slot is loaded'
-- if [ $loadedslot -eq -2 ]; then
-+ if [ "$loadedslot" -eq -2 ]; then
- set x `sed -n '
- {
- /^.*Storage Element \([0-9][0-9]*\):Empty/ {
-@@ -606,27 +606,27 @@
- }
- ' < $mtx_status 2>&1 | grep -v "^${cleanslot}\$" | sort -n`
- slot_list=`echo $slot_list` # remove the newlines
-- if [ $firstslot -lt 0 -o $lastslot -lt 0 ]; then
-+ if [ "$firstslot" -lt 0 -o "$lastslot" -lt 0 ]; then
- last=$lastslot
- for slot in $slot_list; do
-- if [ $firstslot -lt 0 ]; then
-+ if [ "$firstslot" -lt 0 ]; then
- Log `_ 'SLOTLIST -> firstslot set to %s' "$slot"`
- firstslot=$slot
- fi
-- if [ $lastslot -lt 0 ]; then
-+ if [ "$lastslot" -lt 0 ]; then
- last=$slot
- fi
- done
-- if [ $lastslot -lt 0 -a $last -ge 0 ]; then
-+ if [ "$lastslot" -lt 0 -a "$last" -ge 0 ]; then
- Log `_ 'SLOTLIST -> lastslot set to %s' "$last"`
- lastslot=$last
- fi
-- if [ $firstslot -lt 0 ]; then
-+ if [ "$firstslot" -lt 0 ]; then
- Exit 2 \
- `_ '<none>'` \
- `_ 'cannot determine first slot'`
- return $? # in case we are internal
-- elif [ $lastslot -lt 0 ]; then
-+ elif [ "$lastslot" -lt 0 ]; then
- Exit 2 \
- `_ '<none>'` \
- `_ 'cannot determine last slot'`
-@@ -635,7 +635,7 @@
- fi
- amanda_slot_list=
- for slot in $slot_list; do
-- if [ $slot -ge $firstslot -a $slot -le $lastslot ]; then
-+ if [ "$slot" -ge "$firstslot" -a "$slot" -le "$lastslot" ]; then
- amanda_slot_list="$amanda_slot_list $slot"
- fi
- done
-@@ -671,7 +671,7 @@
- `_ 'Line %s malformed in %s: %s %s %s' "$line" "$labelfile" "$lbl" "$bc" "$junk"`
- return $? # in case we are internal
- fi
-- if [ $lbl = "$lbl_search" -o $bc = "$bc_search" ]; then
-+ if [ "$lbl" = "$lbl_search" -o "$bc" = "$bc_search" ]; then
- if [ $labelfile_entry_found -ne 0 ]; then
- Log `_ 'ERROR -> Duplicate entries: %s line %s' "$labelfile" "$line"`
- LogAppend `_ ' -> Remove %s and run "%s %s update"' "$labelfile" "$sbindir/amtape" "$config"`
-@@ -860,7 +860,7 @@
- Exit 2 \
- ` _ '<none>'` \
- "tapedev $rawtape is not a tape device."
--elif [ $tape = "/dev/null" -o `expr "$tape" : 'null:'` -eq 5 ]; then
-+elif [ "$tape" = "/dev/null" -o "`expr "$tape" : 'null:'`" -eq 5 ]; then
- Exit 2 \
- `_ '<none>'` \
- "tapedev ($tape) may not be the null device"
-@@ -871,7 +871,7 @@
- Exit 2 \
- `_ '<none>'` \
- "changerdev may not be empty"
--elif [ $TAPE = "/dev/null" ]; then
-+elif [ "$TAPE" = "/dev/null" ]; then
- Exit 2 \
- `_ '<none>'` \
- "changerdev ($TAPE) may not be the null device"
-@@ -884,19 +884,19 @@
- #### Set up the various config files.
-
- conf_match=`expr "$changerfile" : .\*\.conf\$`
--if [ $conf_match -ge 6 ]; then
-+if [ "$conf_match" -ge 6 ]; then
- configfile=$changerfile
- changerfile=`echo $changerfile | sed 's/.conf$//g'`
- else
- configfile=$changerfile.conf
- fi
-
--if [ ! -e $configfile ]; then
-+if [ ! -e "$configfile" ]; then
- Exit 2 \
- `_ '<none>'` \
- "configuration file \"$configfile\" doesn't exist"
- fi
--if [ ! -f $configfile ]; then
-+if [ ! -f "$configfile" ]; then
- Exit 2 \
- `_ '<none>'` \
- "configuration file \"$configfile\" is not a file"
-@@ -907,10 +907,10 @@
- slotfile=$changerfile-slot
- labelfile=$changerfile-barcodes
- slotinfofile=""
--[ ! -s $cleanfile ] && echo 0 > $cleanfile
--[ ! -s $accessfile ] && echo 0 > $accessfile
--[ ! -s $slotfile ] && echo -1 > $slotfile
--[ ! -f $labelfile ] && > $labelfile
-+[ ! -s "$cleanfile" ] && echo 0 > $cleanfile
-+[ ! -s "$accessfile" ] && echo 0 > $accessfile
-+[ ! -s "$slotfile" ] && echo -1 > $slotfile
-+[ ! -f "$labelfile" ] && > $labelfile
- cleancount=`cat $cleanfile`
- accesscount=`cat $accessfile`
-
-@@ -957,7 +957,7 @@
-
- # Get DBGFILE set if it is not already.
-
--if [ $DBGFILE = /dev/null ]; then
-+if [ "$DBGFILE" = /dev/null ]; then
- if [ -d "$DBGDIR" ]; then
- DBGFILE=$DBGDIR/changer.debug.drive$driveslot
- else
-@@ -1037,9 +1037,9 @@
-
- Log `_ "Config info:"`
- for var in $varlist; do
-- if [ $var = "OFFLINE_BEFORE_UNLOAD" ]; then
-+ if [ "$var" = "OFFLINE_BEFORE_UNLOAD" ]; then
- continue # old name
-- elif [ $var = "AUTOCLEAN" ]; then
-+ elif [ "$var" = "AUTOCLEAN" ]; then
- continue # old name
- elif [ $var = "slotinfofile" ]; then
- continue # not numeric
-@@ -1062,12 +1062,12 @@
-
- # Run the rest of the config file sanity checks.
-
--if [ $firstslot -gt $lastslot ]; then
-+if [ "$firstslot" -gt "$lastslot" ]; then
- Exit 2 \
- `_ '<none>'` \
- `_ 'firstslot (%s) greater than lastslot (%s) in %s' "$firstslot" "$lastslot" "$configfile"`
- fi
--if [ $autoclean -ne 0 -a $cleanslot -lt 0 ]; then
-+if [ "$autoclean" -ne 0 -a "$cleanslot" -lt 0 ]; then
- Exit 2 \
- `_ '<none>'` \
- `_ 'autoclean set but cleanslot not valid (%s)' "$cleanslot"`
-@@ -1077,10 +1077,10 @@
-
- currentslot=`cat $slotfile`
- if IsNumeric "$currentslot" ; then
-- if [ $currentslot -lt $firstslot ]; then
-+ if [ "$currentslot" -lt "$firstslot" ]; then
- Log `_ 'SETUP -> current slot %s less than %s ... resetting to %s' "$currentslot" "$firstslot" "$firstslot"`
- currentslot=$firstslot
-- elif [ $currentslot -gt $lastslot ]; then
-+ elif [ "$currentslot" -gt "$lastslot" ]; then
- Log `_ 'SETUP -> current slot %s greater than %s ... resetting to %s' "$currentslot" "$lastslot" "$lastslot"`
- currentslot=$lastslot
- fi
-@@ -1093,19 +1093,19 @@
- first_slot_in_list=-1
- next_slot_after_current=-1
- for slot in $slot_list; do
-- if [ $first_slot_in_list -lt 0 ]; then
-+ if [ "$first_slot_in_list" -lt 0 ]; then
- first_slot_in_list=$slot # in case $firstslot is missing
- fi
-- if [ $slot -eq $currentslot ]; then
-+ if [ "$slot" -eq "$currentslot" ]; then
- found_current=1
- break
-- elif [ $slot -gt $currentslot ]; then
-+ elif [ "$slot" -gt "$currentslot" ]; then
- next_slot_after_current=$slot # $currentslot is missing
- break
- fi
- done
--if [ $found_current -eq 0 ]; then
-- if [ $next_slot_after_current -lt 0 ]; then
-+if [ "$found_current" -eq 0 ]; then
-+ if [ "$next_slot_after_current" -lt 0 ]; then
- new_currentslot=$first_slot_in_list
- else
- new_currentslot=$next_slot_after_current
-@@ -1124,9 +1124,9 @@
- test -n "$DEBUG" && set -x
- Log `_ 'EJECT -> ejecting tape from %s' "$tape"`
- get_loaded_info
-- if [ $loadedslot -gt 0 ]; then
-+ if [ "$loadedslot" -gt 0 ]; then
- Log `_ 'EJECT -> moving tape from drive %s to storage slot %s' "$driveslot" "$loadedslot"`
-- if [ $offline_before_unload -ne 0 ]; then
-+ if [ "$offline_before_unload" -ne 0 ]; then
- Run try_eject_device $tape
- fi
- sleep $unloadpause
-@@ -1134,7 +1134,7 @@
- status=$?
- Log `_ ' -> status %s, result "%s"' "$status" "$result"`
- mtx_status_valid=0
-- if [ $status -ne 0 ]; then
-+ if [ "$status" -ne 0 ]; then
- answer="$result"
- code=2
- else
-@@ -1213,7 +1213,7 @@
- prev_slot=$1
- shift
- while [ $# -gt 0 ]; do
-- if [ $1 -eq $find_slot ]; then
-+ if [ "$1" -eq "$find_slot" ]; then
- break
- fi
- prev_slot=$1
-@@ -1242,15 +1242,15 @@
- # If the desired slot is already loaded, we are done. Only update
- # current slot if this is not the cleaning slot.
- get_loaded_info
-- if [ $loadslot = $loadedslot ]; then
-- if [ $loadslot -ne $cleanslot ]; then
-+ if [ "$loadslot" = "$loadedslot" ]; then
-+ if [ "$loadslot" -ne "$cleanslot" ]; then
- rm -f $slotfile
- echo $loadslot > $slotfile
- fi
- Exit 0 "$loadedslot" "$rawtape"
- return $? # in case we are internal
- fi
-- if [ $loadedslot -eq -2 ]; then
-+ if [ "$loadedslot" -eq -2 ]; then
- Exit 0 "$loadedslot" "$rawtape"
- return $? # in case we are internal
- fi
-@@ -1258,20 +1258,20 @@
- # If we are loading the cleaning tape, bump the cleaning count
- # and reset the access count. Otherwise, bump the access count
- # and see if it is time to do a cleaning.
-- if [ $loadslot = $cleanslot ]; then
-+ if [ "$loadslot" = "$cleanslot" ]; then
- rm -f $cleanfile $accessfile
- expr $cleancount + 1 > $cleanfile
- echo 0 > $accessfile
- else
- rm -f $accessfile
- expr $accesscount + 1 > $accessfile
-- if [ $autoclean -ne 0 -a $accesscount -gt $autocleancount ]
-+ if [ "$autoclean" -ne 0 -a "$accesscount" -gt "$autocleancount" ]
- then
- internal_call=`expr $internal_call + 1`
- loadslot clean > /dev/null 2>&1
- status=$?
- internal_call=`expr $internal_call - 1`
-- if [ $status -ne 0 ]; then
-+ if [ "$status" -ne 0 ]; then
- Exit $status "$loadslot" "$exit_answer"
- return $? # in case we are internal
- fi
-@@ -1291,14 +1291,14 @@
- eject > /dev/null 2>&1
- status=$?
- internal_call=`expr $internal_call - 1`
-- if [ $status -gt 1 ]; then
-+ if [ "$status" -gt 1 ]; then
- Exit $status "$exit_slot" "$exit_answer"
- return $? # in case we are internal
- fi
-
- # If we were doing an "advance", we are done.
-- if [ $whichslot = advance ]; then
-- if [ $loadslot -ne $cleanslot ]; then
-+ if [ "$whichslot" = "advance" ]; then
-+ if [ "$loadslot" -ne "$cleanslot" ]; then
- rm -f $slotfile
- echo $loadslot > $slotfile
- fi
-@@ -1312,7 +1312,7 @@
- status=$?
- Log `_ ' -> status %s, result "%s"' "$status" "$result"`
- mtx_status_valid=0
-- if [ $status -ne 0 ]; then
-+ if [ "$status" -ne 0 ]; then
- Exit 2 "$loadslot" "$result"
- return $? # in case we are internal
- fi
-@@ -1322,7 +1322,7 @@
- # for "long enough" (as determined empirically by the user),
- # then return success.
- ###
-- if [ $loadslot -eq $cleanslot ]; then
-+ if [ "$loadslot" -eq "$cleanslot" ]; then
- Run sleep $cleancycle
- Exit 0 "$loadslot" "$rawtape"
- return $? # in case we are internal
-@@ -1334,7 +1334,7 @@
- waittime=0
- ready=0
- sleep $initial_poll_delay
-- while [ $waittime -lt $max_drive_wait ]; do
-+ while [ "$waittime" -lt "$max_drive_wait" ]; do
- amdevcheck_status $tape
- if [ $? -eq 0 ]; then
- ready=1
-@@ -1343,12 +1343,12 @@
- sleep $poll_drive_ready
- waittime=`expr $waittime + $poll_drive_ready`
- done
-- if [ $ready -eq 0 ]; then
-+ if [ "$ready" -eq 0 ]; then
- Exit 2 "$loadslot" `_ 'Drive not ready after %s seconds: %s' "$max_drive_wait" "$amdevcheck_message"`
- return $? # in case we are internal
- fi
-
-- if [ $loadslot -ne $cleanslot ]; then
-+ if [ "$loadslot" -ne "$cleanslot" ]; then
- rm -f $slotfile
- echo $loadslot > $slotfile
- fi
-@@ -1379,11 +1379,11 @@
- # can search based on barcodes.
- ###
- reader=
-- if [ $havereader -eq 1 ]; then
-+ if [ "$havereader" -eq 1 ]; then
- reader=1
- fi
-
-- if [ $currentslot -lt $firstslot -o $currentslot -gt $lastslot ]; then
-+ if [ "$currentslot" -lt "$firstslot" -o "$currentslot" -gt "$lastslot" ]; then
- currentslot=$firstslot # what "current" will get
- fi
- numslots=`expr $lastslot - $firstslot + 1`
-@@ -1404,12 +1404,12 @@
- fi
- tapelabel=$1
- get_loaded_info
-- if [ $loadedslot -lt 0 ]; then
-+ if [ "$loadedslot" -lt 0 ]; then
- Exit 1 `_ '<none>'` `_ 'No tape currently loaded'`
- return $? # in case we are internal
- fi
- record_label_in_slot "$tapelabel" "$loadedslot"
-- if [ $havereader -eq 0 ]; then
-+ if [ "$havereader" -eq 0 ]; then
- Exit 0 "$loadedslot" "$rawtape" # that's all we needed
- return $? # in case we are internal
- fi
-@@ -1419,7 +1419,7 @@
- fi
- Log `_ 'LABEL -> Adding label "%s" with barcode "%s" for slot %s into %s' "$tapelabel" "$loadedbarcode" "$loadedslot" "$labelfile"`
- read_labelfile "$tapelabel" "$loadedbarcode" < $labelfile
-- if [ $labelfile_entry_found -ne 0 ]; then
-+ if [ "$labelfile_entry_found" -ne 0 ]; then
- lf_val=
- if [ "$labelfile_barcode" != "$loadedbarcode" ]; then
- lf_type=label
-@@ -1465,13 +1465,13 @@
- return $? # in case we are internal
- fi
- tapelabel=$1
-- if [ $havereader -eq 0 ]; then
-+ if [ "$havereader" -eq 0 ]; then
- Exit 2 `_ '<none>'` `_ 'Not configured with barcode reader'`
- return $? # in case we are internal
- fi
- Log `_ 'SEARCH -> Hunting for label "%s"' "$tapelabel"`
- read_labelfile "$tapelabel" "" < $labelfile
-- if [ $labelfile_entry_found -eq 0 ]; then
-+ if [ "$labelfile_entry_found" -eq 0 ]; then
- LogAppend `_ ' -> !!! label "%s" not found in %s !!!' "$tapelabel" "$labelfile"`
- LogAppend `_ ' -> Remove %s and run "%s %s update"' "$labelfile" "$sbindir/amtape" "$config"`
- Exit 2 \