X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;ds=sidebyside;f=source%2Fcommon%2Fuuid.cpp;h=a5cd6fad854c7f6d1b870125b7ae2bb2c8d58d93;hb=8aa0ad46d043c17642b0064b26770d98d2c37898;hp=104035eb49b77b0d16f4d2bfb8759bc4eb1deca1;hpb=45729fca56479bd9158486e0cda0c4a94b4dd1dc;p=xestiaab%2F.git
diff --git a/source/common/uuid.cpp b/source/common/uuid.cpp
index 104035e..a5cd6fa 100644
--- a/source/common/uuid.cpp
+++ b/source/common/uuid.cpp
@@ -1,48 +1,74 @@
+// uuid.cpp - UUID subroutines.
+//
+// (c) 2012-2015 Xestia Software Development.
+//
+// This file is part of Xestia Address Book.
+//
+// Xestia Address Book is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Address Book is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Address Book. If not, see
+
#include
wxString GenerateUUID()
{
#if defined(__WIN32__)
- UUID UUIDData;
- UuidCreate(&UUIDData);
- wchar_t* UUIDStr = 0;
- UuidToString(&UUIDData, (RPC_WSTR*)&UUIDStr);
- wxString Result(UUIDStr);
+#include
+ UUID UUIDData;
+ UuidCreate(&UUIDData);
+ wchar_t* UUIDStr = 0;
+ UuidToString(&UUIDData, (RPC_WSTR*)&UUIDStr);
+ wxString Result(UUIDStr);
#elif defined(__HAIKU__)
-
+
#else
-
-#include
-
- uuid_t *uuid;
- uuid_create(&uuid);
- char *strdata;
-
- //strdata = ;
-
- strdata = NULL;
-
- uuid_make(uuid, UUID_MAKE_V4);
- uuid_export(uuid, UUID_FMT_STR, &strdata, NULL);
- uuid_destroy(uuid);
-
- wxString Result = wxString::FromUTF8(strdata);
-
- delete strdata;
- strdata = NULL;
-
-#endif
-
+
+#include
+
+ wxString Result;
+
+ FILE *uuid_hdl = popen("uuidgen", "r");
+
+ if (uuid_hdl == NULL) {
return Result;
-
+ }
+
+ char strdata[64];
+ std::string uuidout;
+
+ size_t readsize;
+ int size = 0;
+ int maxsize = 63;
+
+ while (fgets(strdata, sizeof(strdata), uuid_hdl) != NULL){
+ uuidout.append(strdata);
+ }
+
+ pclose(uuid_hdl);
+
+ Result = wxString::Format(wxT("%s"), uuidout);
+ Result.Trim();
+
+#endif
+
+ return Result;
+
}
bool CheckUUID(wxString UUIDInc)
{
-
- bool Result = FALSE;
-
- return Result;
-
-}
\ No newline at end of file
+
+ bool Result = FALSE;
+
+ return Result;
+
+}