Fix to Mantis #250, support escaped characters in record field values.

This commit is contained in:
Andrew Johnson
2006-11-15 23:33:31 +00:00
parent 6cbcb67e56
commit a4948d15fd
4 changed files with 43 additions and 45 deletions

View File

@@ -31,6 +31,7 @@
#include "postfix.h"
#include "osiFileName.h"
#include "epicsStdlib.h"
#include "epicsString.h"
#include "epicsStdioRedirect.h"
#define epicsExportSharedSymbols
@@ -925,15 +926,17 @@ long epicsShareAPI dbWriteRecordFP(
dbGetRecordTypeName(pdbentry),dbGetRecordName(pdbentry));
status = dbFirstField(pdbentry,dctonly);
while(!status) {
if(!dbIsDefaultValue(pdbentry) || level>0) {
if (!dbIsDefaultValue(pdbentry) || level>0) {
char *pvalstring = dbGetString(pdbentry);
if(!pvalstring) {
if (!pvalstring) {
fprintf(fp,"\tfield(%s,\"\")\n",
dbGetFieldName(pdbentry));
} else {
fprintf(fp,"\tfield(%s,\"%s\")\n",
dbGetFieldName(pdbentry),dbGetString(pdbentry));
fprintf(fp,"\tfield(%s,\"",
dbGetFieldName(pdbentry));
epicsStrPrintEscaped(fp,pvalstring,strlen(pvalstring));
fprintf(fp,"\")\n");
}
} else if(level>0) { /*generate 0 length string*/
fprintf(fp,"\tfield(%s,\"\")\n",dbGetFieldName(pdbentry));