MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / parse_text_line

Function parse_text_line

extra/comp_err.c:1158–1200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1156*/
1157
1158static char *parse_text_line(char *pos)
1159{
1160 int i, nr;
1161 char *row= pos;
1162 size_t len;
1163 DBUG_ENTER("parse_text_line");
1164
1165 len= strlen (pos);
1166 while (*pos)
1167 {
1168 if (*pos == '\\')
1169 {
1170 switch (*++pos) {
1171 case '\\':
1172 case '"':
1173 (void) memmove (pos - 1, pos, len - (row - pos));
1174 break;
1175 case 'n':
1176 pos[-1]= '\n';
1177 (void) memmove (pos, pos + 1, len - (row - pos));
1178 break;
1179 default:
1180 if (*pos >= '0' && *pos < '8')
1181 {
1182 nr= 0;
1183 for (i= 0; i < 3 && (*pos >= '0' && *pos < '8'); i++)
1184 nr= nr * 8 + (*(pos++) - '0');
1185 pos -= i;
1186 pos[-1]= nr;
1187 (void) memmove (pos, pos + i, len - (row - pos));
1188 }
1189 else if (*pos)
1190 (void) memmove (pos - 1, pos, len - (row - pos)); /* Remove '\' */
1191 }
1192 }
1193 else
1194 pos++;
1195 }
1196 while (pos > row + 1 && *pos != '"')
1197 pos--;
1198 *pos= 0;
1199 DBUG_RETURN(pos);
1200}
1201
1202
1203/* Copy rows from memory to file and remember position */

Callers 1

parse_message_stringFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected