Annotation of embedaddon/rsync/ifuncs.h, revision 1.1.1.1
1.1 misho 1: /* Inline functions for rsync.
2: *
3: * Copyright (C) 2007-2008 Wayne Davison
4: *
5: * This program is free software; you can redistribute it and/or modify
6: * it under the terms of the GNU General Public License as published by
7: * the Free Software Foundation; either version 3 of the License, or
8: * (at your option) any later version.
9: *
10: * This program is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: * GNU General Public License for more details.
14: *
15: * You should have received a copy of the GNU General Public License along
16: * with this program; if not, visit the http://fsf.org website.
17: */
18:
19: static inline void
20: alloc_xbuf(xbuf *xb, size_t sz)
21: {
22: if (!(xb->buf = new_array(char, sz)))
23: out_of_memory("alloc_xbuf");
24: xb->size = sz;
25: xb->len = xb->pos = 0;
26: }
27:
28: static inline void
29: realloc_xbuf(xbuf *xb, size_t sz)
30: {
31: char *bf = realloc_array(xb->buf, char, sz);
32: if (!bf)
33: out_of_memory("realloc_xbuf");
34: xb->buf = bf;
35: xb->size = sz;
36: }
37:
38: static inline int
39: to_wire_mode(mode_t mode)
40: {
41: #ifdef SUPPORT_LINKS
42: #if _S_IFLNK != 0120000
43: if (S_ISLNK(mode))
44: return (mode & ~(_S_IFMT)) | 0120000;
45: #endif
46: #endif
47: return mode;
48: }
49:
50: static inline mode_t
51: from_wire_mode(int mode)
52: {
53: #if _S_IFLNK != 0120000
54: if ((mode & (_S_IFMT)) == 0120000)
55: return (mode & ~(_S_IFMT)) | _S_IFLNK;
56: #endif
57: return mode;
58: }
59:
60: static inline char *
61: d_name(struct dirent *di)
62: {
63: #ifdef HAVE_BROKEN_READDIR
64: return (di->d_name - 2);
65: #else
66: return di->d_name;
67: #endif
68: }
69:
70: static inline int
71: isDigit(const char *ptr)
72: {
73: return isdigit(*(unsigned char *)ptr);
74: }
75:
76: static inline int
77: isPrint(const char *ptr)
78: {
79: return isprint(*(unsigned char *)ptr);
80: }
81:
82: static inline int
83: isSpace(const char *ptr)
84: {
85: return isspace(*(unsigned char *)ptr);
86: }
87:
88: static inline int
89: isLower(const char *ptr)
90: {
91: return islower(*(unsigned char *)ptr);
92: }
93:
94: static inline int
95: isUpper(const char *ptr)
96: {
97: return isupper(*(unsigned char *)ptr);
98: }
99:
100: static inline int
101: toLower(const char *ptr)
102: {
103: return tolower(*(unsigned char *)ptr);
104: }
105:
106: static inline int
107: toUpper(const char *ptr)
108: {
109: return toupper(*(unsigned char *)ptr);
110: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>