Prevent extraneous shifting

zsh complains about nothing to shift. this occurs whenever `--` is passed. only shift as necessary.

replaces #129