+ else
+ # cases besides darwin OS (for macs).
+ extra_flags=
+ if [ "$OS" = "Windows_NT" ]; then
+ # special case for windows.
+ extra_flags=-W
+ ps | head -1
+ for curr in $p; do
+ ps $extra_flags | grep "^ *$curr"
+ done
+ else
+ # normal OSes can handle a nice simple query.
+ ps wu $p
+ fi
+ fi
+ fi
+ }
+
+ # an unfortunately similarly named function to the above 'ps' as in process
+ # methods, but this 'ps' stands for postscript. this takes a postscript file
+ # and converts it into pcl3 printer language and then ships it to the printer.
+ # this mostly makes sense for an environment where one's default printer is
+ # pcl. if the input postscript causes ghostscript to bomb out, there has been
+ # some good success running ps2ps on the input file and using the cleaned
+ # postscript file for printing.
+ function ps2pcl2lpr() {
+ for $i in $*; do
+ gs -sDEVICE=pcl3 -sOutputFile=- -sPAPERSIZE=letter "$i" | lpr -l
+ done
+ }
+
+ function fix_alsa() {
+ sudo /etc/init.d/alsasound restart
+ }
+
+ # switches from a /X/path form to an X:/ form.
+ function msys_to_dos_path() {
+ # we always remove dos slashes in favor of forward slashes.
+ echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\/\([a-zA-Z]\)\/\(.*\)/\1:\/\2/'
+ }
+
+ # switches from an X:/ form to an /X/path form.
+ function dos_to_msys_path() {
+ # we always remove dos slashes in favor of forward slashes.
+ echo "$1" | sed -e 's/\\/\//g' | sed -e 's/\([a-zA-Z]\):\/\(.*\)/\/\1\/\2/'
+ }
+
+ # su function: makes su perform a login.
+ # for some OSes, this transfers the X authority information to the new login.
+ function su() {
+ # decide if we think this is debian or ubuntu or a variant.
+ DEBIAN_LIKE=$(if [ ! -z "$(grep -i debian /etc/issue)" \
+ -o ! -z "$(grep -i ubuntu /etc/issue)" ]; then echo 1; else echo 0; fi)
+
+ if [ $DEBIAN_LIKE -eq 1 ]; then
+ # debian currently requires the full version which imports X authority
+ # information for su.
+
+ # get the x authority info for our current user.
+ source $FEISTY_MEOW_SCRIPTS/x_win/get_x_auth.sh
+
+ if [ -z "$X_auth_info" ]; then
+ # if there's no authentication info to pass along, we just do a normal su.
+ /bin/su -l $*