diff --git a/dsv/dsv b/dsv/dsv index 7c86b6a..13e792a 100755 --- a/dsv/dsv +++ b/dsv/dsv @@ -2,8 +2,8 @@ # # dsv - Improved data sheet viewer # -# Written 2010-2013 by Werner Almesberger -# Copyright 2010-2013 Werner Almesberger +# Written 2010-2014 by Werner Almesberger +# Copyright 2010-2014 Werner Almesberger # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -68,13 +68,20 @@ flush() ds=$nm-`basename "$url"` mkdir -p $DSV_DIR if [ ! -r "$DSV_DIR/$ds" ]; then - inside=${url#*.[Zz][Ii][Pp] } + if [ "$zip" ]; then + inside=$zip + zip=$ds.zip + else + inside=${url#*.[Zz][Ii][Pp] } + fi if [ "$inside" = "$url" ]; then do_wget -O "$DSV_DIR/$ds" "$url" # @@@ should handle error else - url=${url%`echo x"$inside" | sed 's/./?/g'`} - zip=$nm-`basename "$url"` + if [ -z "$zip" ]; then + url=${url%`echo x"$inside" | sed 's/./?/g'`} + zip=$nm-`basename "$url"` + fi if [ ! -r "$DSV_DIR/$zip" ]; then do_wget -O "$DSV_DIR/$zip" "$url" # @@@ should handle error @@ -90,6 +97,7 @@ flush() name= alias= url= + zip= } @@ -100,6 +108,7 @@ set_value() name="\"$value\"";; A:|a:) alias="$alias \"$value\"";; D:|d:) url=$value;; + Z:|z:) zip=$value;; "") ;; # first iteration *) echo "unrecognized tag \"$tag\"" 2>&1