From cbfaa9f71813ed7d233fa98dfb72c13a5cc0c68e Mon Sep 17 00:00:00 2001 From: Joerg Wunsch Date: Tue, 19 Mar 2024 23:08:17 +0100 Subject: [PATCH] Add an argout typemap for read_sib This allows to convert the read_sib result into a Python bytes() object. --- src/libavrdude.i | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/libavrdude.i b/src/libavrdude.i index 9d4b81a5..3e1d7a4d 100644 --- a/src/libavrdude.i +++ b/src/libavrdude.i @@ -291,6 +291,18 @@ typedef enum { $1 = arg1; } +%typemap(in, numinputs=0) char *sib (char temp[AVR_SIBLEN + 1]) { + $1 = temp; + } +%typemap(argout) char *sib { + if ($result == NULL) + $result = Py_None; + else if (PyLong_Check($result) && PyLong_AsLong($result) != 0) + $result = Py_None; + else + $result = PyBytes_FromStringAndSize((const char *)$1, AVR_SIBLEN); + } + %immutable; typedef struct programmer_t { LISTID id;