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)) |