summaryrefslogtreecommitdiff
path: root/hw2/src/util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hw2/src/util.cpp')
-rw-r--r--hw2/src/util.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/hw2/src/util.cpp b/hw2/src/util.cpp
new file mode 100644
index 0000000..917eef4
--- /dev/null
+++ b/hw2/src/util.cpp
@@ -0,0 +1,45 @@
+/******************************************************************/
+/* This file is part of the homework assignments for CSCI-427/527 */
+/* at The College of William & Mary and authored by Pieter Peers. */
+/* No part of this file, whether altered or in original form, can */
+/* be distributed or used outside the context of CSCI-427/527 */
+/* without consent of either the College of William & Mary or */
+/* Pieter Peers. */
+/******************************************************************/
+#include "util.h"
+
+
+std::string getFilename(const std::string& path)
+{
+#ifdef _WIN32
+ unsigned char pathSep = '\\';
+#else
+ unsigned char pathSep = '/';
+#endif
+ size_t start = path.find_last_of(pathSep);
+ size_t end = path.find_last_of(".");
+ if(start == std::string::npos) start = -1;
+ if(end == std::string::npos) end = path.size();
+ return path.substr(start+1, end-start-1);
+}
+
+
+std::string getExtension(const std::string& path)
+{
+ size_t lastidx = path.find_last_of(".");
+ if(lastidx == std::string::npos) return std::string();
+ else return path.substr(lastidx+1, std::string::npos);
+}
+
+
+std::string getDirectory(const std::string& path)
+{
+#ifdef _WIN32
+ unsigned char pathSep = '\\';
+#else
+ unsigned char pathSep = '/';
+#endif
+ size_t lastidx = path.find_last_of(pathSep);
+ if(lastidx == std::string::npos) return std::string();
+ return path.substr(0, lastidx+1);
+}