retry:
if (log && rename(git_path("tmp-renamed-log"), git_path("logs/%s", newref))) {
- if (errno==EISDIR) {
+ if (errno==EISDIR || errno==ENOTDIR) {
+ /*
+ * rename(a, b) when b is an existing
+ * directory ought to result in ISDIR, but
+ * Solaris 5.8 gives ENOTDIR. Sheesh.
+ */
if (remove_empty_directories(git_path("logs/%s", newref))) {
error("Directory not empty: logs/%s", newref);
goto rollback;
const char *logfile;
FILE *logfp;
char buf[1024];
+ int ret = 0;
logfile = git_path("logs/%s", ref);
logfp = fopen(logfile, "r");
unsigned char osha1[20], nsha1[20];
char *email_end, *message;
unsigned long timestamp;
- int len, ret, tz;
+ int len, tz;
/* old SP new SP name <email> SP time TAB msg LF */
len = strlen(buf);
message += 7;
ret = fn(osha1, nsha1, buf+82, timestamp, tz, message, cb_data);
if (ret)
- return ret;
+ break;
}
fclose(logfp);
- return 0;
+ return ret;
}