Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
377df980
Kaydet (Commit)
377df980
authored
Nis 03, 1997
tarafından
Jack Jansen
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
- Most errors are *not* OSErr style, so raise better exceptions (with
textual messages) - Plugged a memory leak or two
üst
cb2554ef
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
57 additions
and
27 deletions
+57
-27
ctbmodule.c
Mac/Modules/ctbmodule.c
+57
-27
No files found.
Mac/Modules/ctbmodule.c
Dosyayı görüntüle @
377df980
...
@@ -46,8 +46,35 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
...
@@ -46,8 +46,35 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define _CommToolboxTrap 0x8B
#define _CommToolboxTrap 0x8B
#define _UnimplementedOSTrap 0x9F
#define _UnimplementedOSTrap 0x9F
static
char
*
errornames
[]
=
{
"No Error"
,
"Rejected"
,
/* 1 */
"Failed"
,
/* 2 */
"Timeout"
,
/* 3 */
"Not Open"
,
/* 4 */
"Not Closed"
,
/* 5 */
"No Request Pending"
,
/* 6 */
"Not Supported"
,
/* 7 */
"No Tools"
,
/* 8 */
"User Cancel"
,
/* 9 */
"Error 10"
,
/* 10 */
"Unknown Error"
,
/* 11 */
#define MAX_POS_ERROR 11
};
extern
PyObject
*
PyErr_Mac
(
PyObject
*
,
int
);
extern
PyObject
*
PyErr_Mac
(
PyObject
*
,
int
);
static
PyObject
*
PyCtb_Error
(
PyObject
*
errobj
,
int
errcode
)
{
if
(
errcode
>
0
&&
errcode
<=
MAX_POS_ERROR
)
{
PyErr_SetString
(
errobj
,
errornames
[
errcode
]);
return
NULL
;
}
else
{
return
PyErr_Mac
(
errobj
,
errcode
);
}
}
static
PyObject
*
ErrorObject
;
static
PyObject
*
ErrorObject
;
typedef
struct
{
typedef
struct
{
...
@@ -90,15 +117,15 @@ initialize_ctb()
...
@@ -90,15 +117,15 @@ initialize_ctb()
return
0
;
return
0
;
}
}
if
(
(
err
=
InitCTBUtilities
())
)
{
if
(
(
err
=
InitCTBUtilities
())
)
{
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
return
0
;
return
0
;
}
}
if
(
(
err
=
InitCRM
())
)
{
if
(
(
err
=
InitCRM
())
)
{
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
return
0
;
return
0
;
}
}
if
(
(
err
=
InitCM
())
)
{
if
(
(
err
=
InitCM
())
)
{
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
return
0
;
return
0
;
}
}
initialized
=
1
;
initialized
=
1
;
...
@@ -178,8 +205,8 @@ ctbcm_open(self, args)
...
@@ -178,8 +205,8 @@ ctbcm_open(self, args)
if
(
!
PyArg_Parse
(
args
,
"l"
,
&
timeout
))
if
(
!
PyArg_Parse
(
args
,
"l"
,
&
timeout
))
return
NULL
;
return
NULL
;
if
(
(
err
=
CMOpen
(
self
->
hdl
,
self
->
has_callback
,
cb_upp
,
timeout
))
<
0
)
if
(
(
err
=
CMOpen
(
self
->
hdl
,
self
->
has_callback
,
cb_upp
,
timeout
))
!=
0
)
return
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
return
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
Py_INCREF
(
Py_None
);
Py_INCREF
(
Py_None
);
return
Py_None
;
return
Py_None
;
}
}
...
@@ -195,8 +222,8 @@ ctbcm_listen(self, args)
...
@@ -195,8 +222,8 @@ ctbcm_listen(self, args)
if
(
!
PyArg_Parse
(
args
,
"l"
,
&
timeout
))
if
(
!
PyArg_Parse
(
args
,
"l"
,
&
timeout
))
return
NULL
;
return
NULL
;
if
(
(
err
=
CMListen
(
self
->
hdl
,
self
->
has_callback
,
cb_upp
,
timeout
))
<
0
)
if
(
(
err
=
CMListen
(
self
->
hdl
,
self
->
has_callback
,
cb_upp
,
timeout
))
!=
0
)
return
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
return
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
Py_INCREF
(
Py_None
);
Py_INCREF
(
Py_None
);
return
Py_None
;
return
Py_None
;
}
}
...
@@ -211,8 +238,8 @@ ctbcm_accept(self, args)
...
@@ -211,8 +238,8 @@ ctbcm_accept(self, args)
if
(
!
PyArg_Parse
(
args
,
"i"
,
&
accept
))
if
(
!
PyArg_Parse
(
args
,
"i"
,
&
accept
))
return
NULL
;
return
NULL
;
if
(
(
err
=
CMAccept
(
self
->
hdl
,
accept
))
<
0
)
if
(
(
err
=
CMAccept
(
self
->
hdl
,
accept
))
!=
0
)
return
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
return
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
Py_INCREF
(
Py_None
);
Py_INCREF
(
Py_None
);
return
Py_None
;
return
Py_None
;
}
}
...
@@ -229,8 +256,8 @@ ctbcm_close(self, args)
...
@@ -229,8 +256,8 @@ ctbcm_close(self, args)
if
(
!
PyArg_Parse
(
args
,
"(li)"
,
&
timeout
,
&
now
))
if
(
!
PyArg_Parse
(
args
,
"(li)"
,
&
timeout
,
&
now
))
return
NULL
;
return
NULL
;
if
(
(
err
=
CMClose
(
self
->
hdl
,
self
->
has_callback
,
cb_upp
,
timeout
,
now
))
<
0
)
if
(
(
err
=
CMClose
(
self
->
hdl
,
self
->
has_callback
,
cb_upp
,
timeout
,
now
))
!=
0
)
return
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
return
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
Py_INCREF
(
Py_None
);
Py_INCREF
(
Py_None
);
return
Py_None
;
return
Py_None
;
}
}
...
@@ -244,7 +271,7 @@ ctbcm_read(self, args)
...
@@ -244,7 +271,7 @@ ctbcm_read(self, args)
int
chan
;
int
chan
;
CMFlags
flags
;
CMFlags
flags
;
OSErr
err
;
OSErr
err
;
PyObject
*
rv
;
PyObject
*
rv
,
*
rrv
;
ConnectionCompletionUPP
cb_upp
=
NewConnectionCompletionProc
(
ctbcm_ctbcallback
);
ConnectionCompletionUPP
cb_upp
=
NewConnectionCompletionProc
(
ctbcm_ctbcallback
);
if
(
!
PyArg_Parse
(
args
,
"(lil)"
,
&
len
,
&
chan
,
&
timeout
))
if
(
!
PyArg_Parse
(
args
,
"(lil)"
,
&
len
,
&
chan
,
&
timeout
))
...
@@ -252,10 +279,12 @@ ctbcm_read(self, args)
...
@@ -252,10 +279,12 @@ ctbcm_read(self, args)
if
((
rv
=
PyString_FromStringAndSize
(
NULL
,
len
))
==
NULL
)
if
((
rv
=
PyString_FromStringAndSize
(
NULL
,
len
))
==
NULL
)
return
NULL
;
return
NULL
;
if
((
err
=
CMRead
(
self
->
hdl
,
(
Ptr
)
PyString_AsString
(
rv
),
&
len
,
(
CMChannel
)
chan
,
if
((
err
=
CMRead
(
self
->
hdl
,
(
Ptr
)
PyString_AsString
(
rv
),
&
len
,
(
CMChannel
)
chan
,
self
->
has_callback
,
cb_upp
,
timeout
,
&
flags
))
<
0
)
self
->
has_callback
,
cb_upp
,
timeout
,
&
flags
))
!=
0
&&
err
!=
cmTimeOut
)
return
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
return
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
_PyString_Resize
(
&
rv
,
len
);
_PyString_Resize
(
&
rv
,
len
);
return
Py_BuildValue
(
"(Oi)"
,
rv
,
(
int
)
flags
);
rrv
=
Py_BuildValue
(
"(Oi)"
,
rv
,
(
int
)
flags
);
Py_DECREF
(
rv
);
return
rrv
;
}
}
static
PyObject
*
static
PyObject
*
...
@@ -273,8 +302,8 @@ ctbcm_write(self, args)
...
@@ -273,8 +302,8 @@ ctbcm_write(self, args)
return
NULL
;
return
NULL
;
len
=
ilen
;
len
=
ilen
;
if
((
err
=
CMWrite
(
self
->
hdl
,
(
Ptr
)
buf
,
&
len
,
(
CMChannel
)
chan
,
if
((
err
=
CMWrite
(
self
->
hdl
,
(
Ptr
)
buf
,
&
len
,
(
CMChannel
)
chan
,
self
->
has_callback
,
cb_upp
,
timeout
,
(
CMFlags
)
flags
))
<
0
)
self
->
has_callback
,
cb_upp
,
timeout
,
(
CMFlags
)
flags
))
!=
0
&&
err
!=
cmTimeOut
)
return
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
return
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
return
PyInt_FromLong
((
int
)
len
);
return
PyInt_FromLong
((
int
)
len
);
}
}
...
@@ -286,16 +315,18 @@ ctbcm_status(self, args)
...
@@ -286,16 +315,18 @@ ctbcm_status(self, args)
CMBufferSizes
sizes
;
CMBufferSizes
sizes
;
CMStatFlags
flags
;
CMStatFlags
flags
;
OSErr
err
;
OSErr
err
;
PyObject
*
rv
;
PyObject
*
rv
,
*
rrv
;
if
(
!
PyArg_NoArgs
(
args
))
if
(
!
PyArg_NoArgs
(
args
))
return
NULL
;
return
NULL
;
if
((
err
=
CMStatus
(
self
->
hdl
,
sizes
,
&
flags
))
<
0
)
if
((
err
=
CMStatus
(
self
->
hdl
,
sizes
,
&
flags
))
!=
0
)
return
Py
Err_Mac
(
ErrorObject
,
(
int
)
err
);
return
Py
Ctb_Error
(
ErrorObject
,
(
int
)
err
);
rv
=
Py_BuildValue
(
"(llllll)"
,
sizes
[
0
],
sizes
[
1
],
sizes
[
2
],
sizes
[
3
],
sizes
[
4
],
sizes
[
5
]);
rv
=
Py_BuildValue
(
"(llllll)"
,
sizes
[
0
],
sizes
[
1
],
sizes
[
2
],
sizes
[
3
],
sizes
[
4
],
sizes
[
5
]);
if
(
rv
==
NULL
)
if
(
rv
==
NULL
)
return
NULL
;
return
NULL
;
return
Py_BuildValue
(
"(Ol)"
,
rv
,
(
long
)
flags
);
rrv
=
Py_BuildValue
(
"(Ol)"
,
rv
,
(
long
)
flags
);
Py_DECREF
(
rv
);
return
rrv
;
}
}
static
PyObject
*
static
PyObject
*
...
@@ -320,13 +351,12 @@ ctbcm_setconfig(self, args)
...
@@ -320,13 +351,12 @@ ctbcm_setconfig(self, args)
PyObject
*
args
;
PyObject
*
args
;
{
{
char
*
cfg
;
char
*
cfg
;
OSErr
err
;
short
rv
;
if
(
!
PyArg_Parse
(
args
,
"s"
,
&
cfg
))
if
(
!
PyArg_Parse
(
args
,
"s"
,
&
cfg
))
return
NULL
;
return
NULL
;
if
((
err
=
CMSetConfig
(
self
->
hdl
,
(
Ptr
)
cfg
))
<
0
)
rv
=
CMSetConfig
(
self
->
hdl
,
(
Ptr
)
cfg
);
return
PyErr_Mac
(
ErrorObject
,
err
);
return
PyInt_FromLong
((
long
)
rv
);
return
PyInt_FromLong
((
int
)
err
);
}
}
static
PyObject
*
static
PyObject
*
...
@@ -439,7 +469,7 @@ ctbcm_setattr(self, name, v)
...
@@ -439,7 +469,7 @@ ctbcm_setattr(self, name, v)
if
(
v
==
NULL
)
{
if
(
v
==
NULL
)
{
v
=
Py_None
;
v
=
Py_None
;
}
}
Py_INCREF
(
v
);
/* XXXX Must I do this? */
Py_INCREF
(
v
);
self
->
callback
=
v
;
self
->
callback
=
v
;
self
->
has_callback
=
(
v
!=
Py_None
);
self
->
has_callback
=
(
v
!=
Py_None
);
return
0
;
return
0
;
...
@@ -495,7 +525,7 @@ ctb_cmnew(self, args)
...
@@ -495,7 +525,7 @@ ctb_cmnew(self, args)
return
NULL
;
return
NULL
;
}
}
if
(
(
procid
=
CMGetProcID
(
p_str
))
<
0
)
if
(
(
procid
=
CMGetProcID
(
p_str
))
<
0
)
return
Py
Err_Mac
(
ErrorObject
,
procid
);
return
Py
Ctb_Error
(
ErrorObject
,
procid
);
hdl
=
CMNew
(
procid
,
cmNoMenus
|
cmQuiet
,
sizes
,
0
,
0
);
hdl
=
CMNew
(
procid
,
cmNoMenus
|
cmQuiet
,
sizes
,
0
,
0
);
if
(
hdl
==
NULL
)
{
if
(
hdl
==
NULL
)
{
PyErr_SetString
(
ErrorObject
,
"CMNew failed"
);
PyErr_SetString
(
ErrorObject
,
"CMNew failed"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment