--- embedaddon/rsync/ifuncs.h 2016/11/01 09:54:32 1.1.1.3 +++ embedaddon/rsync/ifuncs.h 2021/03/17 00:32:36 1.1.1.4 @@ -1,6 +1,6 @@ /* Inline functions for rsync. * - * Copyright (C) 2007-2015 Wayne Davison + * Copyright (C) 2007-2020 Wayne Davison * * 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 @@ -19,8 +19,7 @@ static inline void alloc_xbuf(xbuf *xb, size_t sz) { - if (!(xb->buf = new_array(char, sz))) - out_of_memory("alloc_xbuf"); + xb->buf = new_array(char, sz); xb->size = sz; xb->len = xb->pos = 0; } @@ -29,8 +28,6 @@ static inline void realloc_xbuf(xbuf *xb, size_t sz) { char *bf = realloc_array(xb->buf, char, sz); - if (!bf) - out_of_memory("realloc_xbuf"); xb->buf = bf; xb->size = sz; } @@ -80,7 +77,6 @@ init_stat_x(stat_x *sx_p) { #ifdef SUPPORT_ACLS sx_p->acc_acl = sx_p->def_acl = NULL; - sx_p->nfs4_acl = NULL; #endif #ifdef SUPPORT_XATTRS sx_p->xattr = NULL; @@ -105,3 +101,46 @@ free_stat_x(stat_x *sx_p) } #endif } + +static inline char *my_strdup(const char *str, const char *file, int line) +{ + int len = strlen(str)+1; + char *buf = my_alloc(NULL, len, 1, file, line); + memcpy(buf, str, len); + return buf; +} + +static inline int +strEQ(const char *s1, const char *s2) +{ + return strcmp(s1, s2) == 0; +} + +static inline int +strnEQ(const char *s1, const char *s2, size_t n) +{ + return strncmp(s1, s2, n) == 0; +} + +static inline int +ic_strEQ(const char *s1, const char *s2) +{ + extern int ignore_case; + if (ignore_case) + return strcasecmp(s1, s2) == 0; + return strcmp(s1, s2) == 0; +} + +static inline int +ic_strnEQ(const char *s1, const char *s2, size_t n) +{ + extern int ignore_case; + if (ignore_case) + return strncasecmp(s1, s2, n) == 0; + return strncmp(s1, s2, n) == 0; +} + +#define strNE(s1,s2) (!strEQ(s1,s2)) +#define strnNE(s1,s2,n) (!strnEQ(s1,s2,n)) +#define ic_strNE(s1,s2) (!ic_strEQ(s1,s2)) +#define ic_strnNE(s1,s2) (!ic_strnEQ(s1,s2,n))