X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/76e26e10423f1b3fbd9d11b456aa06bdf8489967..1db8b61de7fd31b9c7b02918e6c194255979f030:/flist.c diff --git a/flist.c b/flist.c index 5bc02888..0b0fd233 100644 --- a/flist.c +++ b/flist.c @@ -1,6 +1,7 @@ /* Copyright (C) Andrew Tridgell 1996 Copyright (C) Paul Mackerras 1996 + Copyright (C) 2001 by Martin Pool This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -111,24 +112,14 @@ static char *string_area_strdup(struct string_area **ap, const char *src) static void list_file_entry(struct file_struct *f) { - char perms[11] = "----------"; - char *perm_map = "rwxrwxrwx"; - int i; + char perms[11]; if (!f->basename) /* this can happen if duplicate names were removed */ return; - for (i=0;i<9;i++) { - if (f->mode & (1<mode)) perms[0] = 'l'; - if (S_ISDIR(f->mode)) perms[0] = 'd'; - if (S_ISBLK(f->mode)) perms[0] = 'b'; - if (S_ISCHR(f->mode)) perms[0] = 'c'; - if (S_ISSOCK(f->mode)) perms[0] = 's'; - if (S_ISFIFO(f->mode)) perms[0] = 'p'; - + permstring(perms, f->mode); + if (preserve_links && S_ISLNK(f->mode)) { rprintf(FINFO,"%s %11.0f %s %s -> %s\n", perms, @@ -473,7 +464,8 @@ static int skip_filesystem(char *fname, STRUCT_STAT *st) } #define STRDUP(ap, p) (ap ? string_area_strdup(ap, p) : strdup(p)) -#define MALLOC(ap, i) (ap ? string_area_malloc(ap, i) : malloc(i)) +/* IRIX cc cares that the operands to the ternary have the same type. */ +#define MALLOC(ap, i) (ap ? (void*) string_area_malloc(ap, i) : malloc(i)) /* create a file_struct for a named file */ struct file_struct *make_file(int f, char *fname, struct string_area **ap,