# Both of these should fail.
rm -ir z < in > out 2>&1 || fail=1
-# The following loses with Tru64's sed, since that sed mistakenly
-# tacks a newline onto the end of the file.
-tr '?' '\n' < out |sed 's/^ //' |sort > o2
+
+# Given input like `rm: ...? rm: ...? ' (no trailing newline),
+# the `head...' part of the pipeline below removes the trailing space, so
+# that sed doesn't have to deal with a line lacking a terminating newline.
+# This avoids a bug whereby some vendor-provided (Tru64) versions of sed
+# would mistakenly tack a newline onto the end of the output.
+tr '?' '\n' < out | head --bytes=-1 | sed 's/^ //' |sort > o2
mv o2 out
sort <<EOF > exp || fail=1
fail=0
rm -ir d < in > out 2>&1 || fail=1
-# The following loses with Tru64's sed, since that sed mistakenly
-# tacks a newline onto the end of the file.
-tr '?' '\n' < out |sed 's/^ //' > o2
+
+# Given input like `rm: ...? rm: ...? ' (no trailing newline),
+# the `head...' part of the pipeline below removes the trailing space, so
+# that sed doesn't have to deal with a line lacking a terminating newline.
+# This avoids a bug whereby some vendor-provided (Tru64) versions of sed
+# would mistakenly tack a newline onto the end of the output.
+tr '?' '\n' < out | head --bytes=-1 | sed 's/^ //' > o2
mv o2 out
# Make sure it's been removed.