diff: don't exit in case we can't open input files. -2 bytes
authorMatheus Izvekov <mizvekov@gmail.com>
Tue, 19 Jan 2010 01:34:29 +0000 (23:34 -0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Wed, 20 Jan 2010 01:46:14 +0000 (02:46 +0100)
>>From d4cf19d20596bca797d58563f4404cf6a4932977 Mon Sep 17 00:00:00 2001
From: Matheus Izvekov <mizvekov@gmail.com>
Date: Mon, 18 Jan 2010 23:27:56 -0200
Subject: [PATCH] diff: don't exit in case we can't open input files

This prevents recursion being aborted due to failures to open files.

Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
editors/diff.c

index b7a13871a89cecace400227e94f92ed73f7dd03e..91109821ed5c7a24201be3c4bde62ce2f4e92d5b 100644 (file)
@@ -671,14 +671,14 @@ static bool diff(FILE* fp[2], char *file[2])
 
 static int diffreg(char *file[2])
 {
-       FILE *fp[2];
+       FILE *fp[2] = { stdin, stdin };
        bool binary = false, differ = false;
        int status = STATUS_SAME;
 
        for (int i = 0; i < 2; i++) {
                int fd = open_or_warn_stdin(file[i]);
                if (fd == -1)
-                       xfunc_die();
+                       goto out;
                /* Our diff implementation is using seek.
                 * When we meet non-seekable file, we must make a temp copy.
                 */
@@ -725,7 +725,7 @@ static int diffreg(char *file[2])
        }
        if (status != STATUS_SAME)
                exit_status |= 1;
-
+out:
        fclose_if_not_stdin(fp[0]);
        fclose_if_not_stdin(fp[1]);