summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-02 23:50:56 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2013-01-06 16:38:25 +0100
commit78bb33c3f917fe149b5d5af72e19b271a8575381 (patch)
tree4b9f0f8a259b724d9f01320d0dec7e3ed9f75ad1
parent3ccdc75df65d3cc31006ed4c4c09bc8db9087563 (diff)
downloadmsitools-78bb33c3f917fe149b5d5af72e19b271a8575381.tar.gz
msitools-78bb33c3f917fe149b5d5af72e19b271a8575381.tar.xz
msitools-78bb33c3f917fe149b5d5af72e19b271a8575381.zip
Add missing util.vala
-rw-r--r--src/util.vala59
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