git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 03/10] archive-tar: unindent write_tar_entry by one level

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
May 2, 2012, 13:25 UTC
Message-ID
<1335965122-17458-4-git-send-email-pclouds@gmail.com>
In-Reply-To
<1335965122-17458-1-git-send-email-pclouds@gmail.com>
It's used to be
if (!sha1) {
  ...
} else if (!path) {
  ...
} else {
  ...
}

Now that the first two blocks are no-op. We can remove the if/else skeleton and put the else block back by one indent level.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 archive-tar.c |   56 +++++++++++++++++++++++++-------------------------------
 1 files changed, 25 insertions(+), 31 deletions(-)
diff --git a/archive-tar.c b/archive-tar.c
index 1727ab9..6c8a0bd 100644
--- a/archive-tar.c
+++ b/archive-tar.c
@@ -170,40 +170,34 @@ static int write_tar_entry(struct archiver_args *args,
 
 	memset(&header, 0, sizeof(header));
 
-	if (!sha1) {
-		die("BUG: sha1 == NULL is not supported");
-	} else if (!path) {
-		die("BUG: path == NULL is not supported");
+	if (S_ISDIR(mode) || S_ISGITLINK(mode)) {
+		*header.typeflag = TYPEFLAG_DIR;
+		mode = (mode | 0777) & ~tar_umask;
+	} else if (S_ISLNK(mode)) {
+		*header.typeflag = TYPEFLAG_LNK;
+		mode |= 0777;
+	} else if (S_ISREG(mode)) {
+		*header.typeflag = TYPEFLAG_REG;
+		mode = (mode | ((mode & 0100) ? 0777 : 0666)) & ~tar_umask;
 	} else {
-		if (S_ISDIR(mode) || S_ISGITLINK(mode)) {
-			*header.typeflag = TYPEFLAG_DIR;
-			mode = (mode | 0777) & ~tar_umask;
-		} else if (S_ISLNK(mode)) {
-			*header.typeflag = TYPEFLAG_LNK;
-			mode |= 0777;
-		} else if (S_ISREG(mode)) {
-			*header.typeflag = TYPEFLAG_REG;
-			mode = (mode | ((mode & 0100) ? 0777 : 0666)) & ~tar_umask;
+		return error("unsupported file mode: 0%o (SHA1: %s)",
+			     mode, sha1_to_hex(sha1));
+	}
+	if (pathlen > sizeof(header.name)) {
+		size_t plen = get_path_prefix(path, pathlen,
+					      sizeof(header.prefix));
+		size_t rest = pathlen - plen - 1;
+		if (plen > 0 && rest <= sizeof(header.name)) {
+			memcpy(header.prefix, path, plen);
+				memcpy(header.name, path + plen + 1, rest);
 		} else {
-			return error("unsupported file mode: 0%o (SHA1: %s)",
-					mode, sha1_to_hex(sha1));
+			sprintf(header.name, "%s.data",
+				sha1_to_hex(sha1));
+			strbuf_append_ext_header(&ext_header, "path",
+						 path, pathlen);
 		}
-		if (pathlen > sizeof(header.name)) {
-			size_t plen = get_path_prefix(path, pathlen,
-					sizeof(header.prefix));
-			size_t rest = pathlen - plen - 1;
-			if (plen > 0 && rest <= sizeof(header.name)) {
-				memcpy(header.prefix, path, plen);
-				memcpy(header.name, path + plen + 1, rest);
-			} else {
-				sprintf(header.name, "%s.data",
-				        sha1_to_hex(sha1));
-				strbuf_append_ext_header(&ext_header, "path",
-						path, pathlen);
-			}
-		} else
-			memcpy(header.name, path, pathlen);
-	}
+	} else
+		memcpy(header.name, path, pathlen);
 
 	if (S_ISLNK(mode) && buffer) {
 		if (size > sizeof(header.linkname)) {
-- 
1.7.8.36.g69ee2
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 4 of 14 in “Large file support for git-archive”
  1. 00/10 Large file support for git-archiveNguyễn Thái Ngọc Duy, May 2, 2012
  2. 01/10 streaming: void pointer instead of char pointerNguyễn Thái Ngọc Duy, May 2, 2012
  3. 02/10 archive-tar: turn write_tar_entry into blob-writing onlyNguyễn Thái Ngọc Duy, May 2, 2012
  4. 03/10 archive-tar: unindent write_tar_entry by one levelNguyễn Thái Ngọc Duy, May 2, 2012
  5. 04/10 archive: delegate blob reading to backendNguyễn Thái Ngọc Duy, May 2, 2012
  6. 05/10 archive-tar: allow to accumulate writes before writing 512-byte blocksNguyễn Thái Ngọc Duy, May 2, 2012
  7. René ScharfeMay 2, 2012
  8. Nguyen Thai Ngoc DuyMay 2, 2012
  9. 06/10 archive-tar: stream large blobs to tar fileNguyễn Thái Ngọc Duy, May 2, 2012
  10. René ScharfeMay 2, 2012
  11. 07/10 archive-zip: remove uncompressed_sizeNguyễn Thái Ngọc Duy, May 2, 2012
  12. 08/10 archive-zip: factor out helpers for writing sizes and CRCNguyễn Thái Ngọc Duy, May 2, 2012
  13. 09/10 archive-zip: streaming for stored filesNguyễn Thái Ngọc Duy, May 2, 2012
  14. 10/10 archive-zip: streaming for deflated filesNguyễn Thái Ngọc Duy, May 2, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.