From b192eeed5b9af0bf0e31d251ee0121b22afffd4a Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Sun, 11 Mar 2007 22:29:54 -0400 Subject: [PATCH] Add saxdb_write_sint() to handle signed values. src/saxdb.* (saxdb_write_sint): New function. --- src/saxdb.c | 8 ++++++++ src/saxdb.h | 1 + 2 files changed, 9 insertions(+) diff --git a/src/saxdb.c b/src/saxdb.c index 6439af0..bfb93ca 100644 --- a/src/saxdb.c +++ b/src/saxdb.c @@ -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; diff --git a/src/saxdb.h b/src/saxdb.h index bc063c0..0a2eecb 100644 --- a/src/saxdb.h +++ b/src/saxdb.h @@ -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); -- 2.20.1