mirror of
https://github.com/Alukym/VMProtect-Source.git
synced 2025-06-11 16:28:21 -05:00
Initial commit
This commit is contained in:
36
third-party/scintilla/StringCopy.h
vendored
Normal file
36
third-party/scintilla/StringCopy.h
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
// Scintilla source code edit control
|
||||
/** @file StringCopy.h
|
||||
** Safe string copy function which always NUL terminates.
|
||||
** ELEMENTS macro for determining array sizes.
|
||||
**/
|
||||
// Copyright 2013 by Neil Hodgson <neilh@scintilla.org>
|
||||
// The License.txt file describes the conditions under which this software may be distributed.
|
||||
|
||||
#ifndef STRINGCOPY_H
|
||||
#define STRINGCOPY_H
|
||||
|
||||
#ifdef SCI_NAMESPACE
|
||||
namespace Scintilla {
|
||||
#endif
|
||||
|
||||
// Safer version of string copy functions like strcpy, wcsncpy, etc.
|
||||
// Instantiate over fixed length strings of both char and wchar_t.
|
||||
// May truncate if source doesn't fit into dest with room for NUL.
|
||||
|
||||
template <typename T, size_t count>
|
||||
void StringCopy(T (&dest)[count], const T* source) {
|
||||
for (size_t i=0; i<count; i++) {
|
||||
dest[i] = source[i];
|
||||
if (!source[i])
|
||||
break;
|
||||
}
|
||||
dest[count-1] = 0;
|
||||
}
|
||||
|
||||
#define ELEMENTS(a) (sizeof(a) / sizeof(a[0]))
|
||||
|
||||
#ifdef SCI_NAMESPACE
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user