diff options
author | Aleksandar Bozhinovski <aleksandar.bozhinovski@seavus.com> | 2012-03-09 10:01:30 +0100 |
---|---|---|
committer | Viktor Mladenovski <viktor.mladenovski@seavus.com> | 2012-05-25 14:44:41 +0200 |
commit | 097f8ed81e50b5efda28c6a2837e75e15b5812e4 (patch) | |
tree | b5bcd77081ef11630a9f77c8cdf8d3e504231a3b /source/utilities/String_s.h | |
parent | 682f6b9fbd2f7296b53896b0d534627e7bcf255d (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.h | 80 |
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); +} + + |