sha1_name.c: restructure disambiguation of short names
[gitweb.git] / wrapper.c
index 4c147d6c48c000bab636fad3edc2fe7da6670948..85f09df747637b94e0488ad65984c3f97c732034 100644 (file)
--- a/wrapper.c
+++ b/wrapper.c
@@ -148,8 +148,10 @@ ssize_t read_in_full(int fd, void *buf, size_t count)
 
        while (count > 0) {
                ssize_t loaded = xread(fd, p, count);
-               if (loaded <= 0)
-                       return total ? total : loaded;
+               if (loaded < 0)
+                       return -1;
+               if (loaded == 0)
+                       return total;
                count -= loaded;
                p += loaded;
                total += loaded;
@@ -209,7 +211,7 @@ int xmkstemp(char *template)
                if (!template[0])
                        template = origtemplate;
 
-               nonrelative_template = make_nonrelative_path(template);
+               nonrelative_template = absolute_path(template);
                errno = saved_errno;
                die_errno("Unable to create temporary file '%s'",
                        nonrelative_template);
@@ -344,7 +346,7 @@ int xmkstemp_mode(char *template, int mode)
                if (!template[0])
                        template = origtemplate;
 
-               nonrelative_template = make_nonrelative_path(template);
+               nonrelative_template = absolute_path(template);
                errno = saved_errno;
                die_errno("Unable to create temporary file '%s'",
                        nonrelative_template);