Allow `dlog_init` to print multiple errors by making `errmsg` an array.
dlog_init() {
local __oldumask
local ret=0
- local errmsg=
+ local errmsgs=()
[ -z "${stdloglvl-}" ] && stdloglvl=4
[ -z "${sysloglvl-}" ] && sysloglvl=0
[ -z "${kmsgloglvl-}" ] && kmsgloglvl=0
# We cannot log to file, so turn this facility off.
fileloglvl=0
ret=1
- errmsg="'$logfile' is not a writable file"
+ errmsgs+=("'$logfile' is not a writable file")
fi
fi
fi
kmsgloglvl=$sysloglvl
sysloglvl=0
ret=1
- errmsg="No '/dev/log' or 'logger' included for syslog logging"
+ errmsgs+=("No '/dev/log' or 'logger' included for syslog logging")
fi
fi
dfatal() { :; }
fi
- [ -n "$errmsg" ] && derror "$errmsg"
+ for errmsg in "${errmsgs[@]}"; do
+ derror "$errmsg"
+ done
return $ret
}