• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /* Elementary types and macros for the GNU UniString library.
2     Copyright (C) 2002, 2005-2006, 2009-2012 Free Software Foundation, Inc.
3  
4     This program is free software: you can redistribute it and/or modify it
5     under the terms of the GNU General Public License as published
6     by the Free Software Foundation; either version 3 of the License, or
7     (at your option) any later version.
8  
9     This program is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     General Public License for more details.
13  
14     You should have received a copy of the GNU General Public License
15     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
16  
17  #ifndef _UNITYPES_H
18  #define _UNITYPES_H
19  
20  /* Get uint8_t, uint16_t, uint32_t.  */
21  #include <stdint.h>
22  
23  /* Type representing a Unicode character.  */
24  typedef uint32_t ucs4_t;
25  
26  /* Attribute of a function whose result depends only on the arguments
27     (not pointers!) and which has no side effects.  */
28  #ifndef _UC_ATTRIBUTE_CONST
29  # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
30  #  define _UC_ATTRIBUTE_CONST __attribute__ ((__const__))
31  # else
32  #  define _UC_ATTRIBUTE_CONST
33  # endif
34  #endif
35  
36  /* Attribute of a function whose result depends only on the arguments
37     (possibly pointers) and global memory, and which has no side effects.  */
38  #ifndef _UC_ATTRIBUTE_PURE
39  # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
40  #  define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__))
41  # else
42  #  define _UC_ATTRIBUTE_PURE
43  # endif
44  #endif
45  
46  #endif /* _UNITYPES_H */
47