File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / rsync / ifuncs.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Fri Feb 17 15:09:30 2012 UTC (12 years, 4 months ago) by misho
Branches: rsync, MAIN
CVS tags: rsync3_0_9p0, RSYNC3_0_9, HEAD
rsync

    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>