From skv@FreeBSD.org  Fri Sep  5 12:16:37 2008
Return-Path: <skv@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id D47EC106564A;
	Fri,  5 Sep 2008 12:16:37 +0000 (UTC)
	(envelope-from skv@FreeBSD.org)
Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28])
	by mx1.freebsd.org (Postfix) with ESMTP id C48458FC12;
	Fri,  5 Sep 2008 12:16:37 +0000 (UTC)
	(envelope-from skv@FreeBSD.org)
Received: from freefall.freebsd.org (skv@localhost [127.0.0.1])
	by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m85CGbH2067051;
	Fri, 5 Sep 2008 12:16:37 GMT
	(envelope-from skv@freefall.freebsd.org)
Received: (from skv@localhost)
	by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m85CGb7l067050;
	Fri, 5 Sep 2008 12:16:37 GMT
	(envelope-from skv)
Message-Id: <200809051216.m85CGb7l067050@freefall.freebsd.org>
Date: Fri, 5 Sep 2008 12:16:37 GMT
From: Sergey Skvortsov <skv@freebsd.org>
To: FreeBSD-gnats-submit@freebsd.org
Cc: rink@freebsd.org
Subject: [PATCH] www/p5-ClearSilver: [SUMMARIZE CHANGES]
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         127108
>Category:       ports
>Synopsis:       [PATCH] www/p5-ClearSilver: bugfixes
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    skv
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Sep 05 12:20:01 UTC 2008
>Closed-Date:    Sat Oct 04 16:06:34 UTC 2008
>Last-Modified:  Sat Oct 04 16:06:34 UTC 2008
>Originator:     Sergey Skvortsov
>Release:        FreeBSD 7.0-STABLE i386
>Organization:
>Environment:
System: FreeBSD vega.protey.ru 7.0-STABLE FreeBSD 7.0-STABLE #2: Tue Jul 15 15:38:46 MSD 2008
>Description:
- fix perl_render() - avoid "uninitialized value" warnings
- fix perlcs_parseString() - correct malloc: use len+1 instead of len

Added file(s):
- files/patch-ClearSilver.xs

Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:

--- p5-ClearSilver-0.10.5_1.patch begins here ---
Index: Makefile
===================================================================
RCS file: /home/pcvs/ports/www/p5-ClearSilver/Makefile,v
retrieving revision 1.4
diff -u -u -r1.4 Makefile
--- Makefile	19 Feb 2008 10:12:11 -0000	1.4
+++ Makefile	5 Sep 2008 10:57:33 -0000
@@ -7,6 +7,7 @@
 
 PORTNAME=	ClearSilver
 PORTVERSION=	0.10.5
+PORTREVISION=	1
 CATEGORIES=	www perl5
 PKGNAMEPREFIX=	p5-
 DISTFILES=
@@ -14,8 +15,8 @@
 MAINTAINER=	rink@FreeBSD.org
 COMMENT=	Perl bindings for fast and powerful template system
 
-BUILD_DEPENDS=	${LOCALBASE}/lib/libneo_cs.a:${PORTSDIR}/www/clearsilver \
-		${NONEXISTENT}:${PORTSDIR}/www/clearsilver:extract
+BUILD_DEPENDS=	${LOCALBASE}/lib/libneo_cs.a:${PORTSDIR}/www/clearsilver
+EXTRACT_DEPENDS=	${NONEXISTENT}:${PORTSDIR}/www/clearsilver:extract
 
 PERL_CONFIGURE=	yes
 CONFIGURE_ARGS=	INC="-I${LOCALBASE}/include/ClearSilver"
Index: files/patch-ClearSilver.xs
===================================================================
RCS file: files/patch-ClearSilver.xs
diff -N files/patch-ClearSilver.xs
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-ClearSilver.xs	5 Sep 2008 10:57:33 -0000
@@ -0,0 +1,343 @@
+--- ClearSilver.xs	2007-07-12 05:31:34.000000000 +0400
++++ ClearSilver.xs	2008-09-05 14:23:49.000000000 +0400
+@@ -21,6 +21,7 @@
+ typedef perlCS* ClearSilver__CS;
+ 
+ static char* g_sort_func_name;
++static HV *hdf_stash, *cs_stash;
+ 
+ static void debug(char* fmt, ...)
+ {
+@@ -64,14 +65,13 @@
+   SAVETMPS;
+ 
+   PUSHMARK(SP);
+-  sv_a = sv_newmortal();
+-  sv_setref_pv(sv_a, "ClearSilver::HDF", (void*)&a);
++  EXTEND(SP, 2);
+ 
+-  sv_b = sv_newmortal();
+-  sv_setref_pv(sv_b, "ClearSilver::HDF", (void*)&b);
++  sv_a = sv_2mortal(sv_bless(newRV_noinc( newSViv(PTR2IV( &a )) ), hdf_stash));
++  sv_b = sv_2mortal(sv_bless(newRV_noinc( newSViv(PTR2IV( &b )) ), hdf_stash));
+ 
+-  XPUSHs(sv_a);
+-  XPUSHs(sv_b);
++  PUSHs(sv_a);
++  PUSHs(sv_b);
+ 
+   PUTBACK;
+ 
+@@ -93,27 +93,30 @@
+ }
+ 
+ 
++MODULE = ClearSilver		PACKAGE = ClearSilver::HDF	PREFIX = perlhdf_
+ 
++PROTOTYPES: DISABLE
+ 
++BOOT:
++{
++	hdf_stash = gv_stashpv("ClearSilver::HDF", TRUE);
++}
+ 
+-MODULE = ClearSilver		PACKAGE = ClearSilver::HDF	PREFIX = perlhdf_
+-
+-ClearSilver::HDF
+-perlhdf_new(self)
+-        char* self
+-    PREINIT:	
+-	ClearSilver__HDF hdf;
++void
++perlhdf_new(class)
+     CODE:
+-	debug("%s\n", self);
++    {
++	ClearSilver__HDF hdf;
++
+ 	hdf = (ClearSilver__HDF)malloc(sizeof(perlHDF));
+-	if (!hdf) {
+-	  RETVAL = NULL;
+-	} else {
+-	  hdf->err = hdf_init(&(hdf->hdf));
+-	  RETVAL = hdf;
+-	}
+-    OUTPUT:
+-        RETVAL
++	if (!hdf)
++	  XSRETURN_UNDEF;
++
++	hdf->err = hdf_init(&(hdf->hdf));
++
++	ST(0) = sv_2mortal(sv_bless(newRV_noinc( newSViv(PTR2IV(hdf)) ), hdf_stash));
++	XSRETURN(1);
++    }
+ 
+ void
+ perlhdf_DESTROY(hdf)
+@@ -126,17 +129,17 @@
+ int
+ perlhdf_setValue(hdf, key, value)
+ 	ClearSilver::HDF hdf
+-	char* key
+-	char* value 
+     CODE:
++    {
++	char* key;
++	char* value;
++
+         hdf->err = hdf_set_value(hdf->hdf, key, value);
+-	if (hdf->err == STATUS_OK) {
+-	    RETVAL = 0;
+-	} else {
+-	    RETVAL = 1;
+-	}	
+-    OUTPUT:
+-        RETVAL
++
++	ST(0) = (hdf->err != STATUS_OK)
++		? &PL_sv_yes : &PL_sv_no;
++	XSRETURN(1);
++    }
+ 
+ 
+ char*
+@@ -156,42 +159,39 @@
+         char* name
+         ClearSilver::HDF src
+     CODE:
++    {
+         hdf->err = hdf_copy(hdf->hdf, name, src->hdf);
+-        if (hdf->err == STATUS_OK) {
+-            RETVAL = 0;
+-        } else {
+-            RETVAL = 1;
+-        }
+-    OUTPUT:
+-        RETVAL
++
++	ST(0) = (hdf->err != STATUS_OK)
++		? &PL_sv_yes : &PL_sv_no;
++	XSRETURN(1);
++    }
+ 
+ int
+ perlhdf_readFile(hdf, filename)
+ 	ClearSilver::HDF hdf
+ 	char* filename
+     CODE:
++    {
+         hdf->err = hdf_read_file(hdf->hdf, filename);
+-	if (hdf->err == STATUS_OK) {
+-	    RETVAL = 1;
+-	} else {
+-	    RETVAL = 0;
+-	}	
+-    OUTPUT:
+-        RETVAL
++
++	ST(0) = (hdf->err == STATUS_OK)
++		? &PL_sv_yes : &PL_sv_no;
++	XSRETURN(1);
++    }
+ 
+ int
+ perlhdf_writeFile(hdf, filename)
+-       ClearSilver::HDF hdf
+-       char* filename
++	ClearSilver::HDF hdf
++	char* filename
+     CODE:
+-        hdf->err = hdf_write_file(hdf->hdf, filename);
+-       if (hdf->err == STATUS_OK) {
+-           RETVAL = 1;
+-       } else {
+-           RETVAL = 0;
+-       }
+-    OUTPUT:
+-        RETVAL
++    {
++	hdf->err = hdf_write_file(hdf->hdf, filename);
++
++	ST(0) = (hdf->err == STATUS_OK)
++		? &PL_sv_yes : &PL_sv_no;
++	XSRETURN(1);
++    }
+ 
+ ClearSilver::HDF
+ perlhdf_getObj(hdf, name)
+@@ -312,57 +312,60 @@
+     OUTPUT:
+         RETVAL
+ 
+-int
++void
+ perlhdf_sortObj(hdf, func_name)
+ 	ClearSilver::HDF hdf;
+ 	char* func_name;
+-    PREINIT:	
+-        NEOERR* err;
+     CODE:
++    {
++        NEOERR* err;
+ 	g_sort_func_name = func_name;
+         err = hdf_sort_obj(hdf->hdf, sortFunction);
+-        RETVAL = 0;
+-    OUTPUT:
+-        RETVAL
+ 
++	XSRETURN_UNDEF;
++    }
+ 
+-int
++void
+ perlhdf_setSymlink(hdf, src, dest)
+ 	ClearSilver::HDF hdf;
+ 	char* src;
+ 	char* dest;
+-    PREINIT:
+-	NEOERR* err;
+     CODE:
+-      	err = hdf_set_symlink (hdf->hdf, src, dest);
+-       	if (err == STATUS_OK) {
+-       	    RETVAL = 1;
+-       	} else {
+-       	    RETVAL = 0;
+-       	}
+-    OUTPUT:
+-        RETVAL
++    {
++	NEOERR* err;
+ 
++	err = hdf_set_symlink(hdf->hdf, src, dest);
+ 
+-int
++	ST(0) = (err == STATUS_OK)
++		? &PL_sv_yes : &PL_sv_no;
++	XSRETURN(1);
++    }
++
++void
+ perlhdf_removeTree(hdf, name)
+ 	ClearSilver::HDF hdf;
+ 	char* name;
+-    PREINIT:	
+-        NEOERR* err;
+     CODE:
++    {
++        NEOERR* err;
++
+         err = hdf_remove_tree(hdf->hdf, name);
+-       	if (err == STATUS_OK) {
+-       	    RETVAL = 1;
+-       	} else {
+-       	    RETVAL = 0;
+-       	}
+-    OUTPUT:
+-        RETVAL
++
++	ST(0) = (err == STATUS_OK)
++		? &PL_sv_yes : &PL_sv_no;
++	XSRETURN(1);
++    }
+ 
+ 
+ MODULE = ClearSilver		PACKAGE = ClearSilver::CS	PREFIX = perlcs_
+ 
++PROTOTYPES: DISABLE
++
++BOOT:
++{
++	cs_stash = gv_stashpv("ClearSilver::CS", TRUE);
++}
++
+ ClearSilver::CS
+ perlcs_new(self, hdf)
+ 	char* self
+@@ -401,7 +404,11 @@
+ 	ClearSilver::CS cs
+     CODE:
+     {
+-	SV *str = newSV(0);
++	SV *str = newSV(1);
++	SvLEN_set(str, 0);
++	SvCUR_set(str, 0);
++	SvPOK_on(str);
++
+ 	cs->err = cs_render(cs->cs, str, output);
+ 	if (cs->err == STATUS_OK) {
+ 	  ST(0) = sv_2mortal(str);
+@@ -412,46 +419,40 @@
+ 	XSRETURN(1);
+     }
+ 
+-int
++void
+ perlcs_parseFile(cs, cs_file)
+         ClearSilver::CS cs
+ 	char* cs_file
+     CODE:
+-	do {
+-	    cs->err =  cs_parse_file(cs->cs, cs_file);
+-	    if (cs->err != STATUS_OK) {
+-	        cs->err = nerr_pass(cs->err);
+-		RETVAL = 0;
+-		break;
+-	    }
+-	    RETVAL = 1;
+-        } while (0);
+-    OUTPUT:
+-        RETVAL
++    {
++	cs->err =  cs_parse_file(cs->cs, cs_file);
++	if (cs->err != STATUS_OK) {
++		cs->err = nerr_pass(cs->err);
++		XSRETURN_NO;
++	}
+ 
+-int
+-perlcs_parseString(cs, in_str)
++	XSRETURN_YES;
++    }
++
++void
++perlcs_parseString(cs, sv)
+         ClearSilver::CS cs
+-	char* in_str
+-    PREINIT:
+-	char* cs_str;
+-	int len;
++	SV *sv
+     CODE:
+-	do {
+-	    len = strlen(in_str);
+-	    cs_str = (char *)malloc(len);
+-	    if (!cs_str) {
+-	        RETVAL = 0;
+-		break;
+-	    }
+-	    strcpy(cs_str, in_str);
+-            cs->err =  cs_parse_string(cs->cs, cs_str, len);
+-	    if (cs->err != STATUS_OK)
+-		RETVAL = 0;
+-	    RETVAL = 1;
+-       } while (0);
+-    OUTPUT:
+-        RETVAL
++    {
++	char* in_str;
++	char* cs_str;
++	STRLEN len;
+ 
++	in_str = SvPV(sv, len);
++	cs_str = (char *)malloc(len + 1);
++	if (!cs_str)
++	    XSRETURN_UNDEF;
+ 
++	memcpy(cs_str, in_str, len + 1);
++	cs->err =  cs_parse_string(cs->cs, cs_str, len);
+ 
++	ST(0) = (cs->err == STATUS_OK)
++		? &PL_sv_yes : &PL_sv_no;
++	XSRETURN(1);
++    }
--- p5-ClearSilver-0.10.5_1.patch ends here ---

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->rink 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Fri Sep 5 12:20:13 UTC 2008 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=127108 

From: Sergey Skvortsov <skv@FreeBSD.org>
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/127108: [PATCH] www/p5-ClearSilver: [SUMMARIZE CHANGES]
Date: Fri, 05 Sep 2008 16:59:07 +0400

 This is a multi-part message in MIME format.
 --------------020606090200020300050009
 Content-Type: text/plain; charset=KOI8-R
 Content-Transfer-Encoding: 8bit
 
 Updated patch.
 
 -- 
 Sergey Skvortsov
 mailto: skv@FreeBSD.org
 
 --------------020606090200020300050009
 Content-Type: text/plain;
  name="patch-ClearSilver.xs"
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: inline;
  filename="patch-ClearSilver.xs"
 
 --- ClearSilver/ClearSilver.xs	2008-09-05 16:49:42.000000000 +0400
 +++ ClearSilver-0.10.5/ClearSilver.xs	2007-07-12 05:31:34.000000000 +0400=
 
 @@ -21,7 +21,6 @@
  typedef perlCS* ClearSilver__CS;
 =20
  static char* g_sort_func_name;
 -static HV *hdf_stash, *cs_stash;
 =20
  static void debug(char* fmt, ...)
  {
 @@ -65,13 +64,14 @@
    SAVETMPS;
 =20
    PUSHMARK(SP);
 -  EXTEND(SP, 2);
 +  sv_a =3D sv_newmortal();
 +  sv_setref_pv(sv_a, "ClearSilver::HDF", (void*)&a);
 =20
 -  sv_a =3D sv_2mortal(sv_bless(newRV_noinc( newSViv(PTR2IV( &a )) ), hdf=
 _stash));
 -  sv_b =3D sv_2mortal(sv_bless(newRV_noinc( newSViv(PTR2IV( &b )) ), hdf=
 _stash));
 +  sv_b =3D sv_newmortal();
 +  sv_setref_pv(sv_b, "ClearSilver::HDF", (void*)&b);
 =20
 -  PUSHs(sv_a);
 -  PUSHs(sv_b);
 +  XPUSHs(sv_a);
 +  XPUSHs(sv_b);
 =20
    PUTBACK;
 =20
 @@ -93,30 +93,27 @@
  }
 =20
 =20
 -MODULE =3D ClearSilver		PACKAGE =3D ClearSilver::HDF	PREFIX =3D perlhdf_=
 
 =20
 -PROTOTYPES: DISABLE
 =20
 -BOOT:
 -{
 -	hdf_stash =3D gv_stashpv("ClearSilver::HDF", TRUE);
 -}
 =20
 -void
 -perlhdf_new(class)
 -    CODE:
 -    {
 -	ClearSilver__HDF hdf;
 +MODULE =3D ClearSilver		PACKAGE =3D ClearSilver::HDF	PREFIX =3D perlhdf_=
 
 =20
 +ClearSilver::HDF
 +perlhdf_new(self)
 +        char* self
 +    PREINIT:=09
 +	ClearSilver__HDF hdf;
 +    CODE:
 +	debug("%s\n", self);
  	hdf =3D (ClearSilver__HDF)malloc(sizeof(perlHDF));
 -	if (!hdf)
 -	  XSRETURN_UNDEF;
 -
 -	hdf->err =3D hdf_init(&(hdf->hdf));
 -
 -	ST(0) =3D sv_2mortal(sv_bless(newRV_noinc( newSViv(PTR2IV(hdf)) ), hdf_=
 stash));
 -	XSRETURN(1);
 -    }
 +	if (!hdf) {
 +	  RETVAL =3D NULL;
 +	} else {
 +	  hdf->err =3D hdf_init(&(hdf->hdf));
 +	  RETVAL =3D hdf;
 +	}
 +    OUTPUT:
 +        RETVAL
 =20
  void
  perlhdf_DESTROY(hdf)
 @@ -129,17 +126,17 @@
  int
  perlhdf_setValue(hdf, key, value)
  	ClearSilver::HDF hdf
 -	char* key;
 -	char* value;
 -
 +	char* key
 +	char* value=20
      CODE:
 -    {
          hdf->err =3D hdf_set_value(hdf->hdf, key, value);
 -
 -	ST(0) =3D (hdf->err !=3D STATUS_OK)
 -		? &PL_sv_yes : &PL_sv_no;
 -	XSRETURN(1);
 -    }
 +	if (hdf->err =3D=3D STATUS_OK) {
 +	    RETVAL =3D 0;
 +	} else {
 +	    RETVAL =3D 1;
 +	}=09
 +    OUTPUT:
 +        RETVAL
 =20
 =20
  char*
 @@ -159,39 +156,42 @@
          char* name
          ClearSilver::HDF src
      CODE:
 -    {
          hdf->err =3D hdf_copy(hdf->hdf, name, src->hdf);
 -
 -	ST(0) =3D (hdf->err !=3D STATUS_OK)
 -		? &PL_sv_yes : &PL_sv_no;
 -	XSRETURN(1);
 -    }
 +        if (hdf->err =3D=3D STATUS_OK) {
 +            RETVAL =3D 0;
 +        } else {
 +            RETVAL =3D 1;
 +        }
 +    OUTPUT:
 +        RETVAL
 =20
  int
  perlhdf_readFile(hdf, filename)
  	ClearSilver::HDF hdf
  	char* filename
      CODE:
 -    {
          hdf->err =3D hdf_read_file(hdf->hdf, filename);
 -
 -	ST(0) =3D (hdf->err =3D=3D STATUS_OK)
 -		? &PL_sv_yes : &PL_sv_no;
 -	XSRETURN(1);
 -    }
 +	if (hdf->err =3D=3D STATUS_OK) {
 +	    RETVAL =3D 1;
 +	} else {
 +	    RETVAL =3D 0;
 +	}=09
 +    OUTPUT:
 +        RETVAL
 =20
  int
  perlhdf_writeFile(hdf, filename)
 -	ClearSilver::HDF hdf
 -	char* filename
 +       ClearSilver::HDF hdf
 +       char* filename
      CODE:
 -    {
 -	hdf->err =3D hdf_write_file(hdf->hdf, filename);
 -
 -	ST(0) =3D (hdf->err =3D=3D STATUS_OK)
 -		? &PL_sv_yes : &PL_sv_no;
 -	XSRETURN(1);
 -    }
 +        hdf->err =3D hdf_write_file(hdf->hdf, filename);
 +       if (hdf->err =3D=3D STATUS_OK) {
 +           RETVAL =3D 1;
 +       } else {
 +           RETVAL =3D 0;
 +       }
 +    OUTPUT:
 +        RETVAL
 =20
  ClearSilver::HDF
  perlhdf_getObj(hdf, name)
 @@ -312,60 +312,57 @@
      OUTPUT:
          RETVAL
 =20
 -void
 +int
  perlhdf_sortObj(hdf, func_name)
  	ClearSilver::HDF hdf;
  	char* func_name;
 -    CODE:
 -    {
 +    PREINIT:=09
          NEOERR* err;
 +    CODE:
  	g_sort_func_name =3D func_name;
          err =3D hdf_sort_obj(hdf->hdf, sortFunction);
 +        RETVAL =3D 0;
 +    OUTPUT:
 +        RETVAL
 =20
 -	XSRETURN_UNDEF;
 -    }
 =20
 -void
 +int
  perlhdf_setSymlink(hdf, src, dest)
  	ClearSilver::HDF hdf;
  	char* src;
  	char* dest;
 -    CODE:
 -    {
 +    PREINIT:
  	NEOERR* err;
 +    CODE:
 +      	err =3D hdf_set_symlink (hdf->hdf, src, dest);
 +       	if (err =3D=3D STATUS_OK) {
 +       	    RETVAL =3D 1;
 +       	} else {
 +       	    RETVAL =3D 0;
 +       	}
 +    OUTPUT:
 +        RETVAL
 =20
 -	err =3D hdf_set_symlink(hdf->hdf, src, dest);
 -
 -	ST(0) =3D (err =3D=3D STATUS_OK)
 -		? &PL_sv_yes : &PL_sv_no;
 -	XSRETURN(1);
 -    }
 =20
 -void
 +int
  perlhdf_removeTree(hdf, name)
  	ClearSilver::HDF hdf;
  	char* name;
 -    CODE:
 -    {
 +    PREINIT:=09
          NEOERR* err;
 -
 +    CODE:
          err =3D hdf_remove_tree(hdf->hdf, name);
 -
 -	ST(0) =3D (err =3D=3D STATUS_OK)
 -		? &PL_sv_yes : &PL_sv_no;
 -	XSRETURN(1);
 -    }
 +       	if (err =3D=3D STATUS_OK) {
 +       	    RETVAL =3D 1;
 +       	} else {
 +       	    RETVAL =3D 0;
 +       	}
 +    OUTPUT:
 +        RETVAL
 =20
 =20
  MODULE =3D ClearSilver		PACKAGE =3D ClearSilver::CS	PREFIX =3D perlcs_
 =20
 -PROTOTYPES: DISABLE
 -
 -BOOT:
 -{
 -	cs_stash =3D gv_stashpv("ClearSilver::CS", TRUE);
 -}
 -
  ClearSilver::CS
  perlcs_new(self, hdf)
  	char* self
 @@ -404,11 +401,7 @@
  	ClearSilver::CS cs
      CODE:
      {
 -	SV *str =3D newSV(1);
 -	SvLEN_set(str, 0);
 -	SvCUR_set(str, 0);
 -	SvPOK_on(str);
 -
 +	SV *str =3D newSV(0);
  	cs->err =3D cs_render(cs->cs, str, output);
  	if (cs->err =3D=3D STATUS_OK) {
  	  ST(0) =3D sv_2mortal(str);
 @@ -419,40 +412,46 @@
  	XSRETURN(1);
      }
 =20
 -void
 +int
  perlcs_parseFile(cs, cs_file)
          ClearSilver::CS cs
  	char* cs_file
      CODE:
 -    {
 -	cs->err =3D  cs_parse_file(cs->cs, cs_file);
 -	if (cs->err !=3D STATUS_OK) {
 -		cs->err =3D nerr_pass(cs->err);
 -		XSRETURN_NO;
 -	}
 -
 -	XSRETURN_YES;
 -    }
 +	do {
 +	    cs->err =3D  cs_parse_file(cs->cs, cs_file);
 +	    if (cs->err !=3D STATUS_OK) {
 +	        cs->err =3D nerr_pass(cs->err);
 +		RETVAL =3D 0;
 +		break;
 +	    }
 +	    RETVAL =3D 1;
 +        } while (0);
 +    OUTPUT:
 +        RETVAL
 =20
 -void
 -perlcs_parseString(cs, sv)
 +int
 +perlcs_parseString(cs, in_str)
          ClearSilver::CS cs
 -	SV *sv
 -    CODE:
 -    {
 -	char* in_str;
 +	char* in_str
 +    PREINIT:
  	char* cs_str;
 -	STRLEN len;
 +	int len;
 +    CODE:
 +	do {
 +	    len =3D strlen(in_str);
 +	    cs_str =3D (char *)malloc(len);
 +	    if (!cs_str) {
 +	        RETVAL =3D 0;
 +		break;
 +	    }
 +	    strcpy(cs_str, in_str);
 +            cs->err =3D  cs_parse_string(cs->cs, cs_str, len);
 +	    if (cs->err !=3D STATUS_OK)
 +		RETVAL =3D 0;
 +	    RETVAL =3D 1;
 +       } while (0);
 +    OUTPUT:
 +        RETVAL
 =20
 -	in_str =3D SvPV(sv, len);
 -	cs_str =3D (char *)malloc(len + 1);
 -	if (!cs_str)
 -	    XSRETURN_UNDEF;
 =20
 -	memcpy(cs_str, in_str, len + 1);
 -	cs->err =3D  cs_parse_string(cs->cs, cs_str, len);
 =20
 -	ST(0) =3D (cs->err =3D=3D STATUS_OK)
 -		? &PL_sv_yes : &PL_sv_no;
 -	XSRETURN(1);
 -    }
 
 --------------020606090200020300050009--
Responsible-Changed-From-To: rink->skv 
Responsible-Changed-By: rink 
Responsible-Changed-When: Tue Sep 23 20:09:00 UTC 2008 
Responsible-Changed-Why:  
Go ahead - and please take maintainership too, you know this port better than I do :-) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=127108 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/127108: commit references a PR
Date: Sat,  4 Oct 2008 15:28:20 +0000 (UTC)

 skv         2008-10-04 15:28:06 UTC
 
   FreeBSD ports repository
 
   Modified files:
     www/p5-ClearSilver   Makefile 
   Added files:
     www/p5-ClearSilver/files patch-ClearSilver.xs 
   Log:
   Bugfixes:
   - fix perl_render() - avoid "uninitialized value" warnings
   - fix perlcs_parseString() - correct malloc: use len+1 instead of len
   
   Also, take maintainership.
   
   PR:             ports/127108
   Submitted by:   skv
   Approved by:    rink (previous maintainer)
   
   Revision  Changes    Path
   1.5       +4 -3      ports/www/p5-ClearSilver/Makefile
   1.1       +34 -0     ports/www/p5-ClearSilver/files/patch-ClearSilver.xs (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: skv 
State-Changed-When: Sat Oct 4 16:06:21 UTC 2008 
State-Changed-Why:  
Committed. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=127108 
>Unformatted:
