{"thread":{"id":"13297","subject":"[RFC] Make read_in_full() and write_in_full() consistent with xread() and xwrite()","startedAt":"2008-04-27T18:21:58Z","lastAt":"2008-04-30T09:23:39Z","messageCount":2,"participants":["Heikki Orsila","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"75319","messageId":"20080427182158.GA29232@zakalwe.fi","threadId":"13297","inReplyTo":null,"subject":"[RFC] Make read_in_full() and write_in_full() consistent with xread() and xwrite()","fromName":"Heikki Orsila","fromEmail":"heikki.orsila@iki.fi","sentAt":"2008-04-27T18:21:58Z","receivedAt":"2008-04-27T18:21:58Z","isPatch":false,"sender":{"key":"heikki.orsila@iki.fi","avatar":null},"body":"Requesting comments on the following patch.\n\nxread() and xwrite() return ssize_t values as their native POSIX\ncounterparts. To be consistent, read_in_full() and write_in_full()\nshould also return ssize_t values.\n\nShould we make file APIs more consistent?\n---\n cache.h        |    4 ++--\n path.c         |    3 ++-\n refs.c         |    3 ++-\n write_or_die.c |    4 ++--\n 4 files changed, 8 insertions(+), 6 deletions(-)\n\ndiff --git a/cache.h b/cache.h\nindex 3fcc283..5a28ddd 100644\n--- a/cache.h\n+++ b/cache.h\n@@ -726,8 +726,8 @@ extern const char *git_log_output_encoding;\n extern void maybe_flush_or_die(FILE *, const char *);\n extern int copy_fd(int ifd, int ofd);\n extern int copy_file(const char *dst, const char *src, int mode);\n-extern int read_in_full(int fd, void *buf, size_t count);\n-extern int write_in_full(int fd, const void *buf, size_t count);\n+extern ssize_t read_in_full(int fd, void *buf, size_t count);\n+extern ssize_t write_in_full(int fd, const void *buf, size_t count);\n extern void write_or_die(int fd, const void *buf, size_t count);\n extern int write_or_whine(int fd, const void *buf, size_t count, const char *msg);\n extern int write_or_whine_pipe(int fd, const void *buf, size_t count, const char *msg);\ndiff --git a/path.c b/path.c\nindex 2ae7cd9..b7c24a2 100644\n--- a/path.c\n+++ b/path.c\n@@ -91,7 +91,8 @@ int validate_headref(const char *path)\n \tstruct stat st;\n \tchar *buf, buffer[256];\n \tunsigned char sha1[20];\n-\tint len, fd;\n+\tint fd;\n+\tssize_t len;\n \n \tif (lstat(path, &st) < 0)\n \t\treturn -1;\ndiff --git a/refs.c b/refs.c\nindex 1b0050e..4db73ed 100644\n--- a/refs.c\n+++ b/refs.c\n@@ -368,7 +368,8 @@ int resolve_gitlink_ref(const char *path, const char *refname, unsigned char *re\n \n const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *flag)\n {\n-\tint depth = MAXDEPTH, len;\n+\tint depth = MAXDEPTH;\n+\tssize_t len;\n \tchar buffer[256];\n \tstatic char ref_buffer[256];\n \ndiff --git a/write_or_die.c b/write_or_die.c\nindex e125e11..32f9914 100644\n--- a/write_or_die.c\n+++ b/write_or_die.c\n@@ -40,7 +40,7 @@ void maybe_flush_or_die(FILE *f, const char *desc)\n \t}\n }\n \n-int read_in_full(int fd, void *buf, size_t count)\n+ssize_t read_in_full(int fd, void *buf, size_t count)\n {\n \tchar *p = buf;\n \tssize_t total = 0;\n@@ -57,7 +57,7 @@ int read_in_full(int fd, void *buf, size_t count)\n \treturn total;\n }\n \n-int write_in_full(int fd, const void *buf, size_t count)\n+ssize_t write_in_full(int fd, const void *buf, size_t count)\n {\n \tconst char *p = buf;\n \tssize_t total = 0;\n-- \n1.5.4.4\n"},{"id":"75660","messageId":"7vlk2v1ysk.fsf@gitster.siamese.dyndns.org","threadId":"13297","inReplyTo":"20080427182158.GA29232@zakalwe.fi","subject":"Re: [RFC] Make read_in_full() and write_in_full() consistent with xread() and xwrite()","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-04-30T09:23:39Z","receivedAt":"2008-04-30T09:23:39Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Heikki Orsila <heikki.orsila@iki.fi> writes:\n\n> Requesting comments on the following patch.\n>\n> xread() and xwrite() return ssize_t values as their native POSIX\n> counterparts. To be consistent, read_in_full() and write_in_full()\n> should also return ssize_t values.\n\nI guess this change would not hurt.\n"}]}