add epicsStrPrintEscaped

This commit is contained in:
Marty Kraimer
2003-12-01 16:04:23 +00:00
parent b369035b9d
commit 10fa0e0eb2
2 changed files with 31 additions and 0 deletions
+29
View File
@@ -109,3 +109,32 @@ epicsShareFunc char * epicsShareAPI epicsStrDup(const char *s)
{
return strcpy(mallocMustSucceed(strlen(s)+1,"epicsStrDup"),s);
}
epicsShareFunc int epicsShareAPI epicsStrPrintEscaped(
FILE *fp, const char *s, int n)
{
int nout=0;
while (n--) {
char c = *s++;
switch (c) {
case '\a': nout += fprintf(fp, "\\a"); break;
case '\b': nout += fprintf(fp, "\\b"); break;
case '\f': nout += fprintf(fp, "\\f"); break;
case '\n': nout += fprintf(fp, "\\n"); break;
case '\r': nout += fprintf(fp, "\\r"); break;
case '\t': nout += fprintf(fp, "\\t"); break;
case '\v': nout += fprintf(fp, "\\v"); break;
case '\\': nout += fprintf(fp, "\\\\"); break;
case '\?': nout += fprintf(fp, "\\?"); break;
case '\'': nout += fprintf(fp, "\\'"); break;
case '\"': nout += fprintf(fp, "\\\""); break;
default:
if (isprint(c))
nout += fprintf(fp, "%c", c);/* putchar(c) doesn't work on vxWorks */
else
nout += fprintf(fp, "\\%03o", (unsigned char)c);
break;
}
}
return nout;
}
+2
View File
@@ -26,6 +26,8 @@ epicsShareFunc int epicsShareAPI dbTranslateEscape(char *s,const char *ct);
epicsShareFunc int epicsShareAPI epicsStrCaseCmp(
const char *s1, const char *s2, int n);
epicsShareFunc char * epicsShareAPI epicsStrDup(const char *s);
epicsShareFunc int epicsShareAPI epicsStrPrintEscaped(
FILE *fp, const char *s, int n);
#ifdef __cplusplus
}