Hi Andrew, Andrew Ross wrote: > Werner, > > Please be careful about replacing sprintf with snprintf in the examples. Not > all > compilers have snprintf available. Internally in the library we have cmake > checks for > this and define appropriate macros for platforms where snprintf is not > available and a > dummy wrapper plsnprintf which just calls sprintf. > Yes, you're right. I was too eager getting rid of this unsafe functions. I'll revert it. > These are defined in plplotP.h for internal use and are not available for > users / > examples. Your change as it stands is likely to break this example on some > compilers > including I believe Visual C++ and Borland. > That's the strange part - I tested these changes with Visual C++ and Borland C++. So plplotP.h must be included somewhere.
> One option is to ensure the internal snprintf fixes are externally available. > I'm not > sure it is our role to provide this kind of additional functionality in the > plplot API. > The other option is to stick with sprintf in the examples, perhaps adding a > comment to > say that use of sprintf is discouraged, but for maximum portability we use it > in our > examples. > I'll revert the changes. Regards, Werner > Andrew > > On Thu, Mar 19, 2009 at 12:03:34PM +0000, sme...@users.sourceforge.net wrote: > >> Revision: 9753 >> http://plplot.svn.sourceforge.net/plplot/?rev=9753&view=rev >> Author: smekal >> Date: 2009-03-19 12:03:33 +0000 (Thu, 19 Mar 2009) >> >> Log Message: >> ----------- >> Replaced sprintf with snprintf in example 12. >> Replaced // comment in examples 32 (not allowed in ANSI C). >> >> Modified Paths: >> -------------- >> trunk/examples/c/x12c.c >> trunk/examples/c/x32c.c >> >> Modified: trunk/examples/c/x12c.c >> =================================================================== >> --- trunk/examples/c/x12c.c 2009-03-19 12:02:01 UTC (rev 9752) >> +++ trunk/examples/c/x12c.c 2009-03-19 12:03:33 UTC (rev 9753) >> @@ -5,6 +5,8 @@ >> >> #include "plcdemos.h" >> >> +#define STRING_SIZE 20 >> + >> void >> plfbox(PLFLT x0, PLFLT y0); >> >> @@ -19,7 +21,7 @@ >> main(int argc, const char *argv[]) >> { >> int i; >> - char string[20]; >> + char string[STRING_SIZE]; >> PLFLT y0[10]; >> >> static PLFLT pos[] = {0.0, 0.25, 0.5, 0.75, 1.0}; >> @@ -60,9 +62,9 @@ >> plcol1(i/9.0); >> plpsty(0); >> plfbox((1980. + i), y0[i]); >> - sprintf(string, "%.0f", y0[i]); >> + snprintf(string, STRING_SIZE, "%.0f", y0[i]); >> plptex((1980. + i + .5), (y0[i] + 1.), 1.0, 0.0, .5, string); >> - sprintf(string, "%d", 1980 + i); >> + snprintf(string, STRING_SIZE, "%d", 1980 + i); >> plmtex("b", 1.0, ((i + 1) * .1 - .05), 0.5, string); >> } >> >> >> Modified: trunk/examples/c/x32c.c >> =================================================================== >> --- trunk/examples/c/x32c.c 2009-03-19 12:02:01 UTC (rev 9752) >> +++ trunk/examples/c/x32c.c 2009-03-19 12:03:33 UTC (rev 9753) >> @@ -80,7 +80,7 @@ >> plbox("bc", 1.0, 0, "bcgnst", 0, 0); >> pllab("Group", "Value", "#frPLplot Example 32"); >> >> - //plscmap1l(1,5,pos,red,green,blue,NULL); >> + /* plscmap1l(1,5,pos,red,green,blue,NULL); */ >> >> for (i = 0; i < 10; i++) { >> plcol1(i/9.0); >> >> >> This was sent by the SourceForge.net collaborative development platform, the >> world's largest Open Source development site. >> >> ------------------------------------------------------------------------------ >> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are >> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and >> easily build your RIAs with Flex Builder, the Eclipse(TM)based development >> software that enables intelligent coding and step-through debugging. >> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com >> _______________________________________________ >> Plplot-cvs mailing list >> plplot-...@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/plplot-cvs >> >> > > ------------------------------------------------------------------------------ > Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are > powering Web 2.0 with engaging, cross-platform capabilities. Quickly and > easily build your RIAs with Flex Builder, the Eclipse(TM)based development > software that enables intelligent coding and step-through debugging. > Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com > _______________________________________________ > Plplot-devel mailing list > Plplot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/plplot-devel > -- Dr. Werner Smekal Institut fuer Allgemeine Physik Technische Universitaet Wien Wiedner Hauptstr 8-10 A-1040 Wien Austria DVR-Nr: 0005886 email: sme...@iap.tuwien.ac.at web: http://www.iap.tuwien.ac.at/~smekal phone: +43-(0)1-58801-13463 (office) +43-(0)1-58801-13469 (laboratory) fax: +43-(0)1-58801-13499 ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel