~ubuntu-branches/debian/experimental/inkscape/experimental

« back to all changes in this revision

Viewing changes to src/extension/script/CXX/Config.hxx

  • Committer: Bazaar Package Importer
  • Author(s): Thomas Viehmann
  • Date: 2008-09-09 23:29:02 UTC
  • mfrom: (1.1.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20080909232902-c50iujhk1w79u8e7
Tags: 0.46-2.1
* Non-maintainer upload.
* Add upstream patch fixing a crash in the open dialog
  in the zh_CN.utf8 locale. Closes: #487623.
  Thanks to Luca Bruno for the patch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//-----------------------------------------------------------------------------
 
2
//
 
3
// Copyright (c) 1998 - 2007, The Regents of the University of California
 
4
// Produced at the Lawrence Livermore National Laboratory
 
5
// All rights reserved.
 
6
//
 
7
// This file is part of PyCXX. For details,see http://cxx.sourceforge.net/. The
 
8
// full copyright notice is contained in the file COPYRIGHT located at the root
 
9
// of the PyCXX distribution.
 
10
//
 
11
// Redistribution  and  use  in  source  and  binary  forms,  with  or  without
 
12
// modification, are permitted provided that the following conditions are met:
 
13
//
 
14
//  - Redistributions of  source code must  retain the above  copyright notice,
 
15
//    this list of conditions and the disclaimer below.
 
16
//  - Redistributions in binary form must reproduce the above copyright notice,
 
17
//    this  list of  conditions  and  the  disclaimer (as noted below)  in  the
 
18
//    documentation and/or materials provided with the distribution.
 
19
//  - Neither the name of the UC/LLNL nor  the names of its contributors may be
 
20
//    used to  endorse or  promote products derived from  this software without
 
21
//    specific prior written permission.
 
22
//
 
23
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT  HOLDERS AND CONTRIBUTORS "AS IS"
 
24
// AND ANY EXPRESS OR  IMPLIED WARRANTIES, INCLUDING,  BUT NOT  LIMITED TO, THE
 
25
// IMPLIED WARRANTIES OF MERCHANTABILITY AND  FITNESS FOR A PARTICULAR  PURPOSE
 
26
// ARE  DISCLAIMED.  IN  NO  EVENT  SHALL  THE  REGENTS  OF  THE  UNIVERSITY OF
 
27
// CALIFORNIA, THE U.S.  DEPARTMENT  OF  ENERGY OR CONTRIBUTORS BE  LIABLE  FOR
 
28
// ANY  DIRECT,  INDIRECT,  INCIDENTAL,  SPECIAL,  EXEMPLARY,  OR CONSEQUENTIAL
 
29
// DAMAGES (INCLUDING, BUT NOT  LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR
 
30
// SERVICES; LOSS OF  USE, DATA, OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER
 
31
// CAUSED  AND  ON  ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT
 
32
// LIABILITY, OR TORT  (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING IN ANY  WAY
 
33
// OUT OF THE  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
 
34
// DAMAGE.
 
35
//
 
36
//-----------------------------------------------------------------------------
 
37
 
 
38
#ifndef __PyCXX_config_hh__
 
39
#define __PyCXX_config_hh__
 
40
 
 
41
//
 
42
// Microsoft VC++ 6.0 has no traits
 
43
//
 
44
#if defined( _MSC_VER )
 
45
 
 
46
#  define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 1
 
47
 
 
48
#elif defined( __GNUC__ )
 
49
#  if __GNUC__ >= 3
 
50
#    define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 1
 
51
#  else
 
52
#    define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 0
 
53
#endif
 
54
 
 
55
//
 
56
//      Assume all other compilers do
 
57
//
 
58
#else
 
59
 
 
60
// Macros to deal with deficiencies in compilers
 
61
#  define STANDARD_LIBRARY_HAS_ITERATOR_TRAITS 1
 
62
#endif
 
63
 
 
64
#if STANDARD_LIBRARY_HAS_ITERATOR_TRAITS
 
65
#  define random_access_iterator_parent(itemtype) std::iterator<std::random_access_iterator_tag,itemtype,int>
 
66
#else
 
67
#  define random_access_iterator_parent(itemtype) std::random_access_iterator<itemtype, int>
 
68
#endif
 
69
 
 
70
//
 
71
//      Which C++ standard is in use?
 
72
//
 
73
#if defined( _MSC_VER )
 
74
#  if _MSC_VER <= 1200
 
75
// MSVC++ 6.0
 
76
#    define PYCXX_ISO_CPP_LIB 0
 
77
#    define STR_STREAM <strstream>
 
78
#    define TEMPLATE_TYPENAME class
 
79
#  else
 
80
#    define PYCXX_ISO_CPP_LIB 1
 
81
#    define STR_STREAM <sstream>
 
82
#    define TEMPLATE_TYPENAME typename
 
83
#  endif
 
84
#elif defined( __GNUC__ )
 
85
#  if __GNUC__ >= 3
 
86
#    define PYCXX_ISO_CPP_LIB 1
 
87
#    define STR_STREAM <sstream>
 
88
#    define TEMPLATE_TYPENAME typename
 
89
#  else
 
90
#    define PYCXX_ISO_CPP_LIB 0
 
91
#    define STR_STREAM <strstream>
 
92
#    define TEMPLATE_TYPENAME class
 
93
#  endif
 
94
#endif
 
95
 
 
96
#if PYCXX_ISO_CPP_LIB
 
97
#    define STR_STREAM <sstream>
 
98
#    define OSTRSTREAM ostringstream
 
99
#    define EXPLICIT_TYPENAME typename
 
100
#    define EXPLICIT_CLASS class
 
101
#    define TEMPLATE_TYPENAME typename
 
102
#else
 
103
#    define STR_STREAM <strstream>
 
104
#    define OSTRSTREAM ostrstream
 
105
#    define EXPLICIT_TYPENAME
 
106
#    define EXPLICIT_CLASS
 
107
#    define TEMPLATE_TYPENAME class
 
108
#endif
 
109
 
 
110
// before 2.5 Py_ssize_t was missing
 
111
#ifndef PY_MAJOR_VERSION
 
112
#error not defined PY_MAJOR_VERSION
 
113
#endif
 
114
#if PY_MAJOR_VERSION < 2 || (PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 5)
 
115
typedef int Py_ssize_t;
 
116
#endif
 
117
 
 
118
#endif //  __PyCXX_config_hh__