Hi,
still having problems with the external parser, but i think i have found the fix.
 
The buffer which is passed to the function parse is álso used as the return buffer for the result.
There is an internal variable called result which is set to the address of buf,
 
    if (pid>0){
 
        char string[UDMSTRSIZ];
 result=buf;
 
 /* Close other pipe ends */
 close (wr[0]);
 close (rd[1]);
 
 /* Send string to be parsed */
        write (wr[1], buf, buflen);
 close(wr[1]);
memset(string,0,UDMSTRSIZ);
 while ((n=read(rd[0],string,UDMSTRSIZ-1))>0){
     strncat(result,string,maxlen-strlen(result));  << strlen(result) will return something > 0
     memset(string,0,UDMSTRSIZ);
 }
 
The fix could be  to set the content of the result buffer to 0
memset(result,0 buflen) before it is filled.
 
With that the text field in the DB is set to the parsed content, and not to the
content befor parsing.
 
 
    Thomas
 
 
+----------------------------------------------------------+
  Thomas Hepper                                          
  Tel. : +(49)-511-645-3464                              
  Mail : [EMAIL PROTECTED]                                   
+----------------------------------------------------------+     

Reply via email to