X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/fe8ab488e9161c46dd9885d58fc52996dc0249ff..c6bf4f310a33a9262d455ea4d3f0630b1255e3fe:/SETUP/replacecontents/replacecontents.c?ds=sidebyside diff --git a/SETUP/replacecontents/replacecontents.c b/SETUP/replacecontents/replacecontents.c index 3e72b2d9d..5b14bc3da 100644 --- a/SETUP/replacecontents/replacecontents.c +++ b/SETUP/replacecontents/replacecontents.c @@ -37,7 +37,8 @@ void usage(void); -int main(int argc, char * argv[]) +int +main(int argc, char * argv[]) { struct stat sb; char *newcontent = NULL; @@ -55,18 +56,19 @@ int main(int argc, char * argv[]) dst = argv[1]; - for (i=2; i < argc; i++) { + for (i = 2; i < argc; i++) { newcontentlength += strlen(argv[i]) + 1 /* space or newline */; } newcontentlength += 1; /* NUL */ newcontent = malloc(newcontentlength); - if (newcontent == NULL) + if (newcontent == NULL) { err(EX_UNAVAILABLE, "malloc() failed"); + } newcontent[0] = '\0'; - for (i=2; i < argc; i++) { + for (i = 2; i < argc; i++) { strlcat(newcontent, argv[i], newcontentlength); if (i < argc - 1) { strlcat(newcontent, " ", newcontentlength); @@ -76,15 +78,18 @@ int main(int argc, char * argv[]) } dstfd = open(dst, O_RDWR | O_CREAT | O_APPEND, DEFFILEMODE); - if (dstfd < 0) + if (dstfd < 0) { err(EX_NOINPUT, "open(%s)", dst); + } ret = fstat(dstfd, &sb); - if (ret < 0) + if (ret < 0) { err(EX_NOINPUT, "fstat(%s)", dst); + } - if (!S_ISREG(sb.st_mode)) + if (!S_ISREG(sb.st_mode)) { err(EX_USAGE, "%s is not a regular file", dst); + } if (sb.st_size != newcontentlength) { /* obvious new content must be different than old */ @@ -92,46 +97,53 @@ int main(int argc, char * argv[]) } oldcontent = malloc(newcontentlength); - if (oldcontent == NULL) + if (oldcontent == NULL) { err(EX_UNAVAILABLE, "malloc(%lu) failed", newcontentlength); + } readsize = read(dstfd, oldcontent, newcontentlength); - if (readsize == -1) + if (readsize == -1) { err(EX_UNAVAILABLE, "read() failed"); - else if (readsize != newcontentlength) + } else if (readsize != newcontentlength) { errx(EX_UNAVAILABLE, "short read of file"); + } if (0 == memcmp(oldcontent, newcontent, newcontentlength)) { /* binary comparison succeeded, just exit */ free(oldcontent); ret = close(dstfd); - if (ret < 0) + if (ret < 0) { err(EX_UNAVAILABLE, "close() failed"); + } exit(0); } replace: ret = ftruncate(dstfd, 0); - if (ret < 0) + if (ret < 0) { err(EX_UNAVAILABLE, "ftruncate() failed"); + } writesize = write(dstfd, newcontent, newcontentlength); - if (writesize == -1) + if (writesize == -1) { err(EX_UNAVAILABLE, "write() failed"); - else if (writesize != newcontentlength) + } else if (writesize != newcontentlength) { errx(EX_UNAVAILABLE, "short write of file"); + } ret = close(dstfd); - if (ret < 0) + if (ret < 0) { err(EX_NOINPUT, "close(dst)"); + } return 0; } -void usage(void) +void +usage(void) { fprintf(stderr, "Usage: %s <...>\n", - getprogname()); + getprogname()); exit(EX_USAGE); }