]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
Improve performance of `sort -m' on large files, at the cost of
authorJim Meyering <jim@meyering.net>
Fri, 14 May 2004 07:34:09 +0000 (07:34 +0000)
committerJim Meyering <jim@meyering.net>
Fri, 14 May 2004 07:34:09 +0000 (07:34 +0000)
making some contrived examples unsafe.  POSIX allows this
optimization.  Performance problem reported by Jonathan Baker in
<http://mail.gnu.org/archive/html/bug-coreutils/2004-05/msg00071.html>.

(first_same_file): Do not treat input pipes
differently from other files.

src/sort.c

index a259ae9746cae0ae1fc30811eb5f01c61d45d1b1..6fcfc69d7da03f5c76aea605bb42ad5f0e59be56 100644 (file)
@@ -1878,9 +1878,7 @@ 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.  Consider an
-   input pipe to be the same as OUTFILE, since the pipe might be the
-   output of a command like "cat OUTFILE".  */
+   as OUTFILE.  If none can be the same, return NFILES.  */
 
 static int
 first_same_file (char * const *files, int nfiles, char const *outfile)
@@ -1910,7 +1908,7 @@ first_same_file (char * const *files, int nfiles, char const *outfile)
            ? fstat (STDIN_FILENO, &instat)
            : stat (files[i], &instat))
           == 0)
-         && (S_ISFIFO (instat.st_mode) || SAME_INODE (instat, outstat)))
+         && SAME_INODE (instat, outstat))
        return i;
     }