This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/source2013/sdk/public/filesystem_helpers.h
2020-08-04 13:13:01 -04:00

46 lines
1.5 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//===========================================================================//
#ifndef FILESYSTEM_HELPERS_H
#define FILESYSTEM_HELPERS_H
#ifdef _WIN32
#pragma once
#endif
struct characterset_t;
// Don't call this directly. You should (as long as your destination is an
// array) be able to call ParseFile, which is safer as it infers your array size
// for you.
const char* ParseFileInternal(const char* pFileBytes,
OUT_Z_CAP(nMaxTokenLen) char* pTokenOut,
bool* pWasQuoted, characterset_t* pCharSet,
size_t nMaxTokenLen);
// Call until it returns NULL. Each time you call it, it will parse out a token.
template <size_t count>
const char* ParseFile(const char* pFileBytes,
OUT_Z_ARRAY char (&pTokenOut)[count], bool* pWasQuoted,
characterset_t* pCharSet = NULL,
unsigned int nMaxTokenLen = (unsigned int)-1) {
(void*)nMaxTokenLen; // Avoid unreferenced variable warnings.
return ParseFileInternal(pFileBytes, pTokenOut, pWasQuoted, pCharSet,
count);
}
template <size_t count>
char* ParseFile(char* pFileBytes, OUT_Z_ARRAY char (&pTokenOut)[count],
bool* pWasQuoted) // (same exact thing as the const version)
{
return const_cast<char*>(
ParseFileInternal(pFileBytes, pTokenOut, pWasQuoted, NULL, count));
}
#endif // FILESYSTEM_HELPERS_H