//========= 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 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 char* ParseFile(char* pFileBytes, OUT_Z_ARRAY char (&pTokenOut)[count], bool* pWasQuoted) // (same exact thing as the const version) { return const_cast( ParseFileInternal(pFileBytes, pTokenOut, pWasQuoted, NULL, count)); } #endif // FILESYSTEM_HELPERS_H