summaryrefslogtreecommitdiffstats
path: root/stone_soup/crawl-ref/source/libutil.h
diff options
context:
space:
mode:
Diffstat (limited to 'stone_soup/crawl-ref/source/libutil.h')
-rw-r--r--stone_soup/crawl-ref/source/libutil.h217
1 files changed, 0 insertions, 217 deletions
diff --git a/stone_soup/crawl-ref/source/libutil.h b/stone_soup/crawl-ref/source/libutil.h
deleted file mode 100644
index 807d3f25a2..0000000000
--- a/stone_soup/crawl-ref/source/libutil.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * File: libutil.h
- * Summary: System indepentant functions
- *
- * Change History (most recent first):
- *
- * <1> 2001/Nov/01 BWR Created
- *
- */
-
-#ifndef LIBUTIL_H
-#define LIBUTIL_H
-
-#include <string>
-#include <vector>
-
-// getch() that returns a consistent set of values for all platforms.
-int c_getch();
-
-void play_sound(const char *file);
-
-// Pattern matching
-void *compile_pattern(const char *pattern, bool ignore_case = false);
-void free_compiled_pattern(void *cp);
-bool pattern_match(void *compiled_pattern, const char *text, int length);
-
-void get_input_line( char *const buff, int len );
-
-class input_history;
-
-// Returns true if user pressed Enter, false if user hit Escape.
-bool cancelable_get_line( char *buf, int len, int wrapcol = 80,
- input_history *mh = NULL );
-
-std::string & trim_string( std::string &str );
-std::vector<std::string> split_string(const char *sep, std::string s);
-
-#ifdef NEED_USLEEP
-void usleep( unsigned long time );
-#endif
-
-#ifdef NEED_SNPRINTF
-int snprintf( char *str, size_t size, const char *format, ... );
-#endif
-
-// Keys that getch() must return for keys Crawl is interested in.
-enum KEYS
-{
- CK_ENTER = '\r',
- CK_BKSP = 8,
- CK_ESCAPE = '\x1b',
-
- // 128 is off-limits because it's the code that's used when running
- CK_DELETE = 129,
-
- // This sequence of enums should not be rearranged.
- CK_UP,
- CK_DOWN,
- CK_LEFT,
- CK_RIGHT,
-
- CK_INSERT,
-
- CK_HOME,
- CK_END,
- CK_CLEAR,
-
- CK_PGUP,
- CK_PGDN,
-
- CK_SHIFT_UP,
- CK_SHIFT_DOWN,
- CK_SHIFT_LEFT,
- CK_SHIFT_RIGHT,
-
- CK_SHIFT_INSERT,
-
- CK_SHIFT_HOME,
- CK_SHIFT_END,
- CK_SHIFT_CLEAR,
-
- CK_SHIFT_PGUP,
- CK_SHIFT_PGDN,
-
- CK_CTRL_UP,
- CK_CTRL_DOWN,
- CK_CTRL_LEFT,
- CK_CTRL_RIGHT,
-
- CK_CTRL_INSERT,
-
- CK_CTRL_HOME,
- CK_CTRL_END,
- CK_CTRL_CLEAR,
-
- CK_CTRL_PGUP,
- CK_CTRL_PGDN
-};
-
-class base_pattern
-{
-public:
- virtual ~base_pattern() { };
-
- virtual bool valid() const = 0;
- virtual bool matches(const std::string &s) const = 0;
-};
-
-class text_pattern : public base_pattern
-{
-public:
- text_pattern(const std::string &s, bool icase = false)
- : pattern(s), compiled_pattern(NULL),
- isvalid(true), ignore_case(icase)
- {
- }
-
- text_pattern()
- : pattern(), compiled_pattern(NULL),
- isvalid(false), ignore_case(false)
- {
- }
-
- text_pattern(const text_pattern &tp)
- : pattern(tp.pattern),
- compiled_pattern(NULL),
- isvalid(tp.isvalid),
- ignore_case(tp.ignore_case)
- {
- }
-
- ~text_pattern()
- {
- if (compiled_pattern)
- free_compiled_pattern(compiled_pattern);
- }
-
- const text_pattern &operator= (const text_pattern &tp)
- {
- if (this == &tp)
- return tp;
-
- if (compiled_pattern)
- free_compiled_pattern(compiled_pattern);
- pattern = tp.pattern;
- compiled_pattern = NULL;
- isvalid = tp.isvalid;
- ignore_case = tp.ignore_case;
- return *this;
- }
-
- const text_pattern &operator= (const std::string &spattern)
- {
- if (pattern == spattern)
- return *this;
-
- if (compiled_pattern)
- free_compiled_pattern(compiled_pattern);
- pattern = spattern;
- compiled_pattern = NULL;
- isvalid = true;
- // We don't change ignore_case
- return *this;
- }
-
- bool compile() const
- {
- // This function is const because compiled_pattern is not really part of
- // the state of the object.
-
- void *&cp = const_cast<text_pattern*>( this )->compiled_pattern;
- return !empty()?
- !!(cp = compile_pattern(pattern.c_str(), ignore_case))
- : false;
- }
-
- bool empty() const
- {
- return !pattern.length();
- }
-
- bool valid() const
- {
- return isvalid &&
- (compiled_pattern ||
- (const_cast<text_pattern*>( this )->isvalid = compile()));
- }
-
- bool matches(const char *s, int length) const
- {
- return valid() && pattern_match(compiled_pattern, s, length);
- }
-
- bool matches(const char *s) const
- {
- return matches(std::string(s));
- }
-
- bool matches(const std::string &s) const
- {
- return matches(s.c_str(), s.length());
- }
-
- const std::string &tostring() const
- {
- return pattern;
- }
-
-private:
- std::string pattern;
- void *compiled_pattern;
- bool isvalid;
- bool ignore_case;
-};
-
-
-#endif