From: <and...@us...> - 2007-12-03 10:38:07
|
Revision: 8054 http://plplot.svn.sourceforge.net/plplot/?rev=8054&view=rev Author: andrewross Date: 2007-12-03 02:38:12 -0800 (Mon, 03 Dec 2007) Log Message: ----------- Fix to ensure that BUILD_TREE check always uses physical path and not logical path which may include symlinks. Modified Paths: -------------- trunk/src/plcore.c Modified: trunk/src/plcore.c =================================================================== --- trunk/src/plcore.c 2007-12-01 12:04:35 UTC (rev 8053) +++ trunk/src/plcore.c 2007-12-03 10:38:12 UTC (rev 8054) @@ -2110,6 +2110,7 @@ if (inited == 0) { char currdir[256]; + char builddir[256]; /* AM: getcwd has a somewhat strange status on Windows, its proper name is _getcwd, this is a problem in the case of DLLs, like with @@ -2121,8 +2122,22 @@ if (getcwd(currdir, 256) == NULL) { pldebug("plInBuildTree():", "Not enough buffer space"); - } else if (strncmp(BUILD_DIR, currdir, strlen(BUILD_DIR)) == 0) - inBuildTree = 1; + } else { + /* The chdir / getcwd call is to ensure we get the physical + * path without any symlinks */ + /* Ignore error in chdir - build tree may not exist */ + if (chdir(BUILD_DIR) == 0) { + if (getcwd(builddir, 256) == NULL) { + pldebug("plInBuildTree():", "Not enough buffer space"); + } + else { + if (strncmp(builddir, currdir, strlen(builddir)) == 0) { + inBuildTree = 1; + } + } + chdir(currdir); + } + } inited = 1; } return inBuildTree; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sm...@us...> - 2008-02-02 00:14:52
|
Revision: 8208 http://plplot.svn.sourceforge.net/plplot/?rev=8208&view=rev Author: smekal Date: 2008-02-01 13:46:52 -0800 (Fri, 01 Feb 2008) Log Message: ----------- Memory buffer of streams are now copied, if a stream is copied, not only the pointer to the old memory buffer. Should fix a segmentation fault if a stream is copied on Linux. Modified Paths: -------------- trunk/src/plcore.c Modified: trunk/src/plcore.c =================================================================== --- trunk/src/plcore.c 2008-02-01 19:33:30 UTC (rev 8207) +++ trunk/src/plcore.c 2008-02-01 21:46:52 UTC (rev 8208) @@ -2004,11 +2004,13 @@ #ifdef BUFFERED_FILE plsc->plbufFile = plsr->plbufFile; #else - plsc->plbuf_buffer = plsr->plbuf_buffer; plsc->plbuf_buffer_grow = plsr->plbuf_buffer_grow; plsc->plbuf_buffer_size = plsr->plbuf_buffer_size; plsc->plbuf_top = plsr->plbuf_top; plsc->plbuf_readpos = plsr->plbuf_readpos; + if ((plsc->plbuf_buffer = malloc(plsc->plbuf_buffer_size)) == NULL) + plexit("plcpstrm: Error allocating plot buffer."); + memcpy( plsc->plbuf_buffer, plsr->plbuf_buffer, plsr->plbuf_top ); #endif /* Driver interface */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-03-13 10:27:37
|
Revision: 8283 http://plplot.svn.sourceforge.net/plplot/?rev=8283&view=rev Author: andrewross Date: 2008-03-13 03:27:42 -0700 (Thu, 13 Mar 2008) Log Message: ----------- Replace implementation of text2num with a version based on the C strtol function. This will be more robust against invalid control strings. Modified Paths: -------------- trunk/src/plcore.c Modified: trunk/src/plcore.c =================================================================== --- trunk/src/plcore.c 2008-03-13 02:40:57 UTC (rev 8282) +++ trunk/src/plcore.c 2008-03-13 10:27:42 UTC (rev 8283) @@ -383,29 +383,27 @@ * * Function takes a string, which can be either hex or decimal, * and converts it into an PLUNICODE, stopping at either a null, - * or the character pointed to by 'end'. It is a bit brain-dead, - * and probably should make more checks, but it works. + * or the character pointed to by 'end'. This implementation using + * the C library strtol replaces the original brain-dead version + * and should be more robust to invalid control strings. \*--------------------------------------------------------------------------*/ int text2num( const char *text, char end, PLUNICODE *num) { - int base=10; - unsigned short i=0; - *num=0; - if (text[1]=='x') - { - base=16; - i=2; - } + char *endptr; + char *endptr2; + char msgbuf[80]; - while ((text[i]!=end)&&(text[i]!=0)) - { - *num*=base; - *num+=hex2dec(text[i]); - i++; - } - return(i); + *num = strtol(text,&endptr,0); + + if (end != endptr[0]) { + sprintf(msgbuf,"text2num: invalid control string detected - %c expected",end); + plwarn(msgbuf); + } + + return (int)(endptr - text); + } /*--------------------------------------------------------------------------*\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-03-13 17:05:51
|
Revision: 8289 http://plplot.svn.sourceforge.net/plplot/?rev=8289&view=rev Author: airwin Date: 2008-03-13 10:05:57 -0700 (Thu, 13 Mar 2008) Log Message: ----------- Remove hex2dec macro which is no longer used since the text2num rewrite. Modified Paths: -------------- trunk/src/plcore.c Modified: trunk/src/plcore.c =================================================================== --- trunk/src/plcore.c 2008-03-13 16:13:24 UTC (rev 8288) +++ trunk/src/plcore.c 2008-03-13 17:05:57 UTC (rev 8289) @@ -373,8 +373,6 @@ #define DEBUG_TEXT */ -#define hex2dec( a ) isdigit(a) ? a - 48 : (toupper(a) - 65) + 10 - /*--------------------------------------------------------------------------*\ * int text2num( char *text, char end, PLUNICODE *num) * char *text - pointer to the text to be parsed This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2008-03-18 17:13:52
|
Revision: 8298 http://plplot.svn.sourceforge.net/plplot/?rev=8298&view=rev Author: andrewross Date: 2008-03-18 10:13:57 -0700 (Tue, 18 Mar 2008) Log Message: ----------- Change strtol to strtoul in text2num since PLUNICODE is a 32-bit unsigned integer. The previous version worked on 64 bit architectures, but not 32 bit architectures. This broke the interpretation of FCI strings in example 23 and caused ctest to fail. Modified Paths: -------------- trunk/src/plcore.c Modified: trunk/src/plcore.c =================================================================== --- trunk/src/plcore.c 2008-03-18 10:05:37 UTC (rev 8297) +++ trunk/src/plcore.c 2008-03-18 17:13:57 UTC (rev 8298) @@ -382,7 +382,7 @@ * Function takes a string, which can be either hex or decimal, * and converts it into an PLUNICODE, stopping at either a null, * or the character pointed to by 'end'. This implementation using - * the C library strtol replaces the original brain-dead version + * the C library strtoul replaces the original brain-dead version * and should be more robust to invalid control strings. \*--------------------------------------------------------------------------*/ @@ -393,13 +393,13 @@ char *endptr2; char msgbuf[80]; - *num = strtol(text,&endptr,0); + *num = strtoul(text,&endptr,0); if (end != endptr[0]) { sprintf(msgbuf,"text2num: invalid control string detected - %c expected",end); plwarn(msgbuf); } - + return (int)(endptr - text); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |