Oh I see, I got the point. Thanks for your response.
Wherever the strcasestr() is used using previous patch, would be changed as
bellow.
#ifdef HAVE_STRCASESTR
strcase(h, n);
#else
_elm_util_strcasestr(h, n);
#endif
Anyhow, I have refined the previous patch and attached.
Then, wherever the strcasestr() is used, should be changed just as bellow
_elm_util_strcasestr(h, n);
Sincerely,
Shinwoo Kim.
2011/6/29 Vincent Torri <vto...@univ-evry.fr>
>
> what he means is:
>
> * using AC_CHECK_FUNCS([strcasestr]) in configure.ac defined
> HAVE_STRCASESTR in config.h
> * in the code, you use the macro HAVE_STRCASESTR to use the glibc version
> of strcase, or to use your own version
>
> Vincent
>
>
> On Wed, 29 Jun 2011, cnook wrote:
>
> Hi
>>
>> Thanks for your response.
>> I have no enough idea when it comes to E16.
>> Actually this patch comes because of the Evil Windows environments -
>> strcasestr does not exist.
>> If strcasestr alternative - Estrcasestr - is on the E16, Should I install
>> the E16 also or not?
>>
>> Sincerely,
>> Shinwoo Kim.
>>
>>
>> 2011/6/29 Hyoyoung Chang <hyoyoung.ch...@samsung.com>
>>
>> I think it's a nice patch if glibc's strcasestr can be used
>>>
>>> How about to add statements like below?
>>>
>>> #ifdef HAVE_STRCASESTR
>>> #define Estrcasestr(haystack, needle) strcasestr(haystack, needle)
>>> #else
>>> const char *Estrcasestr(const char *haystack, const char
>>> *needle);
>>> #endif
>>>
>>> In E16/e/src/util.h
>>>
>>>
>>>
>>> From: cnook [mailto:kimci...@gmail.com]
>>>> Sent: Tuesday, June 28, 2011 3:58 PM
>>>> To: Hyoyoung Chang
>>>> Cc: Daniel Juyung Seo;
>>>> enlightenment-devel@lists.**sourceforge.net<enlightenment-devel@lists.sourceforge.net>
>>>> Subject: Re: [E-devel] [Patch][Evil] evil_string has strcasestr
>>>>
>>>> Dear All,
>>>>
>>>> Hi~
>>>> Here is the patch added on the elementary. :-]
>>>>
>>>> Sincerely,
>>>> Shinwoo Kim.
>>>> 2011/6/22 Hyoyoung Chang <hyoyoung.ch...@samsung.com>
>>>> As I know strcasestr is not standard function.
>>>> It's a glibc extension.
>>>>
>>>> CONFORMING TO
>>>> The strstr() function conforms to C89 and C99. The strcasestr()
>>>> funcÿÿ
>>>>
>>>> tion is a nonstandard extension.
>>>> -- man page of strcasestr
>>>>
>>>> Is it only used in elementary? If then how about add to check routine in
>>>> configure and add in elm_util.c?
>>>> Or is it widely used in e project, it can be added in other module.
>>>>
>>>> PS. I google about strcasestr. It's contained in LSB 3.1
>>>>
>>>>
>>>> http://refspecs.freestandards.**org/LSB_3.1.1/LSB-Core-**
>>> generic/LSB-Core-generi<http://refspecs.freestandards.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generi>
>>>
>>>> c/baselib-strcasestr.html
>>>>
>>>>
>>>> -----Original Message-----
>>>>> From: cnook [mailto:kimci...@gmail.com]
>>>>> Sent: Wednesday, June 22, 2011 5:56 PM
>>>>> To: Daniel Juyung Seo
>>>>> Cc:
>>>>> enlightenment-devel@lists.**sourceforge.net<enlightenment-devel@lists.sourceforge.net>
>>>>> Subject: Re: [E-devel] [Patch][Evil] evil_string has strcasestr
>>>>>
>>>>> Dear Mr. Daniel,
>>>>>
>>>>> Thanks your response :-]
>>>>> Initially, I had added this to the elm_entry in downstream(?), but a
>>>>> reviewer does not prefer it in the elm_entry.
>>>>> Then how about add this somewhere in Elementary?
>>>>> um... btw... why I added this to Evil module is.. there is no
>>>>>
>>>> strcasestr
>>>
>>>> on
>>>>> MinGW Env. only.
>>>>>
>>>>>
>>>>> Sincerely,
>>>>> Shinwoo Kim.
>>>>>
>>>>>
>>>>> 2011/6/22 Daniel Juyung Seo <seojuyu...@gmail.com>
>>>>>
>>>>> Well..
>>>>>> Dear Shinwoo Kim,
>>>>>> According to vtorri's comment, you can merge this patch and another
>>>>>> patch that uses this feature.
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> Daniel Juyung Seo (SeoZ)
>>>>>>
>>>>>> On Wed, Jun 22, 2011 at 4:53 PM, Vincent Torri <vto...@univ-evry.fr>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, 22 Jun 2011, cnook wrote:
>>>>>>>
>>>>>>> Thanks for your response.
>>>>>>>> There is a possibility in newly made elementary widget.
>>>>>>>> So far, no one have used strcasestr in upstream.
>>>>>>>>
>>>>>>>
>>>>>>> i won't add functions if they are not needed. Evil is minimalist
>>>>>>>
>>>>>> and
>>>
>>>> must
>>>>>
>>>>>> remain like that. If strcasestr is needed, it will be added.
>>>>>>>
>>>>>>> Vincent
>>>>>>>
>>>>>>>
>>>>>>>> Sincerely,
>>>>>>>> Shinwoo Kim.
>>>>>>>>
>>>>>>>> 2011/6/22 Vincent Torri <vto...@univ-evry.fr>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Hey
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> There is no strcasestr() on MinGW Env.
>>>>>>>>>
>>>>>>>>>> So this patch comes.. Please review the attached one.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> where is strcasestr used ?
>>>>>>>>>
>>>>>>>>> Vincent
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> ------------------------------**------------------------------**
>>> ------------
>>>
>>>> ------
>>>>>
>>>>>> Simplify data backup and recovery for your virtual environment with
>>>>>>>
>>>>>> vRanger.
>>>>>>
>>>>>>> Installation's a snap, and flexible recovery options mean your data
>>>>>>>
>>>>>> is
>>>
>>>> safe,
>>>>>>
>>>>>>> secure and there when you need it. Data protection magic?
>>>>>>> Nope - It's vRanger. Get your free trial download today.
>>>>>>> http://p.sf.net/sfu/quest-**sfdev2dev<http://p.sf.net/sfu/quest-sfdev2dev>
>>>>>>> ______________________________**_________________
>>>>>>> enlightenment-devel mailing list
>>>>>>> enlightenment-devel@lists.**sourceforge.net<enlightenment-devel@lists.sourceforge.net>
>>>>>>> https://lists.sourceforge.net/**lists/listinfo/enlightenment-**devel<https://lists.sourceforge.net/lists/listinfo/enlightenment-devel>
>>>>>>>
>>>>>>>
>>>>>>
>>>>> ------------------------------**------------------------------**
>>> --------------
>>>
>>>> ----
>>>>> Simplify data backup and recovery for your virtual environment with
>>>>> vRanger.
>>>>> Installation's a snap, and flexible recovery options mean your data is
>>>>> safe,
>>>>> secure and there when you need it. Data protection magic?
>>>>> Nope - It's vRanger. Get your free trial download today.
>>>>> http://p.sf.net/sfu/quest-**sfdev2dev<http://p.sf.net/sfu/quest-sfdev2dev>
>>>>> ______________________________**_________________
>>>>> enlightenment-devel mailing list
>>>>> enlightenment-devel@lists.**sourceforge.net<enlightenment-devel@lists.sourceforge.net>
>>>>> https://lists.sourceforge.net/**lists/listinfo/enlightenment-**devel<https://lists.sourceforge.net/lists/listinfo/enlightenment-devel>
>>>>>
>>>>
>>>
>>> ------------------------------**------------------------------**
>> ------------------
>> All of the data generated in your IT infrastructure is seriously valuable.
>> Why? It contains a definitive record of application performance, security
>> threats, fraudulent activity, and more. Splunk takes this data and makes
>> sense of it. IT sense. And common sense.
>> http://p.sf.net/sfu/splunk-**d2d-c2 <http://p.sf.net/sfu/splunk-d2d-c2>
>>
>> ______________________________**_________________
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.**sourceforge.net<enlightenment-devel@lists.sourceforge.net>
>> https://lists.sourceforge.net/**lists/listinfo/enlightenment-**devel<https://lists.sourceforge.net/lists/listinfo/enlightenment-devel>
>>
>>
Index: src/lib/elm_priv.h
===================================================================
--- src/lib/elm_priv.h (revision 60744)
+++ src/lib/elm_priv.h (working copy)
@@ -214,6 +214,11 @@
char *_elm_util_mkup_to_text(const char *mkup);
char *_elm_util_text_to_mkup(const char *text);
+#if HAVE_STRCASESTR
+#define _elm_util_strcasestr(h, n) strcasestr(h, n)
+#else
+char *_elm_util_strcasestr(char *h, char *n);
+#endif
extern char *_elm_appname;
extern Elm_Config *_elm_config;
Index: src/lib/elm_util.c
===================================================================
--- src/lib/elm_util.c (revision 60744)
+++ src/lib/elm_util.c (working copy)
@@ -196,3 +196,30 @@
}
return str;
}
+
+#ifndef HAVE_STRCASESTR
+char *
+_elm_util_strcasestr(char *h, char *n)
+{
+ char *a, *e;
+ a = h;
+ e = n;
+
+ if (!h || !*h || !n || !*n) return 0;
+ while (*a && *e)
+ {
+ if(toupper((unsigned char) *a) != toupper((unsigned char) *e))
+ {
+ ++h;
+ a = h;
+ e = n;
+ }
+ else
+ {
+ ++a;
+ ++e;
+ }
+ }
+ return *e ? 0 : h;
+}
+#endif
Index: configure.ac
===================================================================
--- configure.ac (revision 60744)
+++ configure.ac (working copy)
@@ -175,6 +175,7 @@
have_socket="yes"
;;
esac
+AC_CHECK_FUNCS(strcasestr, AC_DEFINE(HAVE_STRCASESTR))
AM_CONDITIONAL([BUILD_RUN], [test "x$have_socket" = "xyes"])
have_fork="no"
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel