unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
blob 50bc89d7733b592cb5d914720d6b1af2d44c2232 1396 bytes (raw)
name: compat/strcasestr.c 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
/*
 * slow simplistic reimplementation of strcasestr for systems that
 * don't include it in their library
 *
 * based on a GPL implementation in OpenTTD found under GPL v2

   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License as
   published by the Free Software Foundation, version 2.

   This program is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
   02110-1301, USA.  */

/* Imported into notmuch by Dirk Hohndel - original author unknown. */
/* the semantic here actually puzzles me:
   how can haystack be const char * - yet the return value is char *
   after all, it points to a sub-string of haystack... */

#include <string.h>

char *strcasestr(const char *haystack, const char *needle)
{
	size_t hay_len = strlen(haystack);
	size_t needle_len = strlen(needle);
	while (hay_len >= needle_len) {
		if (strncasecmp(haystack, needle, needle_len) == 0) 
		    return (char *) haystack;

		haystack++;
		hay_len--;
	}

	return NULL;
}

debug log:

solving 50bc89d ...
found 50bc89d in https://yhetil.org/notmuch/m339yzcony.fsf@x200.gr8dns.org/ ||
	https://yhetil.org/notmuch/m3vdbvb8p7.fsf@x200.gr8dns.org/ ||
	https://yhetil.org/notmuch/m3eiikc7rc.fsf@x200.gr8dns.org/

applying [1/1] https://yhetil.org/notmuch/m339yzcony.fsf@x200.gr8dns.org/
diff --git a/compat/strcasestr.c b/compat/strcasestr.c
new file mode 100644
index 0000000..50bc89d

1:39: trailing whitespace.
		if (strncasecmp(haystack, needle, needle_len) == 0) 
Checking patch compat/strcasestr.c...
Applied patch compat/strcasestr.c cleanly.
warning: 1 line adds whitespace errors.

skipping https://yhetil.org/notmuch/m3vdbvb8p7.fsf@x200.gr8dns.org/ for 50bc89d
skipping https://yhetil.org/notmuch/m3eiikc7rc.fsf@x200.gr8dns.org/ for 50bc89d
index at:
100644 50bc89d7733b592cb5d914720d6b1af2d44c2232	compat/strcasestr.c

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).