summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/fe/idl.ll
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/fe/idl.ll')
-rw-r--r--TAO/TAO_IDL/fe/idl.ll18
1 files changed, 18 insertions, 0 deletions
diff --git a/TAO/TAO_IDL/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll
index 9f788d54443..34b2c5eafc2 100644
--- a/TAO/TAO_IDL/fe/idl.ll
+++ b/TAO/TAO_IDL/fe/idl.ll
@@ -456,6 +456,13 @@ idl_parse_line_and_file (char *buf)
}
h[i] = '\0';
+#if defined (ACE_OPENVMS)
+ // translate this into *nix format as the OpenVMS preprocessor
+ // possibly produced VMS-style paths here.
+ char trans_path[MAXPATHLEN] = "";
+ char *temp_h = IDL_GlobalData::translateName (h, trans_path);
+ if (temp_h) h = temp_h;
+#endif
ACE_NEW (tmp,
UTL_String (h));
idl_global->update_prefix (tmp->get_string ());
@@ -469,7 +476,18 @@ idl_parse_line_and_file (char *buf)
if (!is_real_filename)
{
+#if defined (ACE_OPENVMS)
+ char full_path[MAXPATHLEN] = "";
+ char *full_fname = ACE_OS::realpath (fname->get_string (), full_path);
+ // I don't see the benefit of using ->compare since this is targeted at IDL identifiers
+ // not at filenames and in the case of OpenVMS (case-insensitive filesystem) gets really
+ // problematic as filenames retrieved through different mechanisms may give different
+ // casing.
+ is_main_filename = idl_global->path_cmp (idl_global->main_filename ()->get_string (),
+ full_fname) == 0;
+#else
is_main_filename = fname->compare (idl_global->main_filename ());
+#endif
}
if (is_real_filename || is_main_filename)