mutt stable branch with some hacks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Add strcasestr() from uclibc to unbreak (Open)Solaris build. Closes #3222.

+76
+23
ChangeLog
··· 1 + 2009-04-21 15:10 -0400 Aron Griffis <agriffis@n01se.net> (3d89eddb2d9a) 2 + 3 + * buffy.c: Equivalent mutt_buffy, but readable code 4 + 5 + Signed-off-by: Aron Griffis <agriffis@n01se.net> 6 + 7 + 2009-04-21 15:06 -0400 Aron Griffis <agriffis@n01se.net> (7bc332ddd8fc) 8 + 9 + * buffy.c, buffy.h: Call mutt_expand_path() from mutt_buffy to fix 10 + imap separator. Closes #3208 and #3218 11 + 12 + Signed-off-by: Aron Griffis <agriffis@n01se.net> 13 + 14 + 2009-04-21 14:09 -0400 Aron Griffis <agriffis@n01se.net> (1dc96cc13a87) 15 + 16 + * buffy.c: Use slen instead of assuming _POSIX_PATH_MAX 17 + 18 + Signed-off-by: Aron Griffis <agriffis@n01se.net> 19 + 20 + 2009-04-23 12:51 -0700 Vincent Lefevre <vincent@vinc17.org> (b5b4e652e4b1) 21 + 22 + * ChangeLog, po/fr.po: Updated French translation. 23 + 1 24 2009-04-20 18:36 +0200 Christoph Berg <cb@df7cb.de> (39fee3a9d034) 2 25 3 26 * doc/manual.xml.head, init.h: Better document that some send-hooks
+1
configure.ac
··· 344 344 AC_CHECK_FUNCS(fgetpos memmove setegid srand48 strerror) 345 345 346 346 AC_REPLACE_FUNCS([setenv strcasecmp strdup strsep strtok_r wcscasecmp]) 347 + AC_REPLACE_FUNCS([strcasestr]) 347 348 348 349 AC_CHECK_FUNC(getopt) 349 350 if test $ac_cv_func_getopt = yes; then
+4
protos.h
··· 552 552 #ifndef HAVE_WCSCASECMP 553 553 int wcscasecmp (const wchar_t *a, const wchar_t *b); 554 554 #endif 555 + 556 + #ifndef HAVE_STRCASESTR 557 + char *strcasestr (const char *, const char *); 558 + #endif
+48
strcasestr.c
··· 1 + /* 2 + * Copyright (C) 2002 Manuel Novoa III 3 + * Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> 4 + * 5 + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. 6 + */ 7 + #include <stdlib.h> 8 + #include <ctype.h> 9 + 10 + char *strcasestr(const char *s1, const char *s2) 11 + { 12 + register const char *s = s1; 13 + register const char *p = s2; 14 + 15 + #if 1 16 + do { 17 + if (!*p) { 18 + return (char *) s1;; 19 + } 20 + if ((*p == *s) 21 + || (tolower(*((unsigned char *)p)) == tolower(*((unsigned char *)s))) 22 + ) { 23 + ++p; 24 + ++s; 25 + } else { 26 + p = s2; 27 + if (!*s) { 28 + return NULL; 29 + } 30 + s = ++s1; 31 + } 32 + } while (1); 33 + #else 34 + while (*p && *s) { 35 + if ((*p == *s) 36 + || (tolower(*((unsigned char *)p)) == tolower(*((unsigned char *)s))) 37 + ) { 38 + ++p; 39 + ++s; 40 + } else { 41 + p = s2; 42 + s = ++s1; 43 + } 44 + } 45 + 46 + return (*p) ? NULL : (char *) s1; 47 + #endif 48 + }