/*############################################################################ # Copyright 2016 Intel Corporation # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ############################################################################*/ /*! * \file * \brief Buffer handling utilities implementation. */ #include <stdarg.h> #include <util/strutil.h> #include <stdio.h> #if defined(_MSC_VER) && _MSC_VER < 1900 int vsnprintf(char* outBuf, size_t size, const char* format, va_list ap) { int count = -1; if (0 != size) { count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap); } if (-1 == count) { // vsnprintf returns "The number of characters that would have been // written if n had been sufficiently large" however _vsnprintf_s // returns -1 if the content was truncated. // _vscprintf calculates that value count = _vscprintf(format, ap); } return count; } int snprintf(char* outBuf, size_t size, const char* format, ...) { int count; va_list ap; va_start(ap, format); count = vsnprintf(outBuf, size, format, ap); va_end(ap); return count; } #endif