X-Git-Url: http://Server1/repobrowser/?a=blobdiff_plain;f=source%2Fcommon%2Fuuid.cpp;h=e3751df2c950ab3b39644764a125f23fddb8a59a;hb=6dcb2ed929d861d7ca12bd2f646392b2dfaa9a51;hp=4ff8d1d21b854adfd0e3659164fa711bf55e4e4a;hpb=969329975a0af9d346c76dc34e9ff9cd54cc61ee;p=xestiaab%2F.git diff --git a/source/common/uuid.cpp b/source/common/uuid.cpp index 4ff8d1d..e3751df 100644 --- a/source/common/uuid.cpp +++ b/source/common/uuid.cpp @@ -1,52 +1,68 @@ +// 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__) -#elif defined(__APPLE__) - - wxString Result; - #else -#include +#include - uuid_t *uuid; - uuid_create(&uuid); - char *strdata; + wxString Result; - //strdata = ; + FILE *uuid_hdl = popen("uuidgen", "r"); - strdata = NULL; + if (uuid_hdl == NULL) { + return Result; + } - uuid_make(uuid, UUID_MAKE_V4); - uuid_export(uuid, UUID_FMT_STR, &strdata, NULL); - uuid_destroy(uuid); + char strdata[64]; + std::string uuidout; - wxString Result = wxString::FromUTF8(strdata); + size_t readsize; + int size = 0; + int maxsize = 63; - delete strdata; - strdata = NULL; + while (fgets(strdata, sizeof(strdata), uuid_hdl) != NULL){ + uuidout.append(strdata); + } -#endif + pclose(uuid_hdl); - return Result; + Result = wxString::Format(wxT("%s"), uuidout); + Result.Trim(); -} - -bool CheckUUID(wxString UUIDInc) -{ - - bool Result = FALSE; - - return Result; +#endif + return Result; + } \ No newline at end of file