diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-02 23:50:56 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-01-06 16:38:25 +0100 |
commit | 78bb33c3f917fe149b5d5af72e19b271a8575381 (patch) | |
tree | 4b9f0f8a259b724d9f01320d0dec7e3ed9f75ad1 | |
parent | 3ccdc75df65d3cc31006ed4c4c09bc8db9087563 (diff) | |
download | msitools-78bb33c3f917fe149b5d5af72e19b271a8575381.tar.gz msitools-78bb33c3f917fe149b5d5af72e19b271a8575381.tar.xz msitools-78bb33c3f917fe149b5d5af72e19b271a8575381.zip |
Add missing util.vala
-rw-r--r-- | src/util.vala | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/util.vala b/src/util.vala new file mode 100644 index 0000000..d9a12cc --- /dev/null +++ b/src/util.vala @@ -0,0 +1,59 @@ +namespace Wixl { + + public errordomain Error { + FAILED + } + + namespace UUID { + [CCode (cname = "uuid_generate", cheader_filename = "uuid/uuid.h")] + internal extern static void generate ([CCode (array_length = false)] uchar[] uuid); + [CCode (cname = "uuid_unparse", cheader_filename = "uuid/uuid.h")] + internal extern static void unparse ([CCode (array_length = false)] uchar[] uuid, + [CCode (array_length = false)] uchar[] output); + } + + string uuid_generate () { + var udn = new uchar[50]; + var id = new uchar[16]; + + UUID.generate (id); + UUID.unparse (id, udn); + + return (string) udn; + } + + string add_braces (string str) { + return "{" + str + "}"; + } + long now () { + var tv = TimeVal (); + tv.get_current_time (); + return tv.tv_sec; + } + + uint64 time_to_filetime (long t) { + return (t + 134774ULL * 86400ULL) * 10000000ULL; + } + + string get_attribute_content (Xml.Attr *attr) { + if (attr->children == null) + return ""; + + return attr->children->content; + } + + public string indent (string space, string text) { + var indented = ""; + + foreach (var l in text.split ("\n")) { + if (indented.length != 0) + indented += "\n"; + + if (l.length != 0) + indented += space + l; + } + + return indented; + } + +} // Wixl |