source: libcaca/trunk/caca/caca_types.h.in @ 2821

Last change on this file since 2821 was 2821, checked in by Sam Hocevar, 11 years ago

Starting refactoring to get rid of libcucul. The initial reason for the
split is rendered moot by the plugin system: when enabled, binaries do
not link directly with libX11 or libGL. I hope this is a step towards
more consisteny and clarity.

File size: 2.7 KB
Line 
1/*
2 *  libcaca       Colour ASCII-Art library
3 *  libcaca       Colour ASCII-Art library
4 *  Copyright (c) 2008 Sam Hocevar <sam@zoy.org>
5 *                All Rights Reserved
6 *
7 *  $Id$
8 *
9 *  This library is free software; you can redistribute it and/or
10 *  modify it under the terms of the Do What The Fuck You Want To
11 *  Public License, Version 2, as published by Sam Hocevar. See
12 *  http://sam.zoy.org/wtfpl/COPYING for more details.
13 */
14
15/*
16 *  This file contains definitions for the C99 integer types.
17 */
18
19#ifndef __CACA_TYPES_H__
20#define __CACA_TYPES_H__
21
22#ifndef CACA_TYPES
23#   define CACA_TYPES @CACA_TYPES@
24#endif
25
26/* mode 1: standard <stdint.h> header is present, just include it */
27#if CACA_TYPES == 1
28#   include <stdint.h>
29#   include <unistd.h>
30
31/* mode 2: standard <inttypes.h> header is present, just include it */
32#elif CACA_TYPES == 2
33#   include <inttypes.h>
34#   include <unistd.h>
35
36/* mode 3: <windows.h> indicates Win32, only (u)intptr_t is present
37 * FIXME: Win64 probably doesn't work that way */
38#elif CACA_TYPES == 3
39#include <windows.h>
40
41typedef signed char int8_t;
42typedef signed short int16_t;
43typedef signed long int int32_t;
44typedef signed long long int int64_t;
45
46typedef unsigned char uint8_t;
47typedef unsigned short uint16_t;
48typedef unsigned long int uint32_t;
49typedef unsigned long long int uint64_t;
50
51typedef int ssize_t;
52typedef unsigned int size_t;
53
54/* fallback: nothing is known, we assume the platform is 32-bit and
55 * sizeof(long) == sizeof(void *). We don't typedef directly because we
56 * have no idea what other typedefs have already been made. */
57#else
58typedef signed char _caca_int8_t;
59typedef signed short _caca_int16_t;
60typedef signed long int _caca_int32_t;
61typedef signed long long int _caca_int64_t;
62#   undef int8_t
63#   define int8_t _caca_int8_t
64#   undef int16_t
65#   define int16_t _caca_int16_t
66#   undef int32_t
67#   define int32_t _caca_int32_t
68#   undef int64_t
69#   define int64_t _caca_int64_t
70
71typedef unsigned char _caca_uint8_t;
72typedef unsigned short _caca_uint16_t;
73typedef unsigned long int _caca_uint32_t;
74typedef unsigned long long int _caca_uint64_t;
75#   undef uint8_t
76#   define uint8_t _caca_uint8_t
77#   undef uint16_t
78#   define uint16_t _caca_uint16_t
79#   undef uint32_t
80#   define uint32_t _caca_uint32_t
81#   undef uint64_t
82#   define uint64_t _caca_uint64_t
83
84typedef long int _caca_intptr_t;
85typedef unsigned long int _caca_uintptr_t;
86#   undef intptr_t
87#   define intptr_t _caca_intptr_t
88#   undef uintptr_t
89#   define uintptr_t _caca_uintptr_t
90
91typedef int _caca_ssize_t;
92typedef unsigned int _caca_size_t;
93#   undef ssize_t
94#   define ssize_t _caca_ssize_t
95#   undef size_t
96#   define size_t _caca_size_t
97
98#endif
99
100#endif /* __CACA_TYPES_H__ */
101
Note: See TracBrowser for help on using the repository browser.