Hi :-]

Your review comments in the attached patch.
Thanks for your response always.

Sincerely,
Shinwoo Kim.

2011/6/29 Vincent Torri <vto...@univ-evry.fr>

>
>
> On Wed, 29 Jun 2011, cnook wrote:
>
>  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
>>
>
> better:
>
> #ifdef HAVE_STRCASESTR
> # define _elm_util_strcasestr(h, n) strcase((h), (n))
> #endif
>
> and always use _elm_util_strcasestr() instead of strcasestr()
>
> Vincent
>
>
>> 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.**so**urceforge.net<http://sourceforge.net>
>>>>>> <enlightenment-**de...@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<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.**so**urceforge.net<http://sourceforge.net>
>>>>>>> <enlightenment-**de...@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>
>>>>>>>>> <http://p.sf.net/sfu/**quest-sfdev2dev<http://p.sf.net/sfu/quest-sfdev2dev>
>>>>>>>>> >
>>>>>>>>> ______________________________****_________________
>>>>>>>>> enlightenment-devel mailing list
>>>>>>>>> enlightenment-devel@lists.**so**urceforge.net<http://sourceforge.net>
>>>>>>>>> <enlightenment-**de...@lists.sourceforge.net<enlightenment-devel@lists.sourceforge.net>
>>>>>>>>> >
>>>>>>>>> https://lists.sourceforge.net/****lists/listinfo/**
>>>>>>>>> enlightenment-**devel<https://lists.sourceforge.net/**lists/listinfo/enlightenment-**devel>
>>>>>>>>> <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>
>>>>>>> <http://p.sf.net/sfu/**quest-sfdev2dev<http://p.sf.net/sfu/quest-sfdev2dev>
>>>>>>> >
>>>>>>> ______________________________****_________________
>>>>>>> enlightenment-devel mailing list
>>>>>>> enlightenment-devel@lists.**so**urceforge.net<http://sourceforge.net>
>>>>>>> <enlightenment-**de...@lists.sourceforge.net<enlightenment-devel@lists.sourceforge.net>
>>>>>>> >
>>>>>>> https://lists.sourceforge.net/****lists/listinfo/**
>>>>>>> enlightenment-**devel<https://lists.sourceforge.net/**lists/listinfo/enlightenment-**devel>
>>>>>>> <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><
>>>> http://p.sf.net/sfu/splunk-**d2d-c2 <http://p.sf.net/sfu/splunk-d2d-c2>
>>>> >
>>>>
>>>> ______________________________****_________________
>>>> enlightenment-devel mailing list
>>>> enlightenment-devel@lists.**so**urceforge.net <http://sourceforge.net><
>>>> enlightenment-**de...@lists.sourceforge.net<enlightenment-devel@lists.sourceforge.net>
>>>> >
>>>> https://lists.sourceforge.net/****lists/listinfo/**
>>>> enlightenment-**devel<https://lists.sourceforge.net/**lists/listinfo/enlightenment-**devel>
>>>> <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

Reply via email to