mirror of
https://github.com/python/cpython.git
synced 2025-11-01 10:45:30 +00:00
- Added ability to get at strings embedded in the struct
- For the mac, added ability to get at pascal-style strings
This commit is contained in:
parent
e00637bdcf
commit
599f0d1c2c
2 changed files with 30 additions and 1 deletions
|
|
@ -108,6 +108,24 @@ getmember(addr, mlist, name)
|
|||
else
|
||||
v = newstringobject(*(char**)addr);
|
||||
break;
|
||||
case T_STRING_INPLACE:
|
||||
v = newstringobject((char*)addr);
|
||||
break;
|
||||
#ifdef macintosh
|
||||
case T_PSTRING:
|
||||
if (*(char**)addr == NULL) {
|
||||
INCREF(None);
|
||||
v = None;
|
||||
}
|
||||
else
|
||||
v = newsizedstringobject((*(char**)addr)+1,
|
||||
**(unsigned char**)addr);
|
||||
break;
|
||||
case T_PSTRING_INPLACE:
|
||||
v = newsizedstringobject(((char*)addr)+1,
|
||||
*(unsigned char*)addr);
|
||||
break;
|
||||
#endif /* macintosh */
|
||||
case T_CHAR:
|
||||
v = newsizedstringobject((char*)addr, 1);
|
||||
break;
|
||||
|
|
@ -140,7 +158,11 @@ setmember(addr, mlist, name, v)
|
|||
|
||||
for (l = mlist; l->name != NULL; l++) {
|
||||
if (strcmp(l->name, name) == 0) {
|
||||
if (l->readonly || l->type == T_STRING) {
|
||||
#ifdef macintosh
|
||||
if (l->readonly || l->type == T_STRING || l->type == T_PSTRING) {
|
||||
#else
|
||||
if (l->readonly || l->type == T_STRING ) {
|
||||
#endif /* macintosh */
|
||||
err_setstr(TypeError, "readonly attribute");
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue