--- trunk/core/include/mozilla.sminc 2009/07/12 16:18:50 2860 +++ trunk/include/mozilla.sminc 2020/09/16 10:26:25 33316 @@ -69,23 +69,51 @@ msetpref() { - : ${MOZILLA_PREF_CONFIG="magellan.js"} - : ${MOZILLA_PREF_PATH="/usr/$(mlibdir)/mozilla-firefox/defaults/pref"} - local pref - local value + : ${MOZILLA_PREF_CONFIG="01-magellan.js"} + case ${PNAME} in + *firefox*) : ${MOZILLA_PREF_PATH="/usr/$(mlibdir)/${PNAME}/browser/defaults/preferences"} ;; + *thunderbird*) : ${MOZILLA_PREF_PATH="/usr/$(mlibdir)/${PNAME}/defaults/preferences"} ;; + esac + local pref="$1" + local value="$2" [[ -z ${pref} ]] && die "msetpref(): no \$pref given" if [[ ${pref} = --init ]] then # only create an empty config + if [[ ! -d ${BINDIR}/${MOZILLA_PREF_PATH} ]] + then + install -d ${BINDIR}/${MOZILLA_PREF_PATH} || die + fi :> ${BINDIR}/${MOZILLA_PREF_PATH}/${MOZILLA_PREF_CONFIG} || die else # write a pref value [[ -z ${value} ]] && die "msetpref(): no \$value given" + # respect NULL values + [[ ${value} = NULL ]] && value="" + + # handle escaped strings: + + # check if value is an integer -> no escaping + #if printf "%d" ${value} > /dev/null 2>&1 + # the better way (only use one! bracket!!) + if [ "${value}" -eq "${value}" ] > /dev/null 2>&1 + then + value="${value}" + + # check for "false" or "true" -> no escaping + elif [[ ${value} = false ]] || [[ ${value} = true ]] + then + value="${value}" + + # all other values needs escaping + else + value="\"${value}\"" + fi # eg: # pref("general.useragent.vendor","Magellan-Linux"); - echo "pref(\"${pref}\",\"${value}\");" >> ${BINDIR}/${MOZILLA_PREF_PATH}/${MOZILLA_PREF_CONFIG} || die + echo "pref(\"${pref}\", ${value});" >> ${BINDIR}/${MOZILLA_PREF_PATH}/${MOZILLA_PREF_CONFIG} || die fi }