--- /dev/null
+#!/bin/sh -eu
+# When invoked with a relative filename for the file “default.do” as
+# an argument, redo-whichdo must not output that filename as possible
+# dofile.
+
+default_dofile="default.do"
+
+whichdo_dofiles=$(
+ redo-whichdo "${default_dofile}" \
+ |tr '\0' '\n'
+)
+
+for whichdo_dofile in ${whichdo_dofiles}; do
+ case "${whichdo_dofile}" in
+ "${PWD}/${default_dofile}")
+ >&2 printf 'redo-whichdo outputs that this file is its own dofile: %s\n' \
+ "${whichdo_dofile}"
+ exit 1
+ ;;
+ esac
+done