[issue1135] xview/yview of Tix.Grid is broken

2007-09-08 Thread Hirokazu Yamamoto


Hirokazu Yamamoto
 added the comment:

Probably right fix is attached file "fix_tixGrid.patch"

__
Tracker <[EMAIL PROTECTED]>

__Index: Lib/lib-tk/Tix.py
===
--- Lib/lib-tk/Tix.py	(revision 58052)
+++ Lib/lib-tk/Tix.py	(working copy)
@@ -1865,16 +1865,16 @@
 # def size dim index ?option value ...?
 # def unset x y
 
-def xview(self):
-return self._getdoubles(self.tk.call(self, 'xview'))
+def xview(self, *args):
+return self._getdoubles(self.tk.call(self, 'xview', *args))
 def xview_moveto(self, fraction):
 self.tk.call(self,'xview', 'moveto', fraction)
 def xview_scroll(self, count, what="units"):
 "Scroll right (count>0) or left  of units|pages"
 self.tk.call(self, 'xview', 'scroll', count, what)
 
-def yview(self):
-return self._getdoubles(self.tk.call(self, 'yview'))
+def yview(self, *args):
+return self._getdoubles(self.tk.call(self, 'yview', *args))
 def yview_moveto(self, fraction):
 self.tk.call(self,'ysview', 'moveto', fraction)
 def yview_scroll(self, count, what="units"):
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1135] xview/yview of Tix.Grid is broken

2007-09-08 Thread Hirokazu Yamamoto

New submission from 
Hirokazu Yamamoto
:

Attached code "test_tixGrid.py" fails with following error message.

TypeError: yview() takes exactly 1 argument (4 given)

--
components: Tkinter
files: test_tixGrid.py
messages: 55762
nosy: ocean-city
severity: normal
status: open
title: xview/yview of Tix.Grid is broken
type: behavior
versions: Python 2.5

__
Tracker <[EMAIL PROTECTED]>

__import Tkinter as Tk

def scrollable(Widget, master, *a, **kw):

	frame = Tk.Frame(master)
	frame.grid_columnconfigure(0, weight=1)
	frame.grid_rowconfigure(0, weight=1)

	widget = Widget(frame, *a, **kw)
	widget.grid(row=0, column=0, sticky="news")

	scroll_x = Tk.Scrollbar(frame, command=widget.xview, orient=Tk.HORIZONTAL)
	scroll_x.grid(row=1, column=0, sticky="news")

	scroll_y = Tk.Scrollbar(frame, command=widget.yview, orient=Tk.VERTICAL)
	scroll_y.grid(row=0, column=1, sticky="news")

	widget.configure(xscrollcommand=scroll_x.set, yscrollcommand=scroll_y.set)

	for name in ("pack", "grid", "place"):
		setattr(widget, name, getattr(frame, name))

	return widget

import Tix

root = Tix.Tk()
grid = scrollable(Tix.Grid, root)
grid.pack(fill=Tix.BOTH, expand=True)
for y in xrange(30):
	for x in xrange(6):
		grid.set(x, y, text=repr((x, y)))
root.mainloop()
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1134] Parsing a simple script eats all of your memory

2007-09-08 Thread Viktor Ferenczi

Viktor Ferenczi added the comment:

Errata: In the first line of my original post I mean Python3.0a1 and not
3.0a2, certainly.

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1134] Parsing a simple script eats all of your memory

2007-09-08 Thread Viktor Ferenczi

Viktor Ferenczi added the comment:

Works fine (does nothing) with Python 2.4.4 and Python 2.5.1 under Windows, so 
this bug must be caused by some new code in Python3.0a1. The bug depends on the 
contents of the doc string. There's another strange behavior if you write the 
word "this" in the docstring somewhere. The docstring could be parsed as source 
code somehow and causes strange things to the new parser.

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1134] Parsing a simple script eats all of your memory

2007-09-08 Thread Viktor Ferenczi

Viktor Ferenczi added the comment:

Confirmed on Windows:

OS: Windows XP SP2 ENG
Python: Python3.0a1 MSI installer, default installation

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1134] Parsing a simple script eats all of your memory

2007-09-08 Thread Viktor Ferenczi

New submission from Viktor Ferenczi:

Read the WARNING below, then run the attached script with Python3.0a2.
It will eat all of your memory.

WARNING: Keep a process killing tool or an extra command line at your
fingertips, since this script could render your machine unusable in
about 10-20 seconds depending on your memory and CPU speed!!! YOU ARE
WARNED!

