- if (recC[recindex].type != IGN)
- if ((valC[recindex] = (char *)malloc (strlen(line)+1)))
- strcpy(valC[recindex], line);
- else
- return 0;
+ if (recC[recindex].type != IGN) {
+ /*
+ * Special exception to support multiple Text fields
+ */
+ if (recindex == C_TEXT && valC[recindex]) {
+ if (!text) {
+ if ((text = (char **)malloc ((MAX_TEXT+1) * sizeof (char *))) == NULL)
+ return 0;
+ else {
+ textindex = 0;
+ memset (text, 0, (MAX_TEXT+1) * sizeof (char *));
+ }
+ }
+ if (textindex < MAX_TEXT) {
+ if ((cp = (char *)malloc (strlen (line) + 1))) {
+ strcpy (cp, line);
+ cp[strlen (line)] = '\0';
+ text[textindex++] = cp;
+ }
+ }
+ } else {
+ if ((valC[recindex] = (char *)malloc (strlen(line)+1)))
+ strcpy(valC[recindex], line);
+ else
+ return 0;
+ }
+ }