From e1808bb467f88679f3fae2bb220043b7cd6ba124 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 18 Sep 2011 19:28:15 +0000 Subject: Add ZixStrindex. git-svn-id: http://svn.drobilla.net/zix/trunk@15 df6676b4-ccc9-40e5-b5d6-7c4628a128e3 --- zix/strindex.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 zix/strindex.h (limited to 'zix') diff --git a/zix/strindex.h b/zix/strindex.h new file mode 100644 index 0000000..e6195d7 --- /dev/null +++ b/zix/strindex.h @@ -0,0 +1,56 @@ +/* + Copyright 2011 David Robillard + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ + +#ifndef ZIX_STRINDEX_H +#define ZIX_STRINDEX_H + +#include "zix/common.h" + +/** + @addtogroup zix + @{ + @name Strindex + @{ +*/ + +typedef struct _ZixStrindex ZixStrindex; + +/** + Construct a new strindex that contains all suffixes of the string @a s. + A copy of @a s is taken and stored for the lifetime of the strindex. +*/ +ZixStrindex* +zix_strindex_new(const char* s); + +/** + Destroy @a t. +*/ +void +zix_strindex_free(ZixStrindex* strindex); + +/** + Check if the string in @a strindex contains the substring @a str. + If such a substring is found, @a match is pointed at an occurrence of it. +*/ +ZixStatus +zix_strindex_find(ZixStrindex* strindex, const char* str, char** match); + +/** + @} + @} +*/ + +#endif /* ZIX_STRINDEX_H */ -- cgit v1.2.1