summaryrefslogtreecommitdiff
path: root/public/filesystem_helpers.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/filesystem_helpers.h')
-rw-r--r--public/filesystem_helpers.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/public/filesystem_helpers.h b/public/filesystem_helpers.h
new file mode 100644
index 0000000..070e779
--- /dev/null
+++ b/public/filesystem_helpers.h
@@ -0,0 +1,36 @@
+//========= 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