|
version 1.1, 2012/02/17 15:09:30
|
version 1.1.1.4, 2021/03/17 00:32:36
|
|
Line 1
|
Line 1
|
| /* Inline functions for rsync. |
/* Inline functions for rsync. |
| * |
* |
| * Copyright (C) 2007-2008 Wayne Davison | * Copyright (C) 2007-2020 Wayne Davison |
| * |
* |
| * This program is free software; you can redistribute it and/or modify |
* 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 |
* it under the terms of the GNU General Public License as published by |
|
Line 19
|
Line 19
|
| static inline void |
static inline void |
| alloc_xbuf(xbuf *xb, size_t sz) |
alloc_xbuf(xbuf *xb, size_t sz) |
| { |
{ |
| if (!(xb->buf = new_array(char, sz))) | xb->buf = new_array(char, sz); |
| out_of_memory("alloc_xbuf"); | |
| xb->size = sz; |
xb->size = sz; |
| xb->len = xb->pos = 0; |
xb->len = xb->pos = 0; |
| } |
} |
|
Line 29 static inline void
|
Line 28 static inline void
|
| realloc_xbuf(xbuf *xb, size_t sz) |
realloc_xbuf(xbuf *xb, size_t sz) |
| { |
{ |
| char *bf = realloc_array(xb->buf, char, sz); |
char *bf = realloc_array(xb->buf, char, sz); |
| if (!bf) |
|
| out_of_memory("realloc_xbuf"); |
|
| xb->buf = bf; |
xb->buf = bf; |
| xb->size = sz; |
xb->size = sz; |
| } |
} |
| |
|
| |
static inline void |
| |
free_xbuf(xbuf *xb) |
| |
{ |
| |
if (xb->buf) |
| |
free(xb->buf); |
| |
memset(xb, 0, sizeof (xbuf)); |
| |
} |
| |
|
| static inline int |
static inline int |
| to_wire_mode(mode_t mode) |
to_wire_mode(mode_t mode) |
| { |
{ |
|
Line 67 d_name(struct dirent *di)
|
Line 72 d_name(struct dirent *di)
|
| #endif |
#endif |
| } |
} |
| |
|
| static inline int | static inline void |
| isDigit(const char *ptr) | init_stat_x(stat_x *sx_p) |
| { |
{ |
| return isdigit(*(unsigned char *)ptr); | #ifdef SUPPORT_ACLS |
| | sx_p->acc_acl = sx_p->def_acl = NULL; |
| | #endif |
| | #ifdef SUPPORT_XATTRS |
| | sx_p->xattr = NULL; |
| | #endif |
| } |
} |
| |
|
| static inline int | static inline void |
| isPrint(const char *ptr) | free_stat_x(stat_x *sx_p) |
| { |
{ |
| return isprint(*(unsigned char *)ptr); | #ifdef SUPPORT_ACLS |
| | { |
| | extern int preserve_acls; |
| | if (preserve_acls) |
| | free_acl(sx_p); |
| | } |
| | #endif |
| | #ifdef SUPPORT_XATTRS |
| | { |
| | extern int preserve_xattrs; |
| | if (preserve_xattrs) |
| | free_xattr(sx_p); |
| | } |
| | #endif |
| } |
} |
| |
|
| static inline int | static inline char *my_strdup(const char *str, const char *file, int line) |
| isSpace(const char *ptr) | |
| { |
{ |
| return isspace(*(unsigned char *)ptr); | int len = strlen(str)+1; |
| | char *buf = my_alloc(NULL, len, 1, file, line); |
| | memcpy(buf, str, len); |
| | return buf; |
| } |
} |
| |
|
| static inline int |
static inline int |
| isLower(const char *ptr) | strEQ(const char *s1, const char *s2) |
| { |
{ |
| return islower(*(unsigned char *)ptr); | return strcmp(s1, s2) == 0; |
| } |
} |
| |
|
| static inline int |
static inline int |
| isUpper(const char *ptr) | strnEQ(const char *s1, const char *s2, size_t n) |
| { |
{ |
| return isupper(*(unsigned char *)ptr); | return strncmp(s1, s2, n) == 0; |
| } |
} |
| |
|
| static inline int |
static inline int |
| toLower(const char *ptr) | ic_strEQ(const char *s1, const char *s2) |
| { |
{ |
| return tolower(*(unsigned char *)ptr); | extern int ignore_case; |
| | if (ignore_case) |
| | return strcasecmp(s1, s2) == 0; |
| | return strcmp(s1, s2) == 0; |
| } |
} |
| |
|
| static inline int |
static inline int |
| toUpper(const char *ptr) | ic_strnEQ(const char *s1, const char *s2, size_t n) |
| { |
{ |
| return toupper(*(unsigned char *)ptr); | 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)) |