case "$new:" in *:$i:*) continue;; esac
if ! [ -d $i ]; then continue; fi
case "$val" in
- "") val=$i change=t; continue ;;
$i) continue ;;
*:$i:*) val=${val%%:$i:*}:${val#*:$i:} ;;
$i:*) val=${val#$i:} ;;
new=$new:$i change=t
done
case $dir in
- l) val=${new#:}:$val ;;
- r) val=$val$new ;;
+ l) val=${new#:}${val:+:$val} ;;
+ r) val=${val:+$val:}${new#:} ;;
esac
case $change in t) eval $var=\$val ;; esac
}
fi
}
+## __mdw_export_if_defined VAR ...
+##
+## If VARs are defined, then export them.
+__mdw_export_if_defined () {
+ local var t
+ for var in "$@"; do
+ eval t=\${$var+t}
+ case $t in t) export $var ;; esac
+ done
+}
+
###--------------------------------------------------------------------------
### Other preliminaries.
###--------------------------------------------------------------------------
### Some other preliminaries.
+## Set a per-process memory limit. It's much less common for a process to
+## need a lot of memory for a legitimate reason than for it to be a memory
+## leak or some other bug that's going to cause swap death for no good
+## reason.
+ulimit -Sv $(mdw-conf memory-limit 4194303)
+
## Establish a temporary directory.
case ${TMPDIR+t} in
t) ;;
export LESSGLOBALTAGS
fi
+## Get Debian `groff' to produce control sequences rather than overstriking.
+GROFF_SGR=t; export GROFF_SGR
+
###--------------------------------------------------------------------------
### Miscellaneous things.
__mdw_setconf __MDW_ROOTLY rootly
BECOME="--preserve-environment"; export BECOME
+## `rsync' configuration.
+RSYNC_PROTECT_ARGS=1; export RSYNC_PROTECT_ARGS
+
## It's useful to see the little sigils in `ls'.
case ${LS_OPTIONS+t} in t) ;; *) LS_OPTIONS="-F"; export LS_OPTIONS; esac
OOO_FORCE_DESKTOP=gnome; export OOO_FORCE_DESKTOP
## Hack Qt-ish things to be unstoatly.
-QT_QPA_PLATFORMTHEME=gtk2; export QT_QPA_PLATFORMTHEME
+##QT_QPA_PLATFORMTHEME=gtk2; export QT_QPA_PLATFORMTHEME
+QT_AUTO_SCREEN_SCALE_FACTOR=0; export QT_AUTO_SCREEN_SCALE_FACTOR
## Use X11 input method (including compose key sequences) everywhere.
GTK_IM_MODULE=xim; export GTK_IM_MODULE
QT_IM_MODULE=xim; export QT_IM_MODULE
+## Don't hide scrollbars.
+GTK_OVERLAY_SCROLLING=0; export GTK_OVERLAY_SCROLLING
+
## Rust Cargo things.
CARGO_HOME=$HOME/.cache/cargo; export CARGO_HOME
## Configure `ps'.
PS_PERSONALITY=gnu; export PS_PERSONALITY
+## Configure Debian building.
+DEB_BUILD_OPTIONS="parallel=$(mdw-conf make-parallel 4)"
+export DEB_BUILD_OPTIONS
+
+## Turn on useful colouring.
+if __mdw_programp dircolors; then eval $(dircolors -b "$HOME/.dircolors")
+else unset LS_COLORS; fi
+export GREP_COLORS="mt=01;31:ms=01;31:mc=031;31:fn=36:ln=36:bn=36:se=34"
+export DIFF_COLORS="hd=1:ln=36:ad=32:de=31"
+
## Turn off angry fruit salad error messages from things.
DPKG_COLORS=never; export DPKG_COLORS
GCC_COLORS=; export GCC_COLORS
CCC_OVERRIDE_OPTIONS="#^-fno-color-diagnostics"; export CCC_OVERRIDE_OPTIONS
+## Local library directories.
+__mdw_addto PERLLIB l $HOME/lib/perl; __mdw_export_if_defined PERLLIB
+__mdw_addto PYTHONPATH l $HOME/lib/python; __mdw_export_if_defined PYTHONPATH
+
## Disable core dumps.
ulimit -S -c 0