Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Avoid adding our own exclude of the partial-dir name if the
[rsync/rsync.git]
/
log.c
diff --git
a/log.c
b/log.c
index
0b2b8e9
..
dad939b
100644
(file)
--- a/
log.c
+++ b/
log.c
@@
-198,8
+198,8
@@
static void filtered_fwrite(const char *buf, int len, FILE *f)
&& isdigit(*(uchar*)(s+2))
&& isdigit(*(uchar*)(s+3))
&& isdigit(*(uchar*)(s+4)))
&& isdigit(*(uchar*)(s+2))
&& isdigit(*(uchar*)(s+3))
&& isdigit(*(uchar*)(s+4)))
- ||
!isprint(*(uchar*)s
)
-
|| *(uchar*)s < ' '
) {
+ ||
((!isprint(*(uchar*)s) || *(uchar*)s < ' '
)
+
&& *s != '\t')
) {
if (s != buf && fwrite(buf, s - buf, 1, f) != 1)
exit_cleanup(RERR_MESSAGEIO);
fprintf(f, "\\%04o", *(uchar*)s);
if (s != buf && fwrite(buf, s - buf, 1, f) != 1)
exit_cleanup(RERR_MESSAGEIO);
fprintf(f, "\\%04o", *(uchar*)s);
@@
-218,18
+218,21
@@
void rwrite(enum logcode code, char *buf, int len)
int trailing_CR_or_NL;
FILE *f = NULL;
int trailing_CR_or_NL;
FILE *f = NULL;
- if (quiet && code == FINFO)
- return;
-
if (len < 0)
exit_cleanup(RERR_MESSAGEIO);
if (len < 0)
exit_cleanup(RERR_MESSAGEIO);
+ if (quiet && code == FINFO)
+ return;
+
if (am_server && msg_fd_out >= 0) {
/* Pass the message to our sibling. */
send_msg((enum msgcode)code, buf, len);
return;
}
if (am_server && msg_fd_out >= 0) {
/* Pass the message to our sibling. */
send_msg((enum msgcode)code, buf, len);
return;
}
+ if (code == FSOCKERR) /* This gets simplified for a non-sibling. */
+ code = FERROR;
+
if (code == FCLIENT)
code = FINFO;
else if (am_daemon) {
if (code == FCLIENT)
code = FINFO;
else if (am_daemon) {
@@
-265,10
+268,11
@@
void rwrite(enum logcode code, char *buf, int len)
case FERROR:
log_got_error = 1;
f = stderr;
case FERROR:
log_got_error = 1;
f = stderr;
-
break
;
+
goto pre_scan
;
case FINFO:
f = am_server ? stderr : stdout;
case FINFO:
f = am_server ? stderr : stdout;
- while (len && (*buf == '\n' || *buf == '\t')) {
+ pre_scan:
+ while (len > 1 && *buf == '\n') {
fputc(*buf, f);
buf++;
len--;
fputc(*buf, f);
buf++;
len--;
@@
-442,12
+446,36
@@
static void log_formatted(enum logcode code, char *format, char *op,
(double)file->length);
n = buf2;
break;
(double)file->length);
n = buf2;
break;
+ case 'U':
+ strlcat(fmt, "ld", sizeof fmt);
+ snprintf(buf2, sizeof buf2, fmt,
+ (long)file->uid);
+ n = buf2;
+ break;
+ case 'G':
+ strlcat(fmt, "d", sizeof fmt);
+ snprintf(buf2, sizeof buf2, fmt,
+ (long)file->gid);
+ n = buf2;
+ break;
case 'p':
strlcat(fmt, "ld", sizeof fmt);
snprintf(buf2, sizeof buf2, fmt,
(long)getpid());
n = buf2;
break;
case 'p':
strlcat(fmt, "ld", sizeof fmt);
snprintf(buf2, sizeof buf2, fmt,
(long)getpid());
n = buf2;
break;
+ case 'M':
+ n = timestring(file->modtime);
+ {
+ char *cp;
+ while ((cp = strchr(n, ' ')) != NULL)
+ *cp = '-';
+ }
+ break;
+ case 'B':
+ n = buf2 + MAXPATHLEN - PERMSTRING_SIZE;
+ permstring(n - 1, file->mode); /* skip the type char */
+ break;
case 'o':
n = op;
break;
case 'o':
n = op;
break;
@@
-535,18
+563,17
@@
static void log_formatted(enum logcode code, char *format, char *op,
: !(iflags & ITEM_TRANSFER) ? '.'
: !local_server && *op == 's' ? '<' : '>';
n[1] = S_ISDIR(file->mode) ? 'd'
: !(iflags & ITEM_TRANSFER) ? '.'
: !local_server && *op == 's' ? '<' : '>';
n[1] = S_ISDIR(file->mode) ? 'd'
+ : IS_SPECIAL(file->mode) ? 'S'
: IS_DEVICE(file->mode) ? 'D'
: S_ISLNK(file->mode) ? 'L' : 'f';
n[2] = !(iflags & ITEM_REPORT_CHECKSUM) ? '.' : 'c';
n[3] = !(iflags & ITEM_REPORT_SIZE) ? '.' : 's';
n[4] = !(iflags & ITEM_REPORT_TIME) ? '.'
: IS_DEVICE(file->mode) ? 'D'
: S_ISLNK(file->mode) ? 'L' : 'f';
n[2] = !(iflags & ITEM_REPORT_CHECKSUM) ? '.' : 'c';
n[3] = !(iflags & ITEM_REPORT_SIZE) ? '.' : 's';
n[4] = !(iflags & ITEM_REPORT_TIME) ? '.'
- : !preserve_times || IS_DEVICE(file->mode)
- || S_ISLNK(file->mode) ? 'T' : 't';
+ : !preserve_times || S_ISLNK(file->mode) ? 'T' : 't';
n[5] = !(iflags & ITEM_REPORT_PERMS) ? '.' : 'p';
n[6] = !(iflags & ITEM_REPORT_OWNER) ? '.' : 'o';
n[7] = !(iflags & ITEM_REPORT_GROUP) ? '.' : 'g';
n[5] = !(iflags & ITEM_REPORT_PERMS) ? '.' : 'p';
n[6] = !(iflags & ITEM_REPORT_OWNER) ? '.' : 'o';
n[7] = !(iflags & ITEM_REPORT_GROUP) ? '.' : 'g';
- n[8] = !(iflags & ITEM_REPORT_XATTRS) ? '.' : 'a';
- n[9] = '\0';
+ n[8] = '\0';
if (iflags & (ITEM_IS_NEW|ITEM_MISSING_DATA)) {
char ch = iflags & ITEM_IS_NEW ? '+' : '?';
if (iflags & (ITEM_IS_NEW|ITEM_MISSING_DATA)) {
char ch = iflags & ITEM_IS_NEW ? '+' : '?';
@@
-646,7
+673,7
@@
void maybe_log_item(struct file_struct *file, int iflags, int itemizing,
{
int significant_flags = iflags & SIGNIFICANT_ITEM_FLAGS;
int see_item = itemizing && (significant_flags || *buf
{
int significant_flags = iflags & SIGNIFICANT_ITEM_FLAGS;
int see_item = itemizing && (significant_flags || *buf
-
|| (verbose > 1 && log_format_has_i));
+
|| log_format_has_i > 1
|| (verbose > 1 && log_format_has_i));
int local_change = iflags & ITEM_LOCAL_CHANGE && significant_flags;
if (am_server) {
if (am_daemon && !dry_run && see_item)
int local_change = iflags & ITEM_LOCAL_CHANGE && significant_flags;
if (am_server) {
if (am_daemon && !dry_run && see_item)
@@
-706,11
+733,11
@@
void log_exit(int code, const char *file, int line)
/* VANISHED is not an error, only a warning */
if (code == RERR_VANISHED) {
/* VANISHED is not an error, only a warning */
if (code == RERR_VANISHED) {
- rprintf(FINFO, "rsync warning: %s (code %d) at %s(%d)\n",
- name, code, file, line);
+ rprintf(FINFO, "rsync warning: %s (code %d) at %s(%d)
[%s]
\n",
+ name, code, file, line
, who_am_i()
);
} else {
} else {
- rprintf(FERROR, "rsync error: %s (code %d) at %s(%d)\n",
- name, code, file, line);
+ rprintf(FERROR, "rsync error: %s (code %d) at %s(%d)
[%s]
\n",
+ name, code, file, line
, who_am_i()
);
}
}
}
}
}
}