--- fvwm-2.5.10/bin/fvwm-bug.in.alt-fvwmbug-tmp 2004-03-19 17:45:59 +0300 +++ fvwm-2.5.10/bin/fvwm-bug.in 2004-04-14 18:27:34 +0400 @@ -51,9 +51,24 @@ done PATH=/bin:/usr/bin:/usr/local/bin:$PATH export PATH -: ${EDITOR=emacs} +# If they don't have a preferred editor set, then use +if [ -n "$VISUAL" ]; then + EDIT="$VISUAL" +elif [ -n "$EDITOR" ]; then + EDIT="$EDITOR" +elif [ -x /bin/vitmp ]; then + EDIT=vitmp +elif [ -x /usr/bin/vim ]; then + EDIT=vim +elif [ -x /bin/vi ]; then + EDIT=vi +else + echo "${0##*/}: No default editor found: attempting to use vi" >&2 + EDIT=vi +fi -TEMP=`mktemp -q "/tmp/fvwm-bug.XXXXXX"` +TEMP=`mktemp -t fvwm-bug.XXXXXXXXXX` || exit +TEMPx=`mktemp -t fvwm-bug.XXXXXXXXXX` || { rm -f -- "$TEMP"; exit 1; } # Figure out how to echo a string without a trailing newline N=`echo 'hi there\c'` @@ -62,15 +77,21 @@ case "$N" in *) n= c='\c' ;; esac -trap 'rm -f $TEMP $TEMP.x; exit 1' 1 2 3 13 15 -trap 'rm -f $TEMP $TEMP.x' 0 +exit_handler() +{ + local rc=$? + trap '' EXIT + rm -f -- "$TEMP" "$TEMPx" + exit $rc +} +trap exit_handler EXIT HUP INT PIPE TERM QUIT # Who is mail from? : ${USER=${LOGNAME-`whoami`}} # Who is mail to? if test x"$address" = x; then - LOCAL=@LOCAL_BUGADDR@ + LOCAL='@LOCAL_BUGADDR@' WORKERS=fvwm-workers@fvwm.org if test "$LOCAL"; then @@ -79,14 +100,14 @@ if test x"$address" = x; then echo $n "Send report to (l)ocal, (w)orkers, (b)oth? " $c read ans case "$ans" in - l*|L*) BUGADDR=$LOCAL;; - f*|F*|w*|W*) BUGADDR=$WORKERS;; - b*|B*) BUGADDR=$LOCAL,$WORKERS;; - *) echo "[Defaulting to LOCAL]"; BUGADDR=$LOCAL;; + l*|L*) BUGADDR="$LOCAL";; + f*|F*|w*|W*) BUGADDR="$WORKERS";; + b*|B*) BUGADDR="$LOCAL,$WORKERS";; + *) echo "[Defaulting to LOCAL]"; BUGADDR="$LOCAL";; esac fi else - BUGADDR=$address + BUGADDR="$address" fi UN= @@ -112,7 +133,7 @@ FVWM_DATADIR=@FVWM_DATADIR@ FVWM_MODULEDIR=@FVWM_MODULEDIR@ -cat > $TEMP < "$TEMP" <> $HOME/dead.fvwm-bug +${RMAIL} "$BUGADDR" < "$TEMP" || { + cat "$TEMP" >> "$HOME/dead.fvwm-bug" echo "$0: mail failed: report saved in $HOME/dead.fvwm-bug" >&2 }