From adaab8fc46791299983cdc7c942a7cb3411c7069 Mon Sep 17 00:00:00 2001 From: parsons Date: Sat, 15 Mar 2003 03:59:21 +0000 Subject: ChangeLogTag: Fri Mar 14 21:50:10 2003 Jeff Parsons --- TAO/ChangeLog | 14 ++++ TAO/TAO_IDL/driver/drv_init.cpp | 140 ---------------------------------------- TAO/TAO_IDL/util/utl_global.cpp | 16 +++-- 3 files changed, 24 insertions(+), 146 deletions(-) delete mode 100644 TAO/TAO_IDL/driver/drv_init.cpp 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 + + * TAO_IDL/util/utl_global.cpp: + + Fixed improper clearing of a #pragma prefix directive, + thanks to Gary Duzan and Craig Rodrigues + 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 * 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); -- cgit v1.2.1