aboutsummaryrefslogtreecommitdiffstats
path: root/src/wchar/wcsstr.c
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2015-11-17 06:57:59 +0100
committerMattias Andrée <maandree@operamail.com>2015-11-17 06:57:59 +0100
commit0a9ed0f9b84247b0dda23500b7ab301a1238736b (patch)
treec990f32ee3de20fe5756a8f5c111d47e43cf7606 /src/wchar/wcsstr.c
parentadd wcsset (diff)
downloadslibc-0a9ed0f9b84247b0dda23500b7ab301a1238736b.tar.gz
slibc-0a9ed0f9b84247b0dda23500b7ab301a1238736b.tar.bz2
slibc-0a9ed0f9b84247b0dda23500b7ab301a1238736b.tar.xz
m + split wchar/*.c
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'src/wchar/wcsstr.c')
-rw-r--r--src/wchar/wcsstr.c247
1 files changed, 2 insertions, 245 deletions
diff --git a/src/wchar/wcsstr.c b/src/wchar/wcsstr.c
index b0600e1..e88530d 100644
--- a/src/wchar/wcsstr.c
+++ b/src/wchar/wcsstr.c
@@ -16,27 +16,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <wchar.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <alloca.h>
-/* TODO #include <wctype.h> */
-#define WIDE
-
-
-# pragma GCC diagnostic ignored "-Wdiscarded-qualifiers"
-
-
-
-/**
- * This function is identical to `wcsstr`.
- */
-wchar_t* (wcswcs)(const wchar_t* haystack, const wchar_t* needle)
-{
- if (*needle && !(needle[1]))
- return (wcschr)(haystack, *needle);
- return (wcsstr)(haystack, needle);
-}
/**
@@ -50,231 +30,8 @@ wchar_t* (wcswcs)(const wchar_t* haystack, const wchar_t* needle)
*/
wchar_t* (wcsstr)(const wchar_t* haystack, const wchar_t* needle)
{
+ if (*needle && !(needle[1]))
+ return (wcschr)(haystack, *needle);
return (wmemmem)(haystack, wcslen(haystack), needle, wcslen(needle));
}
-
-/**
- * Finds the first occurrence of a substring.
- * This search is case insensitive.
- *
- * This is a slibc extension.
- *
- * @param haystack The string to search.
- * @param needle The sought after substring.
- * @return Pointer to the first occurrence of the
- * substring, `NULL` if not found.
- */
-wchar_t* (wcscasestr)(const wchar_t* haystack, const wchar_t* needle)
-{
- return (wmemcasemem)(haystack, wcslen(haystack), needle, wcslen(needle));
-}
-
-
-/**
- * Finds the first occurrence of a substring.
- * This search is case sensitive.
- *
- * This is a slibc extension added for because it was useful
- * in implementing slibc itself.
- *
- * @param haystack The string to search.
- * @param needle The sought after substring.
- * @param maxlen The maximum number of character to search.
- * @return Pointer to the first occurrence of the
- * substring, `NULL` if not found.
- */
-wchar_t* (wcsnstr)(const wchar_t* haystack, const wchar_t* needle, size_t maxlen)
-{
- return (wmemmem)(haystack, wcsnlen(haystack, maxlen), needle, wcslen(needle));
-}
-
-
-/**
- * Finds the first occurrence of a substring.
- * This search is case insensitive.
- *
- * This is a slibc extension added for completeness.
- *
- * @param haystack The string to search.
- * @param needle The sought after substring.
- * @param maxlen The maximum number of character to search.
- * @return Pointer to the first occurrence of the
- * substring, `NULL` if not found.
- */
-wchar_t* (wcsncasestr)(const wchar_t* haystack, const wchar_t* needle, size_t maxlen)
-{
- return (wmemcasemem)(haystack, wcsnlen(haystack, maxlen), needle, wcslen(needle));
-}
-
-
-/**
- * Finds the first occurrence of a substring.
- * This search is case sensitive.
- * It must already be known that such a substring exists.
- *
- * This is a slibc extension.
- *
- * @param haystack The string to search.
- * @param needle The sought after substring.
- * @return Pointer to the first occurrence of the substring.
- */
-wchar_t* (rawwcsstr)(const wchar_t* haystack, const wchar_t* needle)
-{
- return (wmemmem)(haystack, SIZE_MAX, needle, wcslen(needle));
-}
-
-
-/**
- * Finds the first occurrence of a substring.
- * This search is case insensitive.
- * It must already be known that such a substring exists.
- *
- * This is a slibc extension.
- *
- * @param haystack The string to search.
- * @param needle The sought after substring.
- * @return Pointer to the first occurrence of the substring.
- */
-wchar_t* (rawwcscasestr)(const wchar_t* haystack, const wchar_t* needle)
-{
- return (wmemcasemem)(haystack, SIZE_MAX, needle, wcslen(needle));
-}
-
-
-/**
- * Finds the first occurrence of a substring.
- * This search is case sensitive.
- *
- * This is a slibc extension added for completeness,
- * and because it was it was useful in implementing
- * slibc itself.
- *
- * @param haystack The string to search.
- * @param haystack_length The number of character to search.
- * @param needle The sought after substring.
- * @param needle_length The length of `needle`.
- * @return Pointer to the first occurrence of
- * the substring, `NULL` if not found.
- */
-wchar_t* (wmemmem)(const wchar_t* haystack, size_t haystack_length,
- const wchar_t* needle, size_t needle_length)
-{
- if (haystack_length < needle_length)
- return NULL;
- if (haystack_length == needle_length)
- return !wmemcmp(haystack, needle, haystack_length) ? haystack : NULL;
-#include "../string/substring.h"
-}
-
-
-/**
- * Finds the first occurrence of a substring.
- * This search is case insensitive.
- *
- * This is a slibc extension added because it was useful
- * in implementing slibc itself.
- *
- * @param haystack The string to search.
- * @param haystack_length The number of character to search.
- * @param needle The sought after substring.
- * @param needle_length The length of `needle`.
- * @return Pointer to the first occurrence of
- * the substring, `NULL` if not found.
- */
-wchar_t* (wmemcasemem)(const wchar_t* haystack, size_t haystack_length,
- const wchar_t* needle, size_t needle_length)
-{
- if (haystack_length < needle_length)
- return NULL;
- if (haystack_length == needle_length)
- return !wmemcasecmp(haystack, needle, haystack_length) ? haystack : NULL;
-#define CASE
-#include "../string/substring.h"
-#undef CASE
-}
-
-
-/**
- * Check whether a string starts with a specific string.
- * This check is case sensitive.
- *
- * This is a slibc extension.
- *
- * @param string The string to inspect.
- * @param desired The desired beginning of the string.
- * @return `string` if `string` begins with
- * `desired`, `NULL` otherwise.
- */
-wchar_t* (wcsstarts)(const wchar_t* string, const wchar_t* desired)
-{
- size_t n = wcslen(string);
- size_t m = wcslen(desired);
- if (n < m)
- return NULL;
- return wmemcmp(string, desired, m) ? NULL : string;
-}
-
-
-/**
- * Check whether a string ends with a specific string.
- * This check is case sensitive.
- *
- * This is a slibc extension.
- *
- * @param string The string to inspect.
- * @param desired The desired ending of the string.
- * @return The `string`, where `desired` beings if
- * `string` ends with `desired`, `NULL` otherwise.
- */
-wchar_t* (wcsends)(const wchar_t* string, const wchar_t* desired)
-{
- size_t n = wcslen(string);
- size_t m = wcslen(desired);
- if (n < m)
- return NULL;
- return wmemcmp(string + (n - m), desired, m) ? NULL : (string + n);
-}
-
-
-/**
- * Check whether a string starts with a specific string.
- * This check is case insensitive.
- *
- * This is a slibc extension.
- *
- * @param string The string to inspect.
- * @param desired The desired beginning of the string.
- * @return `string` if `string` begins with
- * `desired`, `NULL` otherwise.
- */
-wchar_t* (wcscasestarts)(const wchar_t* string, const wchar_t* desired)
-{
- size_t n = wcslen(string);
- size_t m = wcslen(desired);
- if (n < m)
- return NULL;
- return wmemcasecmp(string, desired, m) ? NULL : string;
-}
-
-
-/**
- * Check whether a string ends with a specific string.
- * This check is case insensitive.
- *
- * This is a slibc extension.
- *
- * @param string The string to inspect.
- * @param desired The desired ending of the string.
- * @return The `string`, where `desired` beings if
- * `string` ends with `desired`, `NULL` otherwise.
- */
-wchar_t* (wcscaseends)(const wchar_t* string, const wchar_t* desired)
-{
- size_t n = wcslen(string);
- size_t m = wcslen(desired);
- if (n < m)
- return NULL;
- return wmemcasecmp(string + (n - m), desired, m) ? NULL : (string + n);
-}
-