[Redbutton-devel] SF.net SVN: redbutton: [167] redbutton-browser/trunk
Brought to you by:
skilvington
|
From: <ski...@us...> - 2007-01-08 16:36:35
|
Revision: 167
http://svn.sourceforge.net/redbutton/?rev=167&view=rev
Author: skilvington
Date: 2007-01-08 08:36:27 -0800 (Mon, 08 Jan 2007)
Log Message:
-----------
in verbose mode, print the values of variables in Read/StorePersistent (I know why BBC News Multiscreen doesn't work\!)
Modified Paths:
--------------
redbutton-browser/trunk/ApplicationClass.c
redbutton-browser/trunk/VariableClass.c
redbutton-browser/trunk/VariableClass.h
Modified: redbutton-browser/trunk/ApplicationClass.c
===================================================================
--- redbutton-browser/trunk/ApplicationClass.c 2007-01-07 12:19:37 UTC (rev 166)
+++ redbutton-browser/trunk/ApplicationClass.c 2007-01-08 16:36:27 UTC (rev 167)
@@ -258,7 +258,7 @@
/* free any existing contents */
LIST_FREE_ITEMS(&p->data, OriginalValue, free_OriginalValue, safe_free);
- verbose("StorePersistent: '%.*s'", filename->size, filename->data);
+ verbose("StorePersistent: filename '%.*s'", filename->size, filename->data);
/* add the new values */
ref = params->in_variables;
@@ -268,6 +268,7 @@
{
if(var->rootClass.inst.rtti == RTTI_VariableClass)
{
+ verbose("StorePersistent: variable '%s'", VariableClass_stringValue(var));
val = safe_malloc(sizeof(LIST_TYPE(OriginalValue)));
OriginalValue_dup(&val->item, &var->inst.Value);
LIST_APPEND(&p->data, val);
@@ -315,7 +316,7 @@
/* find the file */
if((p = MHEGEngine_findPersistentData(filename, false)) != NULL)
{
- verbose("ReadPersistent: '%.*s'", filename->size, filename->data);
+ verbose("ReadPersistent: filename '%.*s'", filename->size, filename->data);
/* read the values into the variables */
ref = params->out_variables;
val = p->data;
@@ -328,6 +329,7 @@
{
/* free any existing data */
OriginalValue_copy(&var->inst.Value, &val->item);
+ verbose("ReadPersistent: variable '%s'", VariableClass_stringValue(var));
}
else
{
Modified: redbutton-browser/trunk/VariableClass.c
===================================================================
--- redbutton-browser/trunk/VariableClass.c 2007-01-07 12:19:37 UTC (rev 166)
+++ redbutton-browser/trunk/VariableClass.c 2007-01-08 16:36:27 UTC (rev 167)
@@ -234,3 +234,50 @@
return v->inst.Value.choice;
}
+/*
+ * returns a static string that will be overwritten by the next call to this routine
+ */
+
+static char *_value = NULL;
+
+char *
+VariableClass_stringValue(VariableClass *v)
+{
+ OctetString *oct;
+
+ switch(v->inst.Value.choice)
+ {
+ case OriginalValue_boolean:
+ _value = safe_realloc(_value, 16);
+ snprintf(_value, 16, "Boolean %s", v->inst.Value.u.boolean ? "true" : "false");
+ return _value;
+
+ case OriginalValue_integer:
+ _value = safe_realloc(_value, 64);
+ snprintf(_value, 64, "Integer %d", v->inst.Value.u.integer);
+ return _value;
+
+ case OriginalValue_octetstring:
+ oct = &v->inst.Value.u.octetstring;
+ _value = safe_realloc(_value, oct->size + 128);
+ snprintf(_value, oct->size + 128, "OctetString %u %.*s", oct->size, oct->size, oct->data);
+ return _value;
+
+ case OriginalValue_object_reference:
+ _value = safe_realloc(_value, PATH_MAX + 32);
+ snprintf(_value, PATH_MAX + 32, "ObjectReference %s", ObjectReference_name(&v->inst.Value.u.object_reference));
+ return _value;
+
+ case OriginalValue_content_reference:
+ oct = &v->inst.Value.u.content_reference;
+ _value = safe_realloc(_value, oct->size + 128);
+ snprintf(_value, oct->size + 128, "ContentReference %u %.*s", oct->size, oct->size, oct->data);
+ return _value;
+
+ default:
+ error("Unknown VariableClass %s; type: %d", ExternalReference_name(&v->rootClass.inst.ref), v->inst.Value.choice);
+ _value = safe_realloc(_value, 32);
+ snprintf(_value, 32, "Invalid VariableClass");
+ return _value;
+ }
+}
Modified: redbutton-browser/trunk/VariableClass.h
===================================================================
--- redbutton-browser/trunk/VariableClass.h 2007-01-07 12:19:37 UTC (rev 166)
+++ redbutton-browser/trunk/VariableClass.h 2007-01-08 16:36:27 UTC (rev 167)
@@ -19,5 +19,7 @@
unsigned int VariableClass_type(VariableClass *);
+char *VariableClass_stringValue(VariableClass *);
+
#endif /* __VARIABLECLASS_H__ */
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|