+ pnt = str + strlen(str) -1;
+ if (*pnt == '?') /* Continuation stab. */
+ {
+ symbolS *spnext;
+ int tlen = 0;
+ spnext = sp;
+ do {
+ tlen += strlen(str) - 1;
+ spnext = symbol_next (spnext);
+ str = S_GET_NAME (spnext);
+ pnt = str + strlen(str) - 1;
+ } while (*pnt == '?');
+ tlen += strlen(str);
+ parse_buffer = (char *) malloc (tlen + 1);
+ strcpy(parse_buffer, S_GET_NAME (sp));
+ pnt2 = parse_buffer + strlen(S_GET_NAME (sp)) - 1;
+ *pnt2 = '\0';
+ spnext = sp;
+ do {
+ spnext = symbol_next (spnext);
+ str = S_GET_NAME (spnext);
+ strcat (pnt2, S_GET_NAME (spnext));
+ pnt2 += strlen(str) - 1;
+ *str = '\0'; /* Erase this string */
+ if (*pnt2 != '?') break;
+ *pnt2 = '\0';
+ } while (1 == 1);
+ str = parse_buffer;
+ symbol_name = str;
+ };