+/*
+ * s must point to enough space, i.e. at least 37 bytes.
+ * this is constrained enough that sprintf could
+ * probably be avoided
+ */
+char *pd_uuid_get_string(pd_uuid_t *uuid, char *s) {
+ char *r;
+ int i;
+
+ r = s;
+
+ for (i=0;i<16;i++) {
+ r += sprintf(r, "%.2x", (int)uuid->data[i]);
+ if (i == 3 || i == 5 || i == 7 || i == 9) {
+ *r++ = '-';
+ *r = 0;
+ }
+ }
+
+ return s;
+}
+
+/*
+ * might be faster to sscanf in four bytes at a time
+ * and using htonl()
+ * A nybble loop might be faster yet.
+ */