- Added and commented out padding handling in nxscript puts. Now HDF5 shortens my strings....

This commit is contained in:
2014-05-22 09:02:33 +02:00
parent 4f5bcaeb5e
commit d1060a3368

View File

@ -1491,6 +1491,37 @@ static int SPutAddType(void *message, void *userData)
} }
return MPCONTINUE; return MPCONTINUE;
} }
/*-----------------------------------------------------------------------
Writing should not fail due to some error in padding. Thus this routine
protects against errors but does not fail
------------------------------------------------------------------------*/
static int SPutPadding(void *message, void *userData)
{
pPutMessage self = (pPutMessage)message;
char *pPtr = NULL, *pEnd = NULL;
unsigned int len, i;
if(self->v.dataType == HIPTEXT && strstr(self->v.v.text,"@len") != NULL){
pPtr = strchr(self->v.v.text,'=');
pPtr++;
pEnd = strchr(pPtr,'@');
if(pPtr != NULL && pEnd != NULL){
*pEnd = '\0';
len = atoi(pPtr);
}
pPtr = malloc(len*sizeof(char));
if(pPtr != NULL){
memset(pPtr,0,len*sizeof(char));
strncpy(pPtr,pEnd+1,len);
for(i = strlen(pPtr); i < len-1; i++){
pPtr[i] = ' ';
}
free(self->v.v.text);
self->v.v.text = pPtr;
}
}
return MPCONTINUE;
}
/*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/
static int SPutDim(void *message, void *userData) static int SPutDim(void *message, void *userData)
{ {
@ -1604,6 +1635,7 @@ static void configurePutPipe()
AppendMPFilter(putPipe,SGetData, NULL,NULL); AppendMPFilter(putPipe,SGetData, NULL,NULL);
AppendMPFilter(putPipe,GetDefString, NULL,NULL); AppendMPFilter(putPipe,GetDefString, NULL,NULL);
AppendMPFilter(putPipe,SPutAddType, NULL,NULL); AppendMPFilter(putPipe,SPutAddType, NULL,NULL);
/* AppendMPFilter(putPipe,SPutPadding, NULL,NULL); */
AppendMPFilter(putPipe,SPutDim, NULL,NULL); AppendMPFilter(putPipe,SPutDim, NULL,NULL);
AppendMPFilter(putPipe,SPutWrite, NULL,NULL); AppendMPFilter(putPipe,SPutWrite, NULL,NULL);
} }