diff --git a/doc/PyConDC_2003/bpl_mods.txt b/doc/PyConDC_2003/bpl_mods.txt
index 299e71b8..d42f00f8 100644
--- a/doc/PyConDC_2003/bpl_mods.txt
+++ b/doc/PyConDC_2003/bpl_mods.txt
@@ -27,7 +27,6 @@ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Somerville, MA 02143
:Contact: dave@boost-consulting.com
:organization: `Boost Consulting`_
-:date: $Date$
:status: This is a "work in progress"
:version: 1
:copyright: Copyright David Abrahams 2002. All rights reserved
diff --git a/doc/PyConDC_2003/default.css b/doc/PyConDC_2003/default.css
index 6a1adb08..f8109bbd 100644
--- a/doc/PyConDC_2003/default.css
+++ b/doc/PyConDC_2003/default.css
@@ -1,8 +1,6 @@
/*
:Author: David Goodger
:Contact: goodger@users.sourceforge.net
-:date: $Date$
-:version: $Revision$
:copyright: This stylesheet has been placed in the public domain.
boostinspect:nolicense
diff --git a/doc/tutorial/doc/html/index.html b/doc/tutorial/doc/html/index.html
index d63480c1..6e43c390 100644
--- a/doc/tutorial/doc/html/index.html
+++ b/doc/tutorial/doc/html/index.html
@@ -124,7 +124,7 @@
>>> import hello_ext
->>> print hello.greet()
+>>> print hello_ext.greet()
hello, world
diff --git a/doc/tutorial/doc/tutorial.qbk b/doc/tutorial/doc/tutorial.qbk
index f1697fae..94ecc55b 100644
--- a/doc/tutorial/doc/tutorial.qbk
+++ b/doc/tutorial/doc/tutorial.qbk
@@ -62,7 +62,7 @@ resulting DLL is now visible to Python. Here's a sample Python session:
[python]
>>> import hello_ext
- >>> print hello.greet()
+ >>> print hello_ext.greet()
hello, world
[c++]
diff --git a/doc/v2/slice.html b/doc/v2/slice.html
index 8831d971..fb6b47c7 100644
--- a/doc/v2/slice.html
+++ b/doc/v2/slice.html
@@ -85,7 +85,7 @@ namespace boost { namespace python
object stop();
object step();
- // The return type of slice::get_indicies()
+ // The return type of slice::get_indices()
template <typename RandomAccessIterator>
struct range
{
@@ -96,7 +96,7 @@ namespace boost { namespace python
template <typename RandomAccessIterator>
range<RandomAccessIterator>
- get_indicies(
+ get_indices(
RandomAccessIterator const& begin,
RandomAccessIterator const& end);
};
@@ -164,7 +164,7 @@ slice object, but in practice they are usually integers.
template <typename RandomAccessIterator>
slice::range<RandomAccessIterator>
-slice::get_indicies(
+slice::get_indices(
RandomAccessIterator const& begin,
RandomAccessIterator const& end) const;
@@ -173,8 +173,8 @@ slice::get_indicies(
Iterators that form a half-open range.
Effects: Create a RandomAccessIterator pair that defines a
fully-closed range within the [begin,end) range of its arguments.
-This function translates this slice's indicies while accounting for the
-effects of any PyNone or negative indicies, and non-singular step sizes.
+This function translates this slice's indices while accounting for the
+effects of any PyNone or negative indices, and non-singular step sizes.
Returns: a slice::range
that has been initialized with a non-zero value of step and a pair of
RandomAccessIterators that point within the range of this functions
@@ -182,7 +182,7 @@ arguments and define a closed interval.
Throws: Raises a Python TypeError exception if any of this slice's arguments
are neither references to PyNone nor convertible to int. Throws
std::invalid_argument if the resulting range would be empty. You
-should always wrap calls to slice::get_indicies()
+should always wrap calls to slice::get_indices()
within try { ...; } catch (std::invalid_argument) {} to
handle this case and take appropriate action.
Rationale: closed-interval: If
@@ -221,7 +221,7 @@ double partial_sum(std::vector<double> const& Foo, const slice index)
{
slice::range<std::vector<double>::const_iterator> bounds;
try {
- bounds = index.get_indicies<>(Foo.begin(), Foo.end());
+ bounds = index.get_indices<>(Foo.begin(), Foo.end());
}
catch (std::invalid_argument) {
return 0.0;
diff --git a/doc/v2/with_custodian_and_ward.html b/doc/v2/with_custodian_and_ward.html
index 5f03b3b1..b8e2a498 100644
--- a/doc/v2/with_custodian_and_ward.html
+++ b/doc/v2/with_custodian_and_ward.html
@@ -91,7 +91,7 @@
This header provides faciliites for establishing a lifetime
+ This header provides facilities for establishing a lifetime
dependency between two of a function's Python argument or result objects.
The ward object will not be destroyed until after the custodian as
long as the custodian object supports = 0x03000000
unaryfunc py_unicode_as_string_unaryfunc = PyUnicode_AsUTF8String;
+#endif
// A SlotPolicy for extracting C++ strings from Python objects.
struct string_rvalue_from_python
@@ -431,7 +433,10 @@ namespace
if (!result.empty())
{
int err = PyUnicode_AsWideChar(
- (PyUnicodeObject *)intermediate
+#if PY_VERSION_HEX < 0x03020000
+ (PyUnicodeObject *)
+#endif
+ intermediate
, &result[0]
, result.size());
diff --git a/src/converter/from_python.cpp b/src/converter/from_python.cpp
index 0af47609..9678be1c 100644
--- a/src/converter/from_python.cpp
+++ b/src/converter/from_python.cpp
@@ -44,11 +44,8 @@ BOOST_PYTHON_DECL rvalue_from_python_stage1_data rvalue_from_python_stage1(
// First check to see if it's embedded in an extension class
// instance, as a special case.
data.convertible = objects::find_instance_impl(source, converters.target_type, converters.is_shared_ptr);
- if (data.convertible)
- {
data.construct = 0;
- }
- else
+ if (!data.convertible)
{
for (rvalue_from_python_chain const* chain = converters.rvalue_chain;
chain != 0;
diff --git a/src/object/class.cpp b/src/object/class.cpp
index 3f818d82..aeef688e 100644
--- a/src/object/class.cpp
+++ b/src/object/class.cpp
@@ -76,11 +76,11 @@ extern "C"
static int property_init(PyObject *self, PyObject *args, PyObject *kwds)
{
PyObject *get = NULL, *set = NULL, *del = NULL, *doc = NULL;
- static char *kwlist[] = {"fget", "fset", "fdel", "doc", 0};
+ static const char *kwlist[] = {"fget", "fset", "fdel", "doc", 0};
propertyobject *prop = (propertyobject *)self;
if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OOOO:property",
- kwlist, &get, &set, &del, &doc))
+ const_cast(kwlist), &get, &set, &del, &doc))
return -1;
if (get == Py_None)
diff --git a/src/object/function.cpp b/src/object/function.cpp
index 9328e014..5c59cc77 100644
--- a/src/object/function.cpp
+++ b/src/object/function.cpp
@@ -433,23 +433,23 @@ void function::add_to_namespace(
if (attribute.ptr()->ob_type == &function_type)
{
function* new_func = downcast(attribute.ptr());
- PyObject* dict = 0;
+ handle<> dict;
#if PY_VERSION_HEX < 0x03000000
// Old-style class gone in Python 3
if (PyClass_Check(ns))
- dict = ((PyClassObject*)ns)->cl_dict;
+ dict = handle<>(borrowed(((PyClassObject*)ns)->cl_dict));
else
#endif
if (PyType_Check(ns))
- dict = ((PyTypeObject*)ns)->tp_dict;
+ dict = handle<>(borrowed(((PyTypeObject*)ns)->tp_dict));
else
- dict = PyObject_GetAttrString(ns, const_cast("__dict__"));
+ dict = handle<>(PyObject_GetAttrString(ns, const_cast("__dict__")));
if (dict == 0)
throw_error_already_set();
- handle<> existing(allow_null(::PyObject_GetItem(dict, name.ptr())));
+ handle<> existing(allow_null(::PyObject_GetItem(dict.get(), name.ptr())));
if (existing)
{
diff --git a/test/Jamfile.v2 b/test/Jamfile.v2
index 876fde12..55241880 100644
--- a/test/Jamfile.v2
+++ b/test/Jamfile.v2
@@ -3,11 +3,15 @@
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
import python ;
+import os ;
+
+lib socket ;
use-project /boost/python : ../build ;
project /boost/python/test
: requirements
gcc:-Wextra
+ qnxnto:socket
;
local PY = ;
diff --git a/test/slice.cpp b/test/slice.cpp
index 032bf7cf..5072d7f7 100644
--- a/test/slice.cpp
+++ b/test/slice.cpp
@@ -98,9 +98,9 @@ bool accept_slice( slice) { return true; }
#if BOOST_WORKAROUND( BOOST_MSVC, BOOST_TESTED_AT(1400)) \
|| BOOST_WORKAROUND( BOOST_INTEL_WIN, == 710)
-int check_slice_get_indicies(slice index);
+int check_slice_get_indices(slice index);
#endif
-int check_slice_get_indicies(
+int check_slice_get_indices(
#if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
const
#endif
@@ -116,7 +116,7 @@ int check_slice_get_indicies(
slice::range::iterator> bounds;
try {
- bounds = index.get_indicies(coll.begin(), coll.end());
+ bounds = index.get_indices(coll.begin(), coll.end());
}
catch (std::invalid_argument) {
return 0;
@@ -136,5 +136,5 @@ BOOST_PYTHON_MODULE(slice_ext)
def( "accept_slice", accept_slice);
def( "check_numeric_array_rich_slice", check_numeric_array_rich_slice);
def( "check_string_rich_slice", check_string_rich_slice);
- def( "check_slice_get_indicies", check_slice_get_indicies);
+ def( "check_slice_get_indices", check_slice_get_indices);
}
diff --git a/test/slice.py b/test/slice.py
index c281845b..95f4883b 100644
--- a/test/slice.py
+++ b/test/slice.py
@@ -37,17 +37,17 @@ test passed
... print 1
...
1
->>> check_slice_get_indicies( slice(None))
+>>> check_slice_get_indices( slice(None))
0
->>> check_slice_get_indicies( slice(2,-2))
+>>> check_slice_get_indices( slice(2,-2))
0
->>> check_slice_get_indicies( slice(2, None, 2))
+>>> check_slice_get_indices( slice(2, None, 2))
5
->>> check_slice_get_indicies( slice(2, None, -1))
+>>> check_slice_get_indices( slice(2, None, -1))
-12
->>> check_slice_get_indicies( slice( 20, None))
+>>> check_slice_get_indices( slice( 20, None))
0
->>> check_slice_get_indicies( slice( -2, -5, -2))
+>>> check_slice_get_indices( slice( -2, -5, -2))
6
"""