Moving inline functions into its own .h file.
[rsync.git] / ifuncs.h
diff --git a/ifuncs.h b/ifuncs.h
new file mode 100644 (file)
index 0000000..b74bcae
--- /dev/null
+++ b/ifuncs.h
@@ -0,0 +1,84 @@
+/* Inline functions. */
+
+static inline void
+alloc_xbuf(xbuf *xb, size_t sz)
+{
+       if (!(xb->buf = new_array(char, sz)))
+               out_of_memory("alloc_xbuf");
+       xb->size = sz;
+       xb->len = xb->pos = 0;
+}
+
+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;
+}
+
+static inline int
+to_wire_mode(mode_t mode)
+{
+#ifdef SUPPORT_LINKS
+#if _S_IFLNK != 0120000
+       if (S_ISLNK(mode))
+               return (mode & ~(_S_IFMT)) | 0120000;
+#endif
+#endif
+       return mode;
+}
+
+static inline mode_t
+from_wire_mode(int mode)
+{
+#if _S_IFLNK != 0120000
+       if ((mode & (_S_IFMT)) == 0120000)
+               return (mode & ~(_S_IFMT)) | _S_IFLNK;
+#endif
+       return mode;
+}
+
+static inline int
+isDigit(const char *ptr)
+{
+       return isdigit(*(unsigned char *)ptr);
+}
+
+static inline int
+isPrint(const char *ptr)
+{
+       return isprint(*(unsigned char *)ptr);
+}
+
+static inline int
+isSpace(const char *ptr)
+{
+       return isspace(*(unsigned char *)ptr);
+}
+
+static inline int
+isLower(const char *ptr)
+{
+       return islower(*(unsigned char *)ptr);
+}
+
+static inline int
+isUpper(const char *ptr)
+{
+       return isupper(*(unsigned char *)ptr);
+}
+
+static inline int
+toLower(const char *ptr)
+{
+       return tolower(*(unsigned char *)ptr);
+}
+
+static inline int
+toUpper(const char *ptr)
+{
+       return toupper(*(unsigned char *)ptr);
+}