diff options
Diffstat (limited to 'coreutils/diff.c')
-rw-r--r-- | coreutils/diff.c | 41 |
1 files changed, 12 insertions, 29 deletions
diff --git a/coreutils/diff.c b/coreutils/diff.c index 368efd383..22c157412 100644 --- a/coreutils/diff.c +++ b/coreutils/diff.c | |||
@@ -12,23 +12,6 @@ | |||
12 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. | 12 | * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #include <time.h> | ||
16 | #include <sys/types.h> | ||
17 | #include <sys/param.h> | ||
18 | #include <sys/stat.h> | ||
19 | #include <ctype.h> | ||
20 | #include <errno.h> | ||
21 | #include <signal.h> | ||
22 | #include <stdlib.h> | ||
23 | #include <stdio.h> | ||
24 | #include <stdarg.h> | ||
25 | #include <string.h> | ||
26 | #include <unistd.h> | ||
27 | #include <sys/wait.h> | ||
28 | #include <fcntl.h> | ||
29 | #include <stddef.h> | ||
30 | #include <paths.h> | ||
31 | #include <dirent.h> | ||
32 | #include "busybox.h" | 15 | #include "busybox.h" |
33 | 16 | ||
34 | #define FSIZE_MAX 32768 | 17 | #define FSIZE_MAX 32768 |
@@ -917,21 +900,21 @@ static int diffreg(char *ofile1, char *ofile2, int flags) | |||
917 | goto closem; | 900 | goto closem; |
918 | 901 | ||
919 | if (flags & D_EMPTY1) | 902 | if (flags & D_EMPTY1) |
920 | f1 = bb_xfopen(bb_dev_null, "r"); | 903 | f1 = xfopen(bb_dev_null, "r"); |
921 | else { | 904 | else { |
922 | if (strcmp(file1, "-") == 0) | 905 | if (strcmp(file1, "-") == 0) |
923 | f1 = stdin; | 906 | f1 = stdin; |
924 | else | 907 | else |
925 | f1 = bb_xfopen(file1, "r"); | 908 | f1 = xfopen(file1, "r"); |
926 | } | 909 | } |
927 | 910 | ||
928 | if (flags & D_EMPTY2) | 911 | if (flags & D_EMPTY2) |
929 | f2 = bb_xfopen(bb_dev_null, "r"); | 912 | f2 = xfopen(bb_dev_null, "r"); |
930 | else { | 913 | else { |
931 | if (strcmp(file2, "-") == 0) | 914 | if (strcmp(file2, "-") == 0) |
932 | f2 = stdin; | 915 | f2 = stdin; |
933 | else | 916 | else |
934 | f2 = bb_xfopen(file2, "r"); | 917 | f2 = xfopen(file2, "r"); |
935 | } | 918 | } |
936 | 919 | ||
937 | if ((i = files_differ(f1, f2, flags)) == 0) | 920 | if ((i = files_differ(f1, f2, flags)) == 0) |
@@ -1004,19 +987,19 @@ static void do_diff(char *dir1, char *path1, char *dir2, char *path2) | |||
1004 | int flags = D_HEADER; | 987 | int flags = D_HEADER; |
1005 | int val; | 988 | int val; |
1006 | 989 | ||
1007 | char *fullpath1 = bb_xasprintf("%s/%s", dir1, path1); | 990 | char *fullpath1 = xasprintf("%s/%s", dir1, path1); |
1008 | char *fullpath2 = bb_xasprintf("%s/%s", dir2, path2); | 991 | char *fullpath2 = xasprintf("%s/%s", dir2, path2); |
1009 | 992 | ||
1010 | if (stat(fullpath1, &stb1) != 0) { | 993 | if (stat(fullpath1, &stb1) != 0) { |
1011 | flags |= D_EMPTY1; | 994 | flags |= D_EMPTY1; |
1012 | memset(&stb1, 0, sizeof(stb1)); | 995 | memset(&stb1, 0, sizeof(stb1)); |
1013 | fullpath1 = bb_xasprintf("%s/%s", dir1, path2); | 996 | fullpath1 = xasprintf("%s/%s", dir1, path2); |
1014 | } | 997 | } |
1015 | if (stat(fullpath2, &stb2) != 0) { | 998 | if (stat(fullpath2, &stb2) != 0) { |
1016 | flags |= D_EMPTY2; | 999 | flags |= D_EMPTY2; |
1017 | memset(&stb2, 0, sizeof(stb2)); | 1000 | memset(&stb2, 0, sizeof(stb2)); |
1018 | stb2.st_mode = stb1.st_mode; | 1001 | stb2.st_mode = stb1.st_mode; |
1019 | fullpath2 = bb_xasprintf("%s/%s", dir2, path1); | 1002 | fullpath2 = xasprintf("%s/%s", dir2, path1); |
1020 | } | 1003 | } |
1021 | 1004 | ||
1022 | if (stb1.st_mode == 0) | 1005 | if (stb1.st_mode == 0) |
@@ -1051,7 +1034,7 @@ static int add_to_dirlist(const char *filename, | |||
1051 | { | 1034 | { |
1052 | dl_count++; | 1035 | dl_count++; |
1053 | dl = xrealloc(dl, dl_count * sizeof(char *)); | 1036 | dl = xrealloc(dl, dl_count * sizeof(char *)); |
1054 | dl[dl_count - 1] = bb_xstrdup(filename); | 1037 | dl[dl_count - 1] = xstrdup(filename); |
1055 | if (cmd_flags & FLAG_r) { | 1038 | if (cmd_flags & FLAG_r) { |
1056 | int *pp = (int *) userdata; | 1039 | int *pp = (int *) userdata; |
1057 | int path_len = *pp + 1; | 1040 | int path_len = *pp + 1; |
@@ -1077,7 +1060,7 @@ static char **get_dir(char *path) | |||
1077 | int path_len = strlen(path); | 1060 | int path_len = strlen(path); |
1078 | void *userdata = &path_len; | 1061 | void *userdata = &path_len; |
1079 | 1062 | ||
1080 | /* Reset dl_count - there's no need to free dl as bb_xrealloc does | 1063 | /* Reset dl_count - there's no need to free dl as xrealloc does |
1081 | * the job nicely. */ | 1064 | * the job nicely. */ |
1082 | dl_count = 0; | 1065 | dl_count = 0; |
1083 | 1066 | ||
@@ -1089,7 +1072,7 @@ static char **get_dir(char *path) | |||
1089 | DIR *dp; | 1072 | DIR *dp; |
1090 | struct dirent *ep; | 1073 | struct dirent *ep; |
1091 | 1074 | ||
1092 | dp = bb_opendir(path); | 1075 | dp = warn_opendir(path); |
1093 | while ((ep = readdir(dp))) { | 1076 | while ((ep = readdir(dp))) { |
1094 | if ((!strcmp(ep->d_name, "..")) || (!strcmp(ep->d_name, "."))) | 1077 | if ((!strcmp(ep->d_name, "..")) || (!strcmp(ep->d_name, "."))) |
1095 | continue; | 1078 | continue; |
@@ -1104,7 +1087,7 @@ static char **get_dir(char *path) | |||
1104 | /* Copy dl so that we can return it. */ | 1087 | /* Copy dl so that we can return it. */ |
1105 | retval = xmalloc(dl_count * sizeof(char *)); | 1088 | retval = xmalloc(dl_count * sizeof(char *)); |
1106 | for (i = 0; i < dl_count; i++) | 1089 | for (i = 0; i < dl_count; i++) |
1107 | retval[i] = bb_xstrdup(dl[i]); | 1090 | retval[i] = xstrdup(dl[i]); |
1108 | 1091 | ||
1109 | return retval; | 1092 | return retval; |
1110 | } | 1093 | } |