dot/profile: Persuade `rsync' not to do silly things to arguments.
[profile] / dot / profile
index 2686194..93c5421 100644 (file)
@@ -27,7 +27,6 @@ __mdw_addto () {
     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:} ;;
@@ -36,8 +35,8 @@ __mdw_addto () {
     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
 }
@@ -58,6 +57,17 @@ __mdw_setconf () {
   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.
 
@@ -99,6 +109,12 @@ done
 ###--------------------------------------------------------------------------
 ### 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) ;;
@@ -186,6 +202,9 @@ if __mdw_programp global; then
   export LESSGLOBALTAGS
 fi
 
+## Get Debian `groff' to produce control sequences rather than overstriking.
+GROFF_SGR=t; export GROFF_SGR
+
 ###--------------------------------------------------------------------------
 ### Miscellaneous things.
 
@@ -246,6 +265,9 @@ unset b
 __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
 
@@ -266,15 +288,35 @@ export XUSERFILESEARCHPATH
 OOO_FORCE_DESKTOP=gnome; export OOO_FORCE_DESKTOP
 
 ## Hack Qt-ish things to be unstoatly.
-QT_STYLE_OVERRIDE=gtk2; export QT_STYLE_OVERRIDE
+##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 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