aboutsummaryrefslogtreecommitdiffstats
path: root/edify
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2009-06-18 10:11:50 -0700
committerDoug Zongker <dougz@android.com>2009-06-18 10:11:50 -0700
commit47cace98369f60df2351a65801c8065bb7f9dbf0 (patch)
treee030f48230e2e6e47204224018fc4c62db3d27ce /edify
parentfb2e3af3f915c0e3f2b4b027ef26777267ad46dc (diff)
downloadbootable_recovery-47cace98369f60df2351a65801c8065bb7f9dbf0.zip
bootable_recovery-47cace98369f60df2351a65801c8065bb7f9dbf0.tar.gz
bootable_recovery-47cace98369f60df2351a65801c8065bb7f9dbf0.tar.bz2
add file_getprop() to updater
Add a function to read a property from a ".prop"-formatted file (key=value pairs, one per line, ignore # comment lines and blank lines). Move ErrorAbort to the core of edify; it's not specific to updater now that errors aren't stored in the app cookie.
Diffstat (limited to 'edify')
-rw-r--r--edify/expr.c13
-rw-r--r--edify/expr.h4
2 files changed, 17 insertions, 0 deletions
diff --git a/edify/expr.c b/edify/expr.c
index f1c5555..72e5100 100644
--- a/edify/expr.c
+++ b/edify/expr.c
@@ -417,3 +417,16 @@ char** ReadVarArgs(State* state, int argc, Expr* argv[]) {
}
return args;
}
+
+// Use printf-style arguments to compose an error message to put into
+// *state. Returns NULL.
+char* ErrorAbort(State* state, char* format, ...) {
+ char* buffer = malloc(4096);
+ va_list v;
+ va_start(v, format);
+ vsnprintf(buffer, 4096, format, v);
+ va_end(v);
+ free(state->errmsg);
+ state->errmsg = buffer;
+ return NULL;
+}
diff --git a/edify/expr.h b/edify/expr.h
index 671b499..d2e7392 100644
--- a/edify/expr.h
+++ b/edify/expr.h
@@ -118,5 +118,9 @@ int ReadArgs(State* state, Expr* argv[], int count, ...);
// strings it contains.
char** ReadVarArgs(State* state, int argc, Expr* argv[]);
+// Use printf-style arguments to compose an error message to put into
+// *state. Returns NULL.
+char* ErrorAbort(State* state, char* format, ...);
+
#endif // _EXPRESSION_H