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