Annotation of embedaddon/rsync/popt/poptint.h, revision 1.1

1.1     ! misho       1: /** \ingroup popt
        !             2:  * \file popt/poptint.h
        !             3:  */
        !             4: 
        !             5: /* (C) 1998-2000 Red Hat, Inc. -- Licensing details are in the COPYING
        !             6:    file accompanying popt source distributions, available from 
        !             7:    ftp://ftp.rpm.org/pub/rpm/dist. */
        !             8: 
        !             9: #ifndef H_POPTINT
        !            10: #define H_POPTINT
        !            11: 
        !            12: /**
        !            13:  * Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
        !            14:  * @param p            memory to free
        !            15:  * @retval             NULL always
        !            16:  */
        !            17: /*@unused@*/ static inline /*@null@*/ void *
        !            18: _free(/*@only@*/ /*@null@*/ const void * p)
        !            19:        /*@modifies p @*/
        !            20: {
        !            21:     if (p != NULL)     free((void *)p);
        !            22:     return NULL;
        !            23: }
        !            24: 
        !            25: static inline int
        !            26: isSpace(const char *ptr)
        !            27: {
        !            28:     return isspace(*(unsigned char *)ptr);
        !            29: }
        !            30: 
        !            31: /* Bit mask macros. */
        !            32: /*@-exporttype -redef @*/
        !            33: typedef        unsigned int __pbm_bits;
        !            34: /*@=exporttype =redef @*/
        !            35: #define        __PBM_NBITS             (8 * sizeof (__pbm_bits))
        !            36: #define        __PBM_IX(d)             ((d) / __PBM_NBITS)
        !            37: #define __PBM_MASK(d)          ((__pbm_bits) 1 << (((unsigned)(d)) % __PBM_NBITS))
        !            38: /*@-exporttype -redef @*/
        !            39: typedef struct {
        !            40:     __pbm_bits bits[1];
        !            41: } pbm_set;
        !            42: /*@=exporttype =redef @*/
        !            43: #define        __PBM_BITS(set) ((set)->bits)
        !            44: 
        !            45: #define        PBM_ALLOC(d)    calloc(__PBM_IX (d) + 1, sizeof(__pbm_bits))
        !            46: #define        PBM_FREE(s)     _free(s);
        !            47: #define PBM_SET(d, s)   (__PBM_BITS (s)[__PBM_IX (d)] |= __PBM_MASK (d))
        !            48: #define PBM_CLR(d, s)   (__PBM_BITS (s)[__PBM_IX (d)] &= ~__PBM_MASK (d))
        !            49: #define PBM_ISSET(d, s) ((__PBM_BITS (s)[__PBM_IX (d)] & __PBM_MASK (d)) != 0)
        !            50: 
        !            51: struct optionStackEntry {
        !            52:     int argc;
        !            53: /*@only@*/ /*@null@*/
        !            54:     const char ** argv;
        !            55: /*@only@*/ /*@null@*/
        !            56:     pbm_set * argb;
        !            57:     int next;
        !            58: /*@only@*/ /*@null@*/
        !            59:     const char * nextArg;
        !            60: /*@observer@*/ /*@null@*/
        !            61:     const char * nextCharArg;
        !            62: /*@dependent@*/ /*@null@*/
        !            63:     poptItem currAlias;
        !            64:     int stuffed;
        !            65: };
        !            66: 
        !            67: struct poptContext_s {
        !            68:     struct optionStackEntry optionStack[POPT_OPTION_DEPTH];
        !            69: /*@dependent@*/
        !            70:     struct optionStackEntry * os;
        !            71: /*@owned@*/ /*@null@*/
        !            72:     const char ** leftovers;
        !            73:     int numLeftovers;
        !            74:     int nextLeftover;
        !            75: /*@keep@*/
        !            76:     const struct poptOption * options;
        !            77:     int restLeftover;
        !            78: /*@only@*/ /*@null@*/
        !            79:     const char * appName;
        !            80: /*@only@*/ /*@null@*/
        !            81:     poptItem aliases;
        !            82:     int numAliases;
        !            83:     int flags;
        !            84: /*@owned@*/ /*@null@*/
        !            85:     poptItem execs;
        !            86:     int numExecs;
        !            87: /*@only@*/ /*@null@*/
        !            88:     const char ** finalArgv;
        !            89:     int finalArgvCount;
        !            90:     int finalArgvAlloced;
        !            91: /*@dependent@*/ /*@null@*/
        !            92:     poptItem doExec;
        !            93: /*@only@*/
        !            94:     const char * execPath;
        !            95:     int execAbsolute;
        !            96: /*@only@*/ /*@relnull@*/
        !            97:     const char * otherHelp;
        !            98: /*@null@*/
        !            99:     pbm_set * arg_strip;
        !           100: };
        !           101: 
        !           102: #ifdef HAVE_LIBINTL_H
        !           103: #include <libintl.h>
        !           104: #endif
        !           105: 
        !           106: #if defined(HAVE_GETTEXT) && !defined(__LCLINT__)
        !           107: #define _(foo) gettext(foo)
        !           108: #else
        !           109: #define _(foo) foo
        !           110: #endif
        !           111: 
        !           112: #if defined(HAVE_DCGETTEXT) && !defined(__LCLINT__)
        !           113: #define D_(dom, str) dgettext(dom, str)
        !           114: #define POPT_(foo) D_("popt", foo)
        !           115: #else
        !           116: #define D_(dom, str) str
        !           117: #define POPT_(foo) foo
        !           118: #endif
        !           119: 
        !           120: #define N_(foo) foo
        !           121: 
        !           122: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>