OS: Ubuntu Feisty, up-to-date
Python: Python3.0a1, built from sources,
configured with: --prefix=/usr/local

--
components: Interpreter Core
files: hungry_script.py
messages: 55758
nosy: complex
severity: critical
status: open
title: Parsing a simple script eats all of your memory
type: crash
versions: Python 3.0

__
Tracker <[EMAIL PROTECTED]>

__#!/usr/local/bin/python3.0
# -*- coding: ascii -*-

def this_will_eat_all_of_your_memory():
'''
Parsing this function will eat all of your memory. It's a BUG.
pass'''
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1133] python3.0-config raises SyntaxError

2007-09-08 Thread Viktor Ferenczi

New submission from Viktor Ferenczi:

Running python3.0-config raises SyntaxError:

$ python3.0-config
  File "/usr/local/bin/python3.0-config", line 33
print sysconfig.PREFIX
  ^
SyntaxError: invalid syntax

OS: Ununtu Feisty, up-to-date
Python: Python 3.0a1, compiled from source,
configured with: --prefix=/usr/local

--
components: Demos and Tools, Installation
messages: 55757
nosy: complex
severity: normal
status: open
title: python3.0-config raises SyntaxError
versions: Python 3.0

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1132] compile error in poplib.py

2007-09-08 Thread Bill Janssen

Bill Janssen added the comment:

Isn't this 1094?

--
nosy: +janssen

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1107] 2to3, lambda with non-tuple argument inside parenthesis

2007-09-08 Thread Collin Winter

Collin Winter added the comment:

Fixed in r58055, r58056.

--
resolution:  -> fixed
status: open -> closed

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1099] Mac compile fails with pydebug and framework enabled

2007-09-08 Thread Elias Pipping

Elias Pipping added the comment:

powerpc : macosx 10.4.10, xcode 2.4.1 (gcc 4.0.1 build 5367)
intel : macosx 10.4.10, xcode 2.5pre (gcc 4.0.1 build 5370)

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1132] compile error in poplib.py

2007-09-08 Thread André

New submission from André:

File "c:\Python30\lib\poplib.py", line 137, in _getlongresp
while line != '.':
TypeError: can't compare bytes and str

--
components: Library (Lib)
messages: 55753
nosy: andre
severity: normal
status: open
title: compile error in poplib.py
type: compile error
versions: Python 3.0

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1099] Mac compile fails with pydebug and framework enabled

2007-09-08 Thread Bill Janssen

Bill Janssen added the comment:

Which versions of OS X, please?  And which Xcode versions?

--
nosy: +janssen

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1125] bytes.split shold have same interface as str.split, or different name

2007-09-08 Thread Guido van Rossum

Changes by Guido van Rossum:


__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1125] bytes.split shold have same interface as str.split, or different name

2007-09-08 Thread Guido van Rossum

Changes by Guido van Rossum:


__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1125] bytes.split shold have same interface as str.split, or different name

2007-09-08 Thread Guido van Rossum

Guido van Rossum added the comment:

New version with corrected docstrings and buffer support for *split() as
well.  Added unittests.

__
Tracker <[EMAIL PROTECTED]>

__Index: Objects/bytesobject.c
===
--- Objects/bytesobject.c	(revision 58052)
+++ Objects/bytesobject.c	(working copy)
@@ -2104,7 +2104,7 @@
 Py_LOCAL_INLINE(PyObject *)
 split_char(const char *s, Py_ssize_t len, char ch, Py_ssize_t maxcount)
 {
-register Py_ssize_t i, j, count=0;
+register Py_ssize_t i, j, count = 0;
 PyObject *str;
 PyObject *list = PyList_New(PREALLOC_SIZE(maxcount));
 
@@ -2113,7 +2113,7 @@
 
 i = j = 0;
 while ((j < len) && (maxcount-- > 0)) {
-for(; j list of bytes\n\
+"B.split([sep [, maxsplit]]) -> list of bytes\n\
 \n\
-Return a list of the bytes in the string B, using sep as the\n\
-delimiter.  If maxsplit is given, at most maxsplit\n\
-splits are done.");
+Return a list of the bytes in the string B, using sep as the delimiter.\n\
+If sep is not given, B is split on ASCII whitespace charcters\n\
+(space, tab, return, newline, formfeed, vertical tab).\n\
+If maxsplit is given, at most maxsplit splits are done.");
 
 static PyObject *
 bytes_split(PyBytesObject *self, PyObject *args)
 {
 Py_ssize_t len = PyBytes_GET_SIZE(self), n, i, j;
-Py_ssize_t maxsplit = -1, count=0;
+Py_ssize_t maxsplit = -1, count = 0;
 const char *s = PyBytes_AS_STRING(self), *sub;
-PyObject *list, *str, *subobj;
+PyObject *list, *str, *subobj = Py_None;
+PyBuffer vsub;
 #ifdef USE_FAST
 Py_ssize_t pos;
 #endif
 
-if (!PyArg_ParseTuple(args, "O|n:split", &subobj, &maxsplit))
+if (!PyArg_ParseTuple(args, "|On:split", &subobj, &maxsplit))
 return NULL;
 if (maxsplit < 0)
 maxsplit = PY_SSIZE_T_MAX;
-if (PyBytes_Check(subobj)) {
-sub = PyBytes_AS_STRING(subobj);
-n = PyBytes_GET_SIZE(subobj);
-}
-/* XXX -> use the modern buffer interface */
-else if (PyObject_AsCharBuffer(subobj, &sub, &n))
+
+if (subobj == Py_None)
+return split_whitespace(s, len, maxsplit);
+
+if (_getbuffer(subobj, &vsub) < 0)
 return NULL;
+sub = vsub.buf;
+n = vsub.len;
 
 if (n == 0) {
 PyErr_SetString(PyExc_ValueError, "empty separator");
+PyObject_ReleaseBuffer(subobj, &vsub);
 return NULL;
 }
-else if (n == 1)
+if (n == 1)
 return split_char(s, len, sub[0], maxsplit);
 
 list = PyList_New(PREALLOC_SIZE(maxsplit));
-if (list == NULL)
+if (list == NULL) {
+PyObject_ReleaseBuffer(subobj, &vsub);
 return NULL;
+}
 
 #ifdef USE_FAST
 i = j = 0;
@@ -2198,10 +2243,12 @@
 #endif
 SPLIT_ADD(s, i, len);
 FIX_PREALLOC_SIZE(list);
+PyObject_ReleaseBuffer(subobj, &vsub);
 return list;
 
   onError:
 Py_DECREF(list);
+PyObject_ReleaseBuffer(subobj, &vsub);
 return NULL;
 }
 
@@ -2293,44 +2340,90 @@
 return NULL;
 }
 
+Py_LOCAL_INLINE(PyObject *)
+rsplit_whitespace(const char *s, Py_ssize_t len, Py_ssize_t maxcount)
+{
+register Py_ssize_t i, j, count = 0;
+PyObject *str;
+PyObject *list = PyList_New(PREALLOC_SIZE(maxcount));
+
+if (list == NULL)
+return NULL;
+
+for (i = j = len - 1; i >= 0; ) {
+	/* find a token */
+	while (i >= 0 && Py_UNICODE_ISSPACE(s[i]))
+	i--;
+	j = i;
+	while (i >= 0 && !Py_UNICODE_ISSPACE(s[i]))
+	i--;
+	if (j > i) {
+	if (maxcount-- <= 0)
+		break;
+	SPLIT_ADD(s, i + 1, j + 1);
+	while (i >= 0 && Py_UNICODE_ISSPACE(s[i]))
+		i--;
+	j = i;
+	}
+}
+if (j >= 0) {
+	SPLIT_ADD(s, 0, j + 1);
+}
+FIX_PREALLOC_SIZE(list);
+if (PyList_Reverse(list) < 0)
+goto onError;
+
+return list;
+
+  onError:
+Py_DECREF(list);
+return NULL;
+}
+
 PyDoc_STRVAR(rsplit__doc__,
 "B.rsplit(sep [,maxsplit]) -> list of bytes\n\
 \n\
-Return a list of the sections in the byte B, using sep as the\n\
-delimiter, starting at the end of the bytes and working\n\
-to the front.  If maxsplit is given, at most maxsplit splits are\n\
-done.");
+Return a list of the sections in the byte B, using sep as the delimiter,\n\
+starting at the end of the bytes and working to the front.\n\
+If sep is not given, B is split on ASCII whitespace characters\n\
+(space, tab, return, newline, formfeed, vertical tab).\n\
+If maxsplit is given, at most maxsplit splits are done.");
 
 static PyObject *
 bytes_rsplit(PyBytesObject *self, PyObject *args)
 {
 Py_ssize_t len = PyBytes_GET_SIZE(self), n, i, j;
-Py_ssize_t maxsplit = -1, count=0;
+Py_ssize_t maxsplit = -1, count = 0;
 const char *s = PyBytes_AS_STRING(self), *sub;
-PyObject *list, *str, *subobj;
+PyObject *list, *str, *subobj = Py_None;
+PyBuffer vsub;
 
-if (!PyArg_ParseTuple(args, "O|n:rsplit", &subobj,

[issue1125] bytes.split shold have same interface as str.split, or different name

2007-09-08 Thread Guido van Rossum

Guido van Rossum added the comment:

Updated patch that also modifies bytes.*strip().

__
Tracker <[EMAIL PROTECTED]>

__Index: Objects/bytesobject.c
===
--- Objects/bytesobject.c	(revision 58052)
+++ Objects/bytesobject.c	(working copy)
@@ -2104,7 +2104,7 @@
 Py_LOCAL_INLINE(PyObject *)
 split_char(const char *s, Py_ssize_t len, char ch, Py_ssize_t maxcount)
 {
-register Py_ssize_t i, j, count=0;
+register Py_ssize_t i, j, count = 0;
 PyObject *str;
 PyObject *list = PyList_New(PREALLOC_SIZE(maxcount));
 
@@ -2113,7 +2113,7 @@
 
 i = j = 0;
 while ((j < len) && (maxcount-- > 0)) {
-for(; j list of bytes\n\
+"B.split([sep [, maxsplit]]) -> list of bytes\n\
 \n\
 Return a list of the bytes in the string B, using sep as the\n\
-delimiter.  If maxsplit is given, at most maxsplit\n\
-splits are done.");
+delimiter.  If sep is not given, B is split on ASCII whitespace\n\
+characters (space, tab, return, newline, formfeed, vertical tab).\n\
+If maxsplit is given, at most maxsplit splits are done.");
 
 static PyObject *
 bytes_split(PyBytesObject *self, PyObject *args)
 {
 Py_ssize_t len = PyBytes_GET_SIZE(self), n, i, j;
-Py_ssize_t maxsplit = -1, count=0;
+Py_ssize_t maxsplit = -1, count = 0;
 const char *s = PyBytes_AS_STRING(self), *sub;
-PyObject *list, *str, *subobj;
+PyObject *list, *str, *subobj = Py_None;
 #ifdef USE_FAST
 Py_ssize_t pos;
 #endif
 
-if (!PyArg_ParseTuple(args, "O|n:split", &subobj, &maxsplit))
+if (!PyArg_ParseTuple(args, "|On:split", &subobj, &maxsplit))
 return NULL;
 if (maxsplit < 0)
 maxsplit = PY_SSIZE_T_MAX;
+
+if (subobj == Py_None)
+return split_whitespace(s, len, maxsplit);
+
 if (PyBytes_Check(subobj)) {
 sub = PyBytes_AS_STRING(subobj);
 n = PyBytes_GET_SIZE(subobj);
@@ -2167,7 +2211,7 @@
 PyErr_SetString(PyExc_ValueError, "empty separator");
 return NULL;
 }
-else if (n == 1)
+if (n == 1)
 return split_char(s, len, sub[0], maxsplit);
 
 list = PyList_New(PREALLOC_SIZE(maxsplit));
@@ -2293,26 +2337,71 @@
 return NULL;
 }
 
+Py_LOCAL_INLINE(PyObject *)
+rsplit_whitespace(const char *s, Py_ssize_t len, Py_ssize_t maxcount)
+{
+register Py_ssize_t i, j, count = 0;
+PyObject *str;
+PyObject *list = PyList_New(PREALLOC_SIZE(maxcount));
+
+if (list == NULL)
+return NULL;
+
+for (i = j = len - 1; i >= 0; ) {
+	/* find a token */
+	while (i >= 0 && Py_UNICODE_ISSPACE(s[i]))
+	i--;
+	j = i;
+	while (i >= 0 && !Py_UNICODE_ISSPACE(s[i]))
+	i--;
+	if (j > i) {
+	if (maxcount-- <= 0)
+		break;
+	SPLIT_ADD(s, i + 1, j + 1);
+	while (i >= 0 && Py_UNICODE_ISSPACE(s[i]))
+		i--;
+	j = i;
+	}
+}
+if (j >= 0) {
+	SPLIT_ADD(s, 0, j + 1);
+}
+FIX_PREALLOC_SIZE(list);
+if (PyList_Reverse(list) < 0)
+goto onError;
+
+return list;
+
+  onError:
+Py_DECREF(list);
+return NULL;
+}
+
 PyDoc_STRVAR(rsplit__doc__,
 "B.rsplit(sep [,maxsplit]) -> list of bytes\n\
 \n\
 Return a list of the sections in the byte B, using sep as the\n\
 delimiter, starting at the end of the bytes and working\n\
-to the front.  If maxsplit is given, at most maxsplit splits are\n\
-done.");
+to the front.  If sep is not given, B is split on ASCII whitespace\n\
+characters (space, tab, return, newline, formfeed, vertical tab).\n\
+If maxsplit is given, at most maxsplit splits are done.");
 
 static PyObject *
 bytes_rsplit(PyBytesObject *self, PyObject *args)
 {
 Py_ssize_t len = PyBytes_GET_SIZE(self), n, i, j;
-Py_ssize_t maxsplit = -1, count=0;
+Py_ssize_t maxsplit = -1, count = 0;
 const char *s = PyBytes_AS_STRING(self), *sub;
-PyObject *list, *str, *subobj;
+PyObject *list, *str, *subobj = Py_None;
 
-if (!PyArg_ParseTuple(args, "O|n:rsplit", &subobj, &maxsplit))
+if (!PyArg_ParseTuple(args, "|On:rsplit", &subobj, &maxsplit))
 return NULL;
 if (maxsplit < 0)
 maxsplit = PY_SSIZE_T_MAX;
+
+if (subobj == Py_None)
+return rsplit_whitespace(s, len, maxsplit);
+
 if (PyBytes_Check(subobj)) {
 sub = PyBytes_AS_STRING(subobj);
 n = PyBytes_GET_SIZE(subobj);
@@ -2546,23 +2635,33 @@
 \n\
 Strip leading and trailing bytes contained in the argument.");
 static PyObject *
-bytes_strip(PyBytesObject *self, PyObject *arg)
+bytes_strip(PyBytesObject *self, PyObject *args)
 {
 Py_ssize_t left, right, mysize, argsize;
 void *myptr, *argptr;
-if (arg == NULL || !PyBytes_Check(arg)) {
-PyErr_SetString(PyExc_TypeError, "strip() requires a bytes argument");
+PyObject *arg = NULL;
+PyBuffer varg;
+if (!PyArg_ParseTuple(args, "|O:strip", &arg))
 return NULL;
+if (arg == NULL) {
+argptr = "\t\n\r\f\v 

[issue1131] Reference Manual: "for statement" links to "break statement"

2007-09-08 Thread Martoon

New submission from Martoon:

Error in the Windows distro documentation.  If you go to "for" or "for
statement" in the index, it brings you to the doc page for "The break
statement."

--
components: Documentation, Windows
messages: 55749
nosy: Martoon
severity: minor
status: open
title: Reference Manual: "for statement" links to "break statement"
versions: Python 2.5

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1099] Mac compile fails with pydebug and framework enabled

2007-09-08 Thread Elias Pipping

Elias Pipping added the comment:

I can reproduce this problem on both an intel and a powerpc mac.

With '--with-pydebug --enable-framework --enable-universalsdk', the 
behavior is very much different:

On a powerpc mac, configure fails with
  'checking size of wchar_t...configure: error: cannot compute sizeof 
(wchar_t)'

On an intel mac, configure and make succeed; a test fails, though (which 
normally passes, e.g. when no arguments at all were passed to 
configure). The failing test is: test_xmlrpc.

--
nosy: +pipping

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1765140] logging: delay_fh option and configuration kwargs

2007-09-08 Thread Vinay Sajip

Vinay Sajip added the comment:

Thanks for the patch. I think it would be simpler to just implement an
optional delay parameter in FileHandler and its subclasses: then the
configuration stuff need not be touched at all, since the delay
parameter can be specified in the configuration file. There would then
be no need for a callback or a file-opening closure: If delay is False
(the default), FileHandler would behave as it does now. If True, then
the open code in FileHandler's constructor would be deferred until the
time emit() was called on the instance.

Would this meet your needs?

_
Tracker <[EMAIL PROTECTED]>

_
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue1125] bytes.split shold have same interface as str.split, or different name

2007-09-08 Thread Stefan Sonnenberg-Carstens

Stefan Sonnenberg-Carstens added the comment:

IMHO I also aggree that strings and bytes (list of bytes) should have
the same interface.
It is common sense that talking about strings most programmers think
of a list of bytes composing it (char *).
So the abbreviation should also hold true with python.

--
nosy: +pythonmeister

__
Tracker <[EMAIL PROTECTED]>

__
___
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com