Annotation of embedaddon/rsync/ifuncs.h, revision 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>