summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sort.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/sort.c b/src/sort.c
index 7ac809049..8c92b0855 100644
--- a/src/sort.c
+++ b/src/sort.c
@@ -1881,7 +1881,17 @@ sortlines_temp (struct line *lines, size_t nlines, struct line *temp)
}
/* Return the index of the first of NFILES FILES that is the same file
- as OUTFILE. If none can be the same, return NFILES. */
+ as OUTFILE. If none can be the same, return NFILES.
+
+ This test ensures that an otherwise-erroneous use like
+ "sort -m -o FILE ... FILE ..." copies FILE before writing to it.
+ It's not clear that POSIX requires this nicety.
+ Detect common error cases, but don't try to catch obscure cases like
+ "cat ... FILE ... | sort -m -o FILE"
+ where traditional "sort" doesn't copy the input and where
+ people should know that they're getting into trouble anyway.
+ Catching these obscure cases would slow down performance in
+ common cases. */
static int
first_same_file (char * const *files, int nfiles, char const *outfile)