+# Function verifying arguments ------------------------------
+
+getopt(){ _arg=noarg
+ trace 'getopt()' "$@" # (DEBUG)
+
+ case "$1" in
+ '' ) echo 1 ;;
+ -[hH]|--help ) echo _help _exit ;;
+ --debug ) echo _debug ;;
+ --nopkg ) echo _nopkg ;;
+ -z|--zip ) echo _zip ;;
+ -d ) echo _CVSROOT 2 ; _arg="$2" ;;
+ -* ) warn "Error: Unknown option \"$1\"" ; return 1 ;;
+ * ) echo OTHER ;;
+ esac
+
+ test 'x' != "x$_arg"
+}
+
+# Working start ---------------------------------------------
+
+# Show arguments in one line (DEBUG)
+case '--debug' in "$1"|"$3") false ;; * ) true ;; esac || {
+ test 'x--debug' = "x$1" && shift ; __debug=on ; trace 'Args ' "$@"
+}
+
+# Parsing
+while [ $# -gt 0 ] ; do
+ chs="` getopt "$@" `" || err "Syntax error with '$1'"
+ trace '$chs ' "$chs" # (DEBUG)
+
+ for ch in $chs ; do
+ case "$ch" in
+ [1-3] ) shift $ch ;;
+ _exit ) exit ;;
+ _help ) usage ;;
+
+ _CVSROOT) CVSROOT="$2" ;;
+
+ _* ) shift ; eval "_$ch"=on ;;
+ * ) break 2 ;;
+ esac
+ done
+done
+
+# No argument
+if [ $# -eq 0 ] ; then usage ; exit ; fi
+
+# Archiver check --------------------------------------------
+
+if [ -z "$__zip" ]
+then
+ which tar || err "tar not found"
+ which gzip || err "gzip not found"
+else
+ which zip || err "zip not found"
+fi > /dev/null
+
+# Argument check --------------------------------------------
+
+rel="$1"