#!/bin/sh function op { case "$1" in (*.pdf) $fork epdfview "$1" ;; (*.chm) $fork xchm "$1" ;; (*.jpg|*.png|*.gif) $fork gqview "$1" ;; (*.html|*.htm) $fork firefox "$1" ;; (*.doc|*.odt) $fork swriter "$1" ;; (*.mpg|*.avi|*.mov|*.mpeg|*.mp4|*.flv) mplayer "$1" ;; (*.c|*.cc|*.cpp|*.h|*.hh|*.hpp) gvim --remote "$1" ;; (*) echo Unknown file type ;; esac } function et { case "$1" in (*.html|*.htm) gvim --remote "$1" ;; (*) op "$1" ;; esac } function vw { case "$1" in (*) op "$1" ;; esac } if which f > /dev/null 2>&1; then fork=f else fork="" fi prog_name=$(basename "$0") case $prog_name in (op|vw|et) ;; (*) echo Unrecognized prog_name exit 1 ;; esac while [ "$1" ]; do $prog_name "$1" shift done