#include <stdlib.h>#include <netcdf.h>#include "generic.h"#include "ncgen.h"#include "genlib.h"Include dependency graph for escapes.c:

Go to the source code of this file.
Functions | |
| void | expand_escapes (char *termstring, char *yytext, int yyleng) |
|
||||||||||||||||
|
Definition at line 21 of file escapes.c. 00025 { 00026 char *s, *t, *endp; 00027 00028 yytext[yyleng-1]='\0'; /* don't copy quotes */ 00029 /* expand "\" escapes, e.g. "\t" to tab character */ 00030 s = termstring; 00031 t = yytext+1; 00032 while(*t) { 00033 if (*t == '\\') { 00034 t++; 00035 switch (*t) { 00036 case 'a': 00037 *s++ = '\007'; t++; /* will use '\a' when STDC */ 00038 break; 00039 case 'b': 00040 *s++ = '\b'; t++; 00041 break; 00042 case 'f': 00043 *s++ = '\f'; t++; 00044 break; 00045 case 'n': 00046 *s++ = '\n'; t++; 00047 break; 00048 case 'r': 00049 *s++ = '\r'; t++; 00050 break; 00051 case 't': 00052 *s++ = '\t'; t++; 00053 break; 00054 case 'v': 00055 *s++ = '\v'; t++; 00056 break; 00057 case '\\': 00058 *s++ = '\\'; t++; 00059 break; 00060 case '?': 00061 *s++ = '\177'; t++; 00062 break; 00063 case '\'': 00064 *s++ = '\''; t++; 00065 break; 00066 case '\"': 00067 *s++ = '\"'; t++; 00068 break; 00069 case 'x': 00070 t++; /* now t points to one or more hex digits */ 00071 *s++ = (char) strtol(t, &endp, 16); 00072 t = endp; 00073 break; 00074 case '0': 00075 case '1': 00076 case '2': 00077 case '3': 00078 case '4': 00079 case '5': 00080 case '6': 00081 case '7': 00082 /* t now points to octal digits */ 00083 *s++ = (char) strtol(t, &endp, 8); 00084 t = endp; 00085 break; 00086 default: 00087 *s++ = *t++; 00088 break; 00089 } 00090 } else { 00091 *s++ = *t++; 00092 } 00093 } 00094 *s = '\0'; 00095 return; 00096 }
|
1.4.4