# 1 : means colour 1
# 2 : means colour 2
# [...]
+# INVERT : invert the output for image viewing (for white backgrounds)
+# 0 : do not invert (default)
+# 1 : invert
SERVER="$1"
SELECTOR="$2"
PORT="$3"
MODE="$4"
+PREFIX="[0-9hIg+]"
+
# Defaults:
[ "$PORT" = "" ] && PORT=70
if [ "$MODE" = "" ]; then
# "" or dir-like selector? -> 1 ; if not -> 0
echo "$SELECTOR" | grep "/$" >/dev/null && MODE=1 || MODE=0
[ "$SELECTOR" = "" ] && MODE=1
+
+ # check explicit modes:
+ if echo "$SELECTOR" | grep "^/\($PREFIX\|download\)/" >/dev/null; then
+ MODE="`echo "$SELECTOR" | cut -f2 -d/`"
+ SELECTOR="`echo "$SELECTOR" | sed 's:^/[^/]*/::'`"
+ fi
fi
if [ "$SERVER" = "" ]; then
fi
fi
-PREFIX="[0-9hIg]"
+# Invert image viewer
+if [ "$INVERT" = 1 ]; then
+ INVERT="--invert"
+else
+ INVERT=
+fi
# $0 [FILE] (dialog)
# Display a gopher menu for the given resource
--menu "$title" \
"$LINES" "$COLUMNS" "$LINES" \
--file "$tmp.menu" 2>"$tmp.choice"
- clear
val=$?
+ clear
+
if [ $val = 3 ]; then
CHOICE=""
elif [ $val = 1 ]; then
goto_sel="`getsel "$tmp" $index 2`"
goto_port="`getsel "$tmp" $index 4`"
goto_mode="`getsel "$tmp" $index 1 | cut -c1`"
+ echo "Digging to [$goto_server:$goto_port] [$goto_sel]..."
sh "$0" "$goto_server" "$goto_sel" "$goto_port" "$goto_mode"
[ $? = 255 ] && exit 255 # force-quit
fi
g|I)
if img2aa --help >/dev/null 2>&1; then
img2aa --mode=DITHERING \
+ $INVERT \
--width=74 "$tmp" | less
elif jp2a -h >/dev/null 2>&1; then
if convert -h >/dev/null 2>&1; then
convert "$tmp" "$tmp.jpg"
jp2a --border --chars=" .-+=o8#"\
+ $INVERT \
--width=74 "$tmp.jpg" | less
else
echo "required program not found to view images: convert" \