summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-03-15 03:59:21 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-03-15 03:59:21 +0000
commitadaab8fc46791299983cdc7c942a7cb3411c7069 (patch)
tree70300ad0a1efb33d282bf3f8de3d0654268bd735
parente805cd0dfc05b4c33d8523ba1888e026cd9dcf33 (diff)
downloadATCD-adaab8fc46791299983cdc7c942a7cb3411c7069.tar.gz
ChangeLogTag: Fri Mar 14 21:50:10 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog14
-rw-r--r--TAO/TAO_IDL/driver/drv_init.cpp140
-rw-r--r--TAO/TAO_IDL/util/utl_global.cpp16
3 files changed, 24 insertions, 146 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 5039a9c5968..fc663a8fc6b 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,17 @@
+Fri Mar 14 21:50:10 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/util/utl_global.cpp:
+
+ Fixed improper clearing of a #pragma prefix directive,
+ thanks to Gary Duzan <gduzan@bbn.com> and Craig Rodrigues
+ <crodrigu@bbn.com> for sending in the example of included
+ IDL files that uncovered the bug.
+
+ * TAO_IDL/driver/drv_init.cpp:
+
+ Removed an unused file that was overlooked in a previous
+ checkin.
+
Fri Mar 14 16:55:00 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
* tao/PortableServer/PortableServerC.h:
diff --git a/TAO/TAO_IDL/driver/drv_init.cpp b/TAO/TAO_IDL/driver/drv_init.cpp
deleted file mode 100644
index bdf5c664eb2..00000000000
--- a/TAO/TAO_IDL/driver/drv_init.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-// $Id$
-
-/*
-
-COPYRIGHT
-
-Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
-States of America. All Rights Reserved.
-
-This product is protected by copyright and distributed under the following
-license restricting its use.
-
-The Interface Definition Language Compiler Front End (CFE) is made
-available for your use provided that you include this license and copyright
-notice on all media and documentation and the software program in which
-this product is incorporated in whole or part. You may copy and extend
-functionality (but may not remove functionality) of the Interface
-Definition Language CFE without charge, but you are not authorized to
-license or distribute it to anyone else except as part of a product or
-program developed by you or with the express written consent of Sun
-Microsystems, Inc. ("Sun").
-
-The names of Sun Microsystems, Inc. and any of its subsidiaries or
-affiliates may not be used in advertising or publicity pertaining to
-distribution of Interface Definition Language CFE as permitted herein.
-
-This license is effective until terminated by Sun for failure to comply
-with this license. Upon termination, you shall destroy or return all code
-and documentation for the Interface Definition Language CFE.
-
-INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
-ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
-FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
-DEALING, USAGE OR TRADE PRACTICE.
-
-INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
-ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
-TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
-
-SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
-RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
-INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
-
-IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
-ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
-DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-Use, duplication, or disclosure by the government is subject to
-restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
-Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
-52.227-19.
-
-Sun, Sun Microsystems and the Sun logo are trademarks or registered
-trademarks of Sun Microsystems, Inc.
-
-SunSoft, Inc.
-2550 Garcia Avenue
-Mountain View, California 94043
-
-NOTE:
-
-SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
-trademarks or registered trademarks of Sun Microsystems, Inc.
-
-*/
-
-// Initialization for IDL compiler driver program
-
-#include "idl.h"
-#include "idl_extern.h"
-#include "drv_private.h"
-#include "be.h"
-
-ACE_RCSID(driver, drv_init, "$Id$")
-
-const size_t LOCAL_ESCAPES_BUFFER_SIZE = 1024;
-
-void
-DRV_init (void)
-{
- // Initialize FE global data object.
- ACE_NEW (idl_global,
- IDL_GlobalData);
-
- // Initialize some of its data.
- idl_global->set_scopes (0);
- idl_global->set_root (0);
- idl_global->set_gen (0);
- idl_global->set_err (FE_new_UTL_Error ());
- idl_global->set_err_count (0);
- idl_global->set_indent (FE_new_UTL_Indenter ());
- idl_global->set_filename (0);
- idl_global->set_main_filename (0);
- idl_global->set_real_filename (0);
- idl_global->set_stripped_filename (0);
- idl_global->set_import (I_TRUE);
- idl_global->set_in_main_file (I_FALSE);
- idl_global->set_lineno (-1);
- idl_global->set_prog_name (0);
-
-#if defined (TAO_IDL_PREPROCESSOR)
- idl_global->set_cpp_location (TAO_IDL_PREPROCESSOR);
-#elif defined (ACE_CC_PREPROCESSOR)
- idl_global->set_cpp_location (ACE_CC_PREPROCESSOR);
-#else
-# if defined (ACE_WIN32)
- // Without this, if we get here, tao_idl will hang.
- ACE_ERROR ((LM_ERROR,
- "No valid path to preprocessor\n"));
- exit (0);
-# endif /* ACE_WIN32 */
- // Just default to cc
- idl_global->set_cpp_location ("cc");
-#endif /* TAO_IDL_PREPROCESSOR */
-
- char local_escapes[LOCAL_ESCAPES_BUFFER_SIZE];
- ACE_OS::memset (&local_escapes,
- 0,
- LOCAL_ESCAPES_BUFFER_SIZE);
-
- idl_global->set_local_escapes (local_escapes);
- idl_global->set_be ("");
- idl_global->set_compile_flags (0);
- idl_global->set_read_from_stdin (I_FALSE);
- idl_global->set_include_file_names (0);
- idl_global->set_n_include_file_names (0);
- idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
-
- // Put an empty prefix on the stack for the global scope.
- idl_global->pragma_prefixes ().push (ACE::strnew (""));
-
- // Initialize BE global data object.
- ACE_NEW (be_global,
- BE_GlobalData);
-
- // Initialize driver private data
- DRV_nfiles = 0;
- DRV_file_index = 0;
-}
-
diff --git a/TAO/TAO_IDL/util/utl_global.cpp b/TAO/TAO_IDL/util/utl_global.cpp
index c51508ded00..db7c1c54676 100644
--- a/TAO/TAO_IDL/util/utl_global.cpp
+++ b/TAO/TAO_IDL/util/utl_global.cpp
@@ -473,11 +473,15 @@ IDL_GlobalData::seen_include_file_before (char *n)
char *incl = 0;
char *tmp = n;
+ // @@@ (JP) This may have been here for the SunCC preprocessor. If
+ // that turns out to be the case, I can easily re-add this code
+ // conditionally.
+/*
if (n[0] == '.')
{
tmp = n + 2;
}
-
+*/
for (i = 0; i < this->pd_n_include_file_names; ++i)
{
incl = this->pd_include_file_names[i]->get_string ();
@@ -1032,12 +1036,14 @@ IDL_GlobalData::update_prefix (char *filename)
}
char *fstring = this->pd_filename->get_string ();
+ char *tail = fstring + ACE_OS::strlen (fstring) - 3;
// We have to do this check because some preprocessors (gcc 3.2
// on RedHat Linux 7.1, for one) output the same filename
// multiple times for no apparent reason, and we don't want it
// to clear the prefix.
- if (ACE_OS::strcmp (fstring, filename) == 0)
+ if (ACE_OS::strcmp (fstring, filename) == 0
+ || ACE_OS::strcmp (tail, ".cc") == 0)
{
return;
}
@@ -1055,10 +1061,8 @@ IDL_GlobalData::update_prefix (char *filename)
// main filename. Otherwise we know we are beginning an included
// file, so we push a blank prefix on the stack, which may
// possibly be changed later.
- if (ACE_OS::strcmp (fstring, main_filename) != 0
- && this->pragma_prefixes_.size () > 1
- && (this->seen_include_file_before (filename) == 1
- || ACE_OS::strcmp (filename, main_filename) == 0))
+ if (this->seen_include_file_before (filename) != 0
+ || ACE_OS::strcmp (filename, main_filename) == 0)
{
char *trash = 0;
this->pragma_prefixes_.pop (trash);