summaryrefslogtreecommitdiffstats
path: root/catsprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'catsprintf.c')
-rw-r--r--catsprintf.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/catsprintf.c b/catsprintf.c
index 3ca8afb..c7c02e4 100644
--- a/catsprintf.c
+++ b/catsprintf.c
@@ -54,28 +54,36 @@ static const dmi_codes_major dmiCodesMajor[] = {
};
dmi_minor* dmiAppendObject(long code, char const *key, const char *format, ...) {
- static dmi_minor* next = NULL;
+ static dmi_minor* last = NULL;
//. int minor = code&0x00FF;
//. int major = code>>8;
va_list arg;
va_start(arg, format);
- printf("\nstart: %d\n", sizeof(dmi_minor));
dmi_minor *o = (dmi_minor *)malloc(sizeof(dmi_minor));
- printf("stop\n");
o->id = code;
- o->major = &(dmiCodesMajor[map_maj[code>>8]]);
+ o->major = &dmiCodesMajor[map_maj[code>>8]];
o->key = key;
vsprintf(o->value, format, arg);
- o->last = next;
+ o->next = last;
va_end(arg); /* cleanup */
- next = o;
+ last = o;
return o;
}
+int dmiSetItem(PyObject* dict, const char *key, const char *format, ...) {
+ va_list arg;
+ va_start(arg, format);
+ char buffer[2048];
+ vsprintf(buffer, format, arg);
+ va_end(arg);
+ PyDict_SetItem(pydata, key, Py_BuildValue("s", buffer));
+ return 0;
+}
+
int catsprintf(char *buf, const char *format, ...) {
if(format == NULL) {
bzero(buf, strlen(buf));