ORBit2-2.12.4 bugs detected

Thomas Koch <[email protected]>
Newsgroups gmane.comp.gnome.orbit.general
Organization Motorola Semiconductor Products Sector
Message-ID <[email protected]>
Hi,

I tried to compile ORBit2-2.12.4 with the SunWSpro compiler on Solaris 
and encountered some problems:

    * The function 'ch_output_codefrag' look for '#pragma include_defs'.
      If the white space between the pragma and include_defs is a TAB,
      the routine fails. Due to this fact the build of
      'test/inhibit/baa.c' fails. The file baa.idl contains a TAB after
      the pragma statement. Here is the updated code for the routine:

    static void
    ch_output_codefrag(IDL_tree tree, OIDL_Run_Info *rinfo, OIDL_C_Info *ci)
    {
      GSList *list;
      static gboolean is_processed;

      for(list = IDL_CODEFRAG(tree).lines; list;
          list = g_slist_next(list)) {

        is_processed = FALSE;
        if(strncmp((char *)list->data,
                    "#pragma",
                    (size_t)sizeof("#pragma")-1) == 0)
        {
            char *ctmp, *cte;

            /*
               Skip #pragma and search for 'include_defs' after any amount
                of white-spaces (blank, or tab) that may come after this.
             */
            ctmp = ((char *)list->data) + sizeof("#pragma");
            while(*ctmp && isspace((int)*ctmp)) ctmp++;

            /*
               After skipping any white-space, we better check for the
    second
                part of the string before continuing
             */
            if(strncmp(ctmp,
                       "include_defs",
                       (size_t)sizeof("include_defs")-1) == 0)
            {
               ctmp = ctmp + sizeof("include_defs");
               while(*ctmp && (isspace((int)*ctmp) || *ctmp == '"')) ctmp++;

               cte = ctmp;
               while(*cte && !isspace((int)*cte) && *cte != '"') cte++;
               *cte = '\0';
               fprintf(ci->fh, "#include <%s>\n", ctmp);
               is_processed = TRUE;
            }
        }
        if (!is_processed)
        {
          fprintf(ci->fh, "%s\n", (char *)list->data);
        }
      }
    }

    * The line feed character leads to 'warning: invalid white space
      character in directive' messages while processing the following lines:
          o src/idl/interop/GIOP.idl
          o src/idl/interop/conv_frame.idl
          o src/idl/interop/CSI.idl
          o src/idl/interop/IOP.idl
          o src/idl/interop/IOP_DCE.idl
          o src/idl/interop/GSSUP.idl
          o src/idl/interop/orbit-specific.idl
          o src/idl/interop/IIOP.idl
          o src/idl/interop/SendingContext.idl
          o src/idl/interop/BiDirPolicy.idl
          o src/idl/interop/CSIIOP.idl
          o src/idl/CORBA_PIDL/CORBA_Interceptor.idl
          o src/idl/CORBA_PIDL/CRBA_Context.idl
          o src/idl/CORBA_PIDL/CORBA_ORB.idl
          o src/idl/CORBA_PIDL/CORBA_Object.idl
          o src/idl/CORBA_PIDL/CORBA_NVList.idl
          o src/idl/CORBA_PIDL/CORBA_ValueBase.idl
          o src/idl/CORBA_PIDL/pseudo_orb.idl
          o src/idl/CORBA_PIDL/CORBA_ServerRequest.idl
          o src/idl/CORBA_PIDL/CORBA_ORB_init.idl
          o src/idl/CORBA_PIDL/CORBA_Request.idl
          o src/idl/CORBA/CORBA_Pollable.idl
          o src/idl/CORBA/CORBA_CustomMarshal.idl
          o src/idl/CORBA/CORBA_Stream.idl
          o src/idl/CORBA/CORBA_InterfaceRepository.idl
          o src/idl/CORBA/CORBA_DomainManager.idl
          o src/idl/CORBA/CORBA_StandardExceptions.idl
          o src/idl/CORBA/CORBA_Policy.idl
          o src/idl/CORBA/orb.idl
          o src/idl/CORBA/CORBA_TypeCode.idl
          o src/idl/CORBA/CORBA_Current.idl
          o src/idl/misc/PortableServer.idl
          o src/idl/misc/DynamicAny.idl

Regards,
Thomas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.