/usr/lib/w3m/cgi-bin/w3mdict.cgi is in w3m 0.5.3-34+deb9u1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #!/bin/sh
# w3mdict.cgi - A dictd dictionary query cgi for w3m
#
# REQUIREMENTS:
# + dict client software
# + an address of a dict server, for variable ${DICT_SERVER}
# + a name of a favorite database on that server, for variable
# ${FAVORITE_DATABASE}
# OPTIONALLY:
# + locally install a dict server (eg. dictd) and a collection
# of dict databases (eg. wordnet, aka "wn")
DICT_SERVER="localhost"
FAVORITE_DATABASE="wn"
RETURN_MESSAGE="\n\nPress 'B' to return to the previous page."
printf "Content-type: text/plain\n"
type dict \
|| {
# Originally, we inconsiderately failed silently ...
# printf "W3m-control: BACK\n\n"
printf "\n\nERROR: dict client software not found${RETURN_MESSAGE}"
exit
}
# First, we check only our best and favorite database. This is most
# likely to give us a best defintion, and avoids displaying a long and
# cluttered page with entries from many databases.
dict --host "${DICT_SERVER}" \
--database "${FAVORITE_DATABASE}" \
"${QUERY_STRING}" 2>&1 \
&& {
printf "${RETURN_MESSAGE}"
} \
|| {
# The initial attempt failed, so let's search ALL databases
# available on the server.
dict --host "${DICT_SERVER}" \
"${QUERY_STRING}" 2>&1 \
&& {
printf "${RETURN_MESSAGE}"
} \
|| {
# No defintions were found in any of the server's databases, so
# let's return to the favorite database in order to retrieve its
# guess of what we meant to type. Originally, for this case, we
# pushed the user's default action to be entering another word for
# a dict defintion, so the print command was:
# printf "W3m-control: DICT_WORD\n\n"
# Now, we need only print a blank line to separate the cgi header
# from the page content.
printf "\n"
dict --host "${DICT_SERVER}" \
--database "${FAVORITE_DATABASE}" \
"${QUERY_STRING}" 2>&1
printf "${RETURN_MESSAGE}"
}
}
|