🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #26951

Python3,c-api,PyUnicode_Decode - niszczy wskaźnik?

#26951
From: kenubi
Date: Wed, 18 Nov 2009 17:13
43 lines
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-mail

Show 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