summaryrefslogtreecommitdiff
path: root/source/utilities/String_s.h
diff options
context:
space:
mode:
authorAleksandar Bozhinovski <aleksandar.bozhinovski@seavus.com>2012-03-09 10:01:30 +0100
committerViktor Mladenovski <viktor.mladenovski@seavus.com>2012-05-25 14:44:41 +0200
commit097f8ed81e50b5efda28c6a2837e75e15b5812e4 (patch)
treeb5bcd77081ef11630a9f77c8cdf8d3e504231a3b /source/utilities/String_s.h
parent682f6b9fbd2f7296b53896b0d534627e7bcf255d (diff)
Build Lcd Lcm .dll under Linux
Build 32-bit and 64-bit LCD and LCM .dll under Linux using mingw cross compiler ST-Ericsson ID: 412641 ST-Ericsson FOSS-OUT ID: STETL-FOSS-OUT-10204 Change-Id: I9dbb0dfb17f1d51b1ee3528e5dae44cb0dc81a87 Change-Id: I814b561c243a56412fdc29f8b046a6a8648bd297 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/47975 Reviewed-by: QABUILD Reviewed-by: QATEST Tested-by: Viktor MLADENOVSKI <viktor.mladenovski@stericsson.com> Reviewed-by: Viktor MLADENOVSKI <viktor.mladenovski@stericsson.com> Reviewed-by: Vlatko PISTOLOV <vlatko.pistolov@seavus.com> Tested-by: Vlatko PISTOLOV <vlatko.pistolov@seavus.com>
Diffstat (limited to 'source/utilities/String_s.h')
-rw-r--r--source/utilities/String_s.h80
1 files changed, 80 insertions, 0 deletions
diff --git a/source/utilities/String_s.h b/source/utilities/String_s.h
new file mode 100644
index 0000000..88179e8
--- /dev/null
+++ b/source/utilities/String_s.h
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * Copyright (C) ST-Ericsson SA 2012
+ * License terms: 3-clause BSD license
+ ******************************************************************************/
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
+#include <strings.h>
+
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+
+/*
+ * str manipulation functions used in windows build
+ */
+
+char *strcpy_s(char *dst, size_t _Size, const char *src);
+char *strncpy_s(char *dst, const char *src, size_t _Size);
+#ifndef __MINGW32__
+int _stricmp(const char *s1, const char *s2);
+#endif
+int sprintf_s(char *dst, size_t _Size, const char *format, ...);
+
+#define _snprintf snprintf
+
+template <size_t _Size>
+char *strcpy_s(char(&dst)[_Size], const char src[])
+{
+ return strncpy(dst, src, _Size);
+}
+
+template<size_t _Size>
+int sprintf_s(char(&dst)[_Size], const char *format, ...)
+{
+ int ReturnValue;
+ va_list l;
+ va_start(l, format);
+ ReturnValue = vsnprintf(dst, _Size, format, l);
+ va_end(l);
+ return ReturnValue;
+}
+
+template <size_t _Size>
+char *strcat_s(char(&dst)[_Size], const char src[])
+{
+ return strncat(dst, src, _Size);
+}
+
+template <size_t _Size>
+int _ultoa_s(unsigned long value, char(&str)[_Size], int radix)
+{
+ switch (radix) {
+ case 10:
+ return sprintf_s(str, "%ul", value);
+
+ case 16:
+ return sprintf_s(str, "%ulX", value);
+
+ default:
+ return -1;
+ }
+}
+
+template<size_t _Size>
+int _snprintf_s(char(&dst)[_Size], size_t _MaxCount, const char *format, ...)
+{
+ int ReturnValue;
+ va_list l;
+ va_start(l, format);
+ ReturnValue = vsnprintf(dst, MAX(_MaxCount, _Size), format, l);
+ va_end(l);
+ return ReturnValue;
+}
+
+template<size_t _Size>
+int vsprintf_s(char(&dst)[_Size], const char *format, va_list l)
+{
+ return vsnprintf(dst, _Size, format, l);
+}
+
+