summaryrefslogtreecommitdiff
path: root/shared/systemFunctions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'shared/systemFunctions.cpp')
-rw-r--r--shared/systemFunctions.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/shared/systemFunctions.cpp b/shared/systemFunctions.cpp
new file mode 100644
index 00000000..4fd17fc1
--- /dev/null
+++ b/shared/systemFunctions.cpp
@@ -0,0 +1,37 @@
+#include "systemFunctions.h"
+
+#ifdef FFS_WIN
+#include <wx/msw/wrapwin.h> //includes "windows.h"
+
+#elif defined FFS_LINUX
+#include <string.h>
+#include <errno.h>
+#endif
+
+
+
+#ifdef FFS_WIN
+wxString FreeFileSync::getLastErrorFormatted(const unsigned long lastError) //try to get additional Windows error information
+{
+ //determine error code if none was specified
+ const unsigned long lastErrorCode = lastError == 0 ? ::GetLastError() : lastError;
+
+ wxString output = wxString(wxT("Windows Error Code ")) + wxString::Format(wxT("%u"), lastErrorCode);
+
+ WCHAR buffer[1001];
+ if (::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_MAX_WIDTH_MASK, 0, lastErrorCode, 0, buffer, 1001, NULL) != 0)
+ output += wxString(wxT(": ")) + buffer;
+ return output;
+}
+
+#elif defined FFS_LINUX
+wxString FreeFileSync::getLastErrorFormatted(const int lastError) //try to get additional Linux error information
+{
+ //determine error code if none was specified
+ const int lastErrorCode = lastError == 0 ? errno : lastError;
+
+ wxString output = wxString(wxT("Linux Error Code ")) + wxString::Format(wxT("%i"), lastErrorCode);
+ output += wxString(wxT(": ")) + ::strerror(lastErrorCode);
+ return output;
+}
+#endif
bgstack15