summaryrefslogtreecommitdiff
path: root/param.c
diff options
context:
space:
mode:
Diffstat (limited to 'param.c')
-rw-r--r--param.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/param.c b/param.c
new file mode 100644
index 00000000..0b3296e3
--- /dev/null
+++ b/param.c
@@ -0,0 +1,46 @@
+#include <stdio.h>
+#include <string.h>
+#include <malloc.h>
+#include "param.h"
+
+void
+param_add_string(char *name, char *value, struct param_list **param, int *count)
+{
+ if (*count > 0) {
+ (*param)->name=malloc(strlen(value)+strlen(name)+2);
+ (*param)->value=(*param)->name+strlen(name)+1;
+ strcpy((*param)->name, name);
+ strcpy((*param)->value, value);
+ (*count)--;
+ (*param)++;
+ }
+
+}
+
+void
+param_add_dec(char *name, unsigned long value, struct param_list **param, int *count)
+{
+ char buffer[1024];
+ sprintf(buffer, "%ld", value);
+ param_add_string(name, buffer, param, count);
+}
+
+
+void
+param_add_hex(char *name, unsigned long value, struct param_list **param, int *count)
+{
+ char buffer[1024];
+ sprintf(buffer, "0x%lx", value);
+ param_add_string(name, buffer, param, count);
+}
+
+void
+param_add_hex_sig(char *name, long value, struct param_list **param, int *count)
+{
+ char buffer[1024];
+ if (value < 0)
+ sprintf(buffer, "-0x%lx", -value);
+ else
+ sprintf(buffer, "0x%lx", value);
+ param_add_string(name, buffer, param, count);
+}