소스 검색

Fix a bug with lol::vformat() adding two terminating null chars.

legacy
Sam Hocevar 7 년 전
부모
커밋
b2fd4f1f5c
1개의 변경된 파일4개의 추가작업 그리고 4개의 파일을 삭제
  1. +4
    -4
      src/base/string.cpp

+ 4
- 4
src/base/string.cpp 파일 보기

@@ -103,9 +103,9 @@ std::string vformat(char const *format, va_list ap)
ap2 = ap;
#endif

/* vsnprintf() tells us how many character we need, and we need to
* add one for the terminating null byte. */
size_t needed = vsnprintf(nullptr, 0, format, ap2) + 1;
/* vsnprintf() tells us how many characters we need, not counting
* the terminating null character. */
size_t needed = vsnprintf(nullptr, 0, format, ap2);

#if defined va_copy || !defined _MSC_VER
/* do not call va_end() if va_copy() wasn't called. */
@@ -114,7 +114,7 @@ std::string vformat(char const *format, va_list ap)

std::string ret;
ret.resize(needed);
vsnprintf(&ret[0], needed, format, ap);
vsnprintf(&ret[0], needed + 1, format, ap);

return ret;
}


불러오는 중...
취소
저장