gonzui


Format: Advanced Search

t2ex/bsd_source/lib/libc/src_bsd/stdio/multibyte.hbare sourcepermlink (0.02 seconds)

Search this content:

    1: /*      $OpenBSD: multibyte.h,v 1.1 2010/07/27 16:59:04 stsp Exp $ */
    2: /*      $NetBSD: multibyte.h,v 1.5 2009/01/11 02:46:28 christos Exp $        */
    3: 
    4: /*-
    5:  * Copyright (c)2002 Citrus Project,
    6:  * All rights reserved.
    7:  *
    8:  * Redistribution and use in source and binary forms, with or without
    9:  * modification, are permitted provided that the following conditions
   10:  * are met:
   11:  * 1. Redistributions of source code must retain the above copyright
   12:  *    notice, this list of conditions and the following disclaimer.
   13:  * 2. Redistributions in binary form must reproduce the above copyright
   14:  *    notice, this list of conditions and the following disclaimer in the
   15:  *    documentation and/or other materials provided with the distribution.
   16:  *
   17:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   18:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   19:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   20:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   21:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   22:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   23:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   24:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   25:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   26:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   27:  * SUCH DAMAGE.
   28:  */
   29: 
   30: #ifndef _MULTIBYTE_H_
   31: #define _MULTIBYTE_H_
   32: 
   33: typedef struct _RuneStatePriv {
   34:         _RuneLocale    *__runelocale;
   35:         char           __private __attribute__((__aligned__));
   36: } _RuneStatePriv;
   37: 
   38: typedef union _RuneState {
   39:         mbstate_t              __pad;
   40:         struct _RuneStatePriv  __priv;
   41: #define rs_runelocale           __priv.__runelocale
   42: #define rs_private              __priv.__private
   43: } _RuneState;
   44: #define _RUNE_STATE_PRIVSIZE    (sizeof(mbstate_t)-offsetof(_RuneStatePriv, __private))
   45: 
   46: #define _ps_to_runestate(ps)    ((_RuneState *)(void *)(ps))
   47: #define _ps_to_runelocale(ps)   (_ps_to_runestate(ps)->rs_runelocale)
   48: #define _ps_to_private(ps)      ((void *)&_ps_to_runestate(ps)->rs_private)
   49:         
   50: #endif /*_MULTIBYTE_H_*/