Ejemplo n.º 1
0
varstr *
varstr_fromstr(char *str)
{
	varstr *	v = varstr_new(strlen(str));

	return varstr_cat(v, str);
}
Ejemplo n.º 2
0
varstr *
varstr_sprintf(varstr *v, char *fmt, ...)
{
	va_list	ap;
	char *	str;

	va_start(ap, fmt);
	vasprintf(&str, fmt, ap);
	va_end(ap);
	varstr_cat(v, str);
	free(str);
	return v;
}
Ejemplo n.º 3
0
const char *
linereader_next( struct linereader *p )
{
   varstr_empty( p->text );

   for ( ;; ) {                                  /* loop to consume a single line */

      if ( NULL == fgets( p->buf, _BUFSIZE, p->in ) ) {

         if ( strlen( varstr_str( p->text ) ) == 0 )    /* eof and no text accumulated -- done! */
            return NULL;

         else
            break;
      }

      varstr_cat( p->text, p->buf );

      if ( NULL != strchr( p->buf, '\n' ) )
         break;
   }

   return ( const char * ) varstr_str( p->text );
}