Bug Report no. 35 |
Reported ByGary Duzan Date16 Oct 1998 PlatformsAIX and HPUX VersionomniORB 2.6.0 (Fixed in 2.6.1) DescriptionWhen the IDL is such that the output from the preprocessor contains the directive #line <line no>, the rest of the IDL file got parsed wrongly. PatchThis patch to omniidl2 fixes the problem (and in a separate text file):
*** omniORB_2.6.0/src/tool/omniidl2/fe/lex.yy.cc Thu Oct 8 12:17:00 1998 --- omniORB_2.6.0_NEW/src/tool/omniidl2/fe/lex.yy.cc Tue Oct 20 14:42:12 1998 *************** *** 2376,2383 **** for (r++; *r == ' ' || *r == '\t'; r++); h = r; for (; *r != '\0' && *r != ' ' && *r != '\t'; r++); ! *r++ = 0; idl_global->set_lineno(idl_atoi(h, 10)); /* Find file name, if present */ for (; *r != '"'; r++) { --- 2376,2389 ---- for (r++; *r == ' ' || *r == '\t'; r++); h = r; for (; *r != '\0' && *r != ' ' && *r != '\t'; r++); ! if (*r != '\0') { ! *r++ = 0; ! } idl_global->set_lineno(idl_atoi(h, 10)); + + if (*r == '\0') { + return; + } /* Find file name, if present */ for (; *r != '"'; r++) { *************** *** 2451,2458 **** h = r; for (; *r != '\0' && *r != ' ' && *r != '\t'; r++); ! *r++ = 0; idl_global->set_lineno(idl_atoi(h, 10)); /* Find file name, if present */ for (; *r != '"'; r++) { --- 2457,2471 ---- h = r; for (; *r != '\0' && *r != ' ' && *r != '\t'; r++); ! if (*r != '\0') { ! *r++ = 0; ! } idl_global->set_lineno(idl_atoi(h, 10)); + + if (*r == '\0') { + return; + } + /* Find file name, if present */ for (; *r != '"'; r++) { Action |
|
For comments, feedback, etc, please see the 'Keeping in touch' page. |