You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by kn...@apache.org on 2002/05/09 21:05:19 UTC

cvs commit: xml-xerces/c/src/xercesc/util/Transcoders/Iconv400 Iconv400TransService.hpp Iconv400TransService.cpp

knoaman     02/05/09 12:05:19

  Modified:    c/src/xercesc/util/Transcoders/Iconv400
                        Iconv400TransService.hpp Iconv400TransService.cpp
  Log:
  String lower case support for AS/400 by Jay Hansen.
  
  Revision  Changes    Path
  1.3       +8 -4      xml-xerces/c/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp
  
  Index: Iconv400TransService.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Iconv400TransService.hpp	9 Apr 2002 15:44:00 -0000	1.2
  +++ Iconv400TransService.hpp	9 May 2002 19:05:19 -0000	1.3
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
  - * 
  - * Copyright (c) 1999-2000 The Apache Software Foundation.  All rights
  + *
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
    * reserved.
    * 
    * Redistribution and use in source and binary forms, with or without
  @@ -55,7 +55,8 @@
    */
   
   /**
  - * $Id: Iconv400TransService.hpp,v 1.2 2002/04/09 15:44:00 knoaman Exp $
  + * @02A           V5R2M0    200419   jrhansen : support lowercase function
  + * $Id: Iconv400TransService.hpp,v 1.3 2002/05/09 19:05:19 knoaman Exp $
    */
   
   #ifndef ICONV400TRANSSERVICE_HPP
  @@ -130,7 +131,10 @@
       void operator=(const Iconv400TransService&);
   
       XMLCh toUnicodeUpper(XMLCh toupper) const;
  -    Qlg_CCSID_ReqCtlBlk_T convertCtlblk; 
  +    XMLCh toUnicodeLower(XMLCh tolower) const;
  +
  +    Qlg_CCSID_ReqCtlBlk_T convertCtlblkUpper;
  +    Qlg_CCSID_ReqCtlBlk_T convertCtlblkLower;
   
   };
   
  
  
  
  1.3       +43 -9     xml-xerces/c/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp
  
  Index: Iconv400TransService.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Transcoders/Iconv400/Iconv400TransService.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Iconv400TransService.cpp	9 Apr 2002 15:44:00 -0000	1.2
  +++ Iconv400TransService.cpp	9 May 2002 19:05:19 -0000	1.3
  @@ -1,7 +1,7 @@
   /*
    * The Apache Software License, Version 1.1
    * 
  - * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
  + * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
    * reserved.
    * 
    * Redistribution and use in source and binary forms, with or without
  @@ -56,7 +56,8 @@
   
   /**
    * @01A D998714.1 V5R2M0    100301   Swan    :Fix error return flags
  - * $Id: Iconv400TransService.cpp,v 1.2 2002/04/09 15:44:00 knoaman Exp $
  + * @02A           V5R2M0    200419   jrhansen : support lowercase function
  + * $Id: Iconv400TransService.cpp,v 1.3 2002/05/09 19:05:19 knoaman Exp $
    */
   
   // ---------------------------------------------------------------------------
  @@ -110,10 +111,15 @@
   // ---------------------------------------------------------------------------
   Iconv400TransService::Iconv400TransService()
   {
  -    memset((char*)&convertCtlblk,'\0',sizeof(convertCtlblk));
  -    convertCtlblk.Type_of_Request = 1;
  -    convertCtlblk.Case_Request = 0;
  -    convertCtlblk.CCSID_of_Input_Data = 13488;
  +    memset((char*)&convertCtlblkUpper,'\0',sizeof(convertCtlblkUpper));
  +    convertCtlblkUpper.Type_of_Request = 1;
  +    convertCtlblkUpper.Case_Request = 0;   // upper case
  +    convertCtlblkUpper.CCSID_of_Input_Data = 13488;
  +
  +    memset((char*)&convertCtlblkLower,'\0',sizeof(convertCtlblkLower));
  +    convertCtlblkLower.Type_of_Request = 1;
  +    convertCtlblkLower.Case_Request = 1;
  +    convertCtlblkLower.CCSID_of_Input_Data = 13488;
   }
   
   Iconv400TransService::~Iconv400TransService()
  @@ -247,13 +253,40 @@
   
   void Iconv400TransService::lowerCase(XMLCh* const toLowerCase) const
   {
  -    //TO DO
  +    XMLCh* outPtr = toLowerCase;
  +    while (*outPtr)
  +    {
  +        *outPtr = toUnicodeLower(*outPtr);
  +        outPtr++;
  +    }
   }
   
   // ---------------------------------------------------------------------------
   //  Iconv400TransService: The virtual transcoding service API
   // ---------------------------------------------------------------------------
  -XMLCh Iconv400TransService::toUnicodeUpper(XMLCh comp1) const
  +XMLCh Iconv400TransService::toUnicodeUpper(XMLCh comp1) const  
  +{
  +    XMLCh chRet;
  +    struct {
  +             int bytes_available;
  +             int bytes_used;
  +             char exception_id[7];
  +             char reserved;
  +             char exception_data[15];
  +            } error_code;
  +     error_code.bytes_available = sizeof(error_code);
  + 
  +    long charlen =2;
  +
  +    QlgConvertCase((char*)&convertCtlblkUpper,
  +                       (char*)&comp1,
  +                       (char*)&chRet,
  +                       (long*)&charlen,
  +                       (char*)&error_code);
  +    return chRet;
  +}
  +
  +XMLCh Iconv400TransService::toUnicodeLower(XMLCh comp1) const
   {
       XMLCh chRet;
       struct {
  @@ -266,7 +299,8 @@
        error_code.bytes_available = sizeof(error_code);
    
       long charlen =2;
  -    QlgConvertCase((char*)&convertCtlblk,
  +
  +    QlgConvertCase((char*)&convertCtlblkLower,
                          (char*)&comp1,
                          (char*)&chRet,
                          (long*)&charlen,
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org