Add saxdb_write_sint() to handle signed values.
authorMichael Poole <mdpoole@troilus.org>
Mon, 12 Mar 2007 02:29:54 +0000 (22:29 -0400)
committerMichael Poole <mdpoole@troilus.org>
Mon, 12 Mar 2007 02:29:54 +0000 (22:29 -0400)
src/saxdb.* (saxdb_write_sint): New function.

src/saxdb.c
src/saxdb.h

index 6439af0dfac95daa15621275363e6b8cf60edae6..bfb93ca2e3a046921af89206b067a9e115c308dc 100644 (file)
@@ -302,6 +302,14 @@ saxdb_write_int(struct saxdb_context *dest, const char *name, unsigned long valu
     saxdb_write_string(dest, name, buf);
 }
 
+void
+saxdb_write_sint(struct saxdb_context *dest, const char *name, long value) {
+    char buf[16];
+    /* we could optimize this to take advantage of the fact that buf will never need escapes */
+    snprintf(buf, sizeof(buf), "%ld", value);
+    saxdb_write_string(dest, name, buf);
+}
+
 static void
 saxdb_free(void *data) {
     struct saxdb *db = data;
index bc063c06ba8afc48e92d785659eead02986b66a1..0a2eecbc18c253c35d4eab8e21aa56091869232a 100644 (file)
@@ -55,6 +55,7 @@ void saxdb_end_record(struct saxdb_context *dest);
 void saxdb_write_string_list(struct saxdb_context *dest, const char *name, struct string_list *list);
 void saxdb_write_string(struct saxdb_context *dest, const char *name, const char *value);
 void saxdb_write_int(struct saxdb_context *dest, const char *name, unsigned long value);
+void saxdb_write_sint(struct saxdb_context *dest, const char *name, long value);
 
 /* For doing db writing by hand */
 struct saxdb_context *saxdb_open_context(FILE *f);