Re: [PATCH] Octstr additions

2003-03-04 Thread Stipe Tolj
Hi Nisan,

 Some additions to octstr.[ch]
 
 /*
   * Strip all occurence of char ch from start of Octstr
   */
 void octstr_strip_char(Octstr *text, char ch);
 
 /*
   * Check if ostr is numeric
   */
 int octstr_isnum(Octstr *ostr1);
 
 /*
   * Replace all occurences of needle with repl within haystack
   */
 
 void octstr_replace(Octstr *haystack, Octstr *needle, Octstr *repl);
 
 /*
   * Symbolise hexstr - 78797a becomes %78%79%7a
 */
 int octstr_symbolize(Octstr *ostr);

that's cool. I'm +1 for adding this to cvs.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are



RE: [PATCH] Octstr additions

2003-03-04 Thread Angel Fradejas
+1 too. These functions can be quite handy.

Angel Fradejas
Mediafusion Espana, S.A.
[EMAIL PROTECTED]
www.mediafusion.es
Tel. +34 91 252 32 00
Fax +34 91 572 27 08 


-Mensaje original-
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
nombre de Nisan Bloch
Enviado el: martes 4 de marzo de 2003 08:02
Para: [EMAIL PROTECTED]
Asunto: [PATCH] Octstr additions


Hi All

Some additions to octstr.[ch]

/*
  * Strip all occurence of char ch from start of Octstr
  */
void octstr_strip_char(Octstr *text, char ch);

/*
  * Check if ostr is numeric
  */
int octstr_isnum(Octstr *ostr1);

/*
  * Replace all occurences of needle with repl within haystack
  */

void octstr_replace(Octstr *haystack, Octstr *needle, Octstr *repl);

/*
  * Symbolise hexstr - 78797a becomes %78%79%7a
*/
int octstr_symbolize(Octstr *ostr);


Nisan


--- ../cvs/gateway/gwlib/octstr.h   Thu Sep  5 21:11:59 2002
+++ ../gateway-click/gwlib/octstr.h Sat Mar  1 00:07:32 2003
@@ -582,4 +582,25 @@
   */
  int octstr_recode (Octstr *tocode, Octstr *fromcode, Octstr *orig);

+/*
+ * Strip all occurence of char ch from start of Octstr
+ */
+void octstr_strip_char(Octstr *text, char ch);
+
+/*
+ * Check if ostr is numeric
+ */
+int octstr_isnum(Octstr *ostr1);
+
+/*
+ * Replace all occurences of needle with repl within haystack
+ */
+
+void octstr_replace(Octstr *haystack, Octstr *needle, Octstr *repl);
+
+/*
+ * Symbolise hexstr - 78797a becomes %78%79%7a
+*/
+int octstr_symbolize(Octstr *ostr);
+
  #endif



--- ../cvs/gateway/gwlib/octstr.c   Wed Sep 25 16:05:51 2002
+++ ../gateway-click/gwlib/octstr.c Sat Mar  1 00:07:59 2003
@@ -2181,3 +2181,81 @@

  return resultcode;
  }
+
+void octstr_strip_char(Octstr *text, char ch)
+{
+int start = 0, end, len = 0;
+
+seems_valid(text);
+gw_assert(!text-immutable);
+
+/* Remove char from the beginning of the text */
+while ((ch == octstr_get_char(text, start)) 
+   start = octstr_len(text))
+start ++;
+
+if (start  0)
+octstr_delete(text, 0, start);
+
+
+seems_valid(text);
+}
+
+int octstr_isnum(Octstr *ostr1)
+{
+
+
+int start = 0;
+char c;
+
+seems_valid(ostr1);
+while (start  octstr_len(ostr1))
+{
+c = octstr_get_char(ostr1, start);
+if (!isdigit(c)  (c!='+'))
+return 0;
+start++;
+}
+return 1;
+
+}
+
+
+void octstr_replace(Octstr *haystack, Octstr *needle, Octstr *repl)
+{
+int p=-1;
+long len;
+
+len = octstr_len(needle);
+
+while ((p = octstr_search(haystack,needle,p+1)) != -1)
+{
+octstr_delete(haystack, p, len);
+octstr_insert(haystack, repl, p);
+}
+}
+
+// symbolise string, return 0 if empty, -1 on error or 1 on success
+int octstr_symbolize(Octstr *ostr)
+{
+long len, i;
+
+seems_valid(ostr);
+gw_assert(!ostr-immutable);
+
+if (ostr-len == 0)
+return 0;
+
+/* Check if it's in the right format */
+if (!octstr_check_range(ostr, 0, ostr-len, gw_isxdigit))
+return -1;
+
+len = ostr-len + (ostr-len/2);
+octstr_grow(ostr, ostr-len * 2);
+
+for (i=0;ilen;i+=3)
+octstr_insert_data(ostr, i, %, 1);
+
+return (1);
+}
+




Re: [PATCH] Octstr additions

2003-03-04 Thread Stipe Tolj
Commited to cvs. Thanks Nisan.

Stipe

[EMAIL PROTECTED]
---
Wapme Systems AG

Vogelsanger Weg 80
40470 Düsseldorf

Tel: +49-211-74845-0
Fax: +49-211-74845-299

E-Mail: [EMAIL PROTECTED]
Internet: http://www.wapme-systems.de
---
wapme.net - wherever you are