Article View: pl.comp.lang.python
Article #26951Python3,c-api,PyUnicode_Decode - niszczy wskaźnik?
From: kenubi
Date: Wed, 18 Nov 2009 17:13
Date: Wed, 18 Nov 2009 17:13
43 lines
1959 bytes
1959 bytes
Napisałem taką funkcję w swoim module (C) dla testu:
Python 3.1.1
---------------------------------------
wklejam:
static PyObject * py_test1(PyObject *self, PyObject *args)
{
PyObject *SO,*temp;
char *s;
if (!PyArg_ParseTuple(args,"U",&SO)) return NULL;
temp = PyUnicode_AsEncodedString(SO,"iso8859-2","replace");
if ( temp == NULL ) return NULL;
s = PyBytes_AsString(temp);
if ( s == NULL ) return NULL;
Py_DECREF(temp);
printf("<%s>\n",s);
temp = PyUnicode_Decode( s, strlen(s), "iso8859-2","strict");
printf("[%s]\n",s);
return Py_BuildValue("s",s);
}
----------------------------------
jak wołam dla ciągu: "ala,ma,kota " (4 spacje za kota)
to dostaję:
"<ala,ma,kota >"
"[ala,ma,kota ]"
'ala,ma,kota '
a jak dla ciągu: "ala,ma,kota " (5..12 spacji za kota,dla 13 jest O.K.)
to dostaję:
"<ala,ma,kota >"
"[8]"
'8'
?? PyUnicode_(tak, bez jego wywołania nic się nie dzieje) zniszczył
zawartość źródła?
To jest Bug czy ja czegoś nie zrozumiałem?
pozdrawiam
Technical Details
Message-ID:
<he1ak3$p68$1@nemesis.news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mailShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail From: kenubi <nono@no.pl> Newsgroups: pl.comp.lang.python Subject: Python3,c-api,PyUnicode_Decode - niszczy wskaźnik? Followup-To: pl.comp.lang.python Date: Wed, 18 Nov 2009 18:13:40 +0100 Organization: none Lines: 47 Message-ID: <he1ak3$p68$1@nemesis.news.neostrada.pl> NNTP-Posting-Host: alk134.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.neostrada.pl 1258565059 25800 83.17.40.134 (18 Nov 2009 17:24:19 GMT) X-Complaints-To: usenet@news.neostrada.pl NNTP-Posting-Date: Wed, 18 Nov 2009 17:24:19 +0000 (UTC) User-Agent: KNode/4.3.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit