|
From: <ai...@us...> - 2009-07-09 23:23:34
|
Revision: 10131
http://plplot.svn.sourceforge.net/plplot/?rev=10131&view=rev
Author: airwin
Date: 2009-07-09 23:23:21 +0000 (Thu, 09 Jul 2009)
Log Message:
-----------
Implement plGetName pldebug information.
Fix bug in current directory pldebug information output.
Deal with two (!) old tk formats, one without and one with rev information.
Modified Paths:
--------------
trunk/src/plctrl.c
Modified: trunk/src/plctrl.c
===================================================================
--- trunk/src/plctrl.c 2009-07-09 23:19:05 UTC (rev 10130)
+++ trunk/src/plctrl.c 2009-07-09 23:23:21 UTC (rev 10131)
@@ -1290,7 +1290,6 @@
char msgbuf[1024];
rgb = TRUE;
- rev = NULL;
err = 0;
format_version = 0;
fp = plLibOpen(filename);
@@ -1328,28 +1327,38 @@
b = (PLFLT *)malloc(number_colors * sizeof(PLFLT));
a = (PLFLT *)malloc(number_colors * sizeof(PLFLT));
pos = (PLFLT *)malloc(number_colors * sizeof(PLFLT));
- if (format_version > 0) {
- rev = (PLBOOL *)malloc(number_colors * sizeof(PLBOOL));
- }
+ rev = (PLBOOL *)malloc(number_colors * sizeof(PLBOOL));
if (format_version == 0) {
+ int return_sscanf, return_sscanf_old=0;
/* Old tk file format */
for(i=0;i<number_colors;i++){
fgets(color_info, 160, fp);
/* Ensure string is null terminated if > 160 characters */
color_info[159] = '\0';
- if (sscanf(color_info, "#%2x%2x%2x %d", &r_i, &g_i, &b_i, &pos_i) < 4) {
+ return_sscanf = sscanf(color_info, "#%2x%2x%2x %d %d", &r_i, &g_i, &b_i, &pos_i, &rev_i);
+ if(return_sscanf < 4 || (return_sscanf_old != 0 && return_sscanf != return_sscanf_old)) {
snprintf(msgbuf,1024,"Unrecognized cmap1 format %s\n", color_info);
plwarn(msgbuf);
err = 1;
break;
- }
+ }
+ return_sscanf_old = return_sscanf;
r[i] = (PLFLT)r_i;
g[i] = (PLFLT)g_i;
b[i] = (PLFLT)b_i;
a[i] = 1.0;
pos[i] = 0.01*(PLFLT)pos_i;
+ if(return_sscanf == 5) {
+ /* Next to oldest tk format with rev specified. */
+ rev[i] = (PLBOOL)rev_i;
+ }
}
+ if(return_sscanf == 4) {
+ /* Oldest tk format. No rev specified. */
+ free(rev);
+ rev = NULL;
+ }
}
else {
/* New floating point file version with support for alpha and rev values */
@@ -1365,8 +1374,8 @@
g[i] = (PLFLT)g_d;
b[i] = (PLFLT)b_d;
a[i] = (PLFLT)a_d;
+ pos[i] = (PLFLT)pos_d;
rev[i] = (PLBOOL)rev_i;
- pos[i] = (PLFLT)pos_d;
}
}
fclose(fp);
@@ -1385,6 +1394,7 @@
free(b);
free(a);
free(pos);
+ free(rev);
}
/*--------------------------------------------------------------------------*\
@@ -1719,7 +1729,8 @@
/**** search current directory ****/
if ((file = pdf_fopen(fn, "rb")) != NULL){
- goto done;
+ pldebug("plLibOpenPdfstr", "Found file %s in current directory.\n", fn);
+ return (file);
}
/**** search PLPLOT_HOME_ENV/lib = $(PLPLOT_HOME)/lib ****/
@@ -1867,7 +1878,6 @@
/* Malloc space for filespec */
free_mem(*filespec);
- lfilespec = 10;
lfilespec = strlen(dir) + strlen(subdir) + strlen(filename) + 10;
if ((*filespec = (char *) malloc(lfilespec))==NULL)
{
@@ -1884,6 +1894,8 @@
strcat_delim(*filespec);
strcat(*filespec, filename);
}
+ pldebug("plGetName", "Length of full pathname of file to be found is %d\n", lfilespec);
+ pldebug("plGetName", "Full pathname of file to be found is %s\n", *filespec);
}
/*--------------------------------------------------------------------------*\
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|