/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* * $Id: Xlat.hpp 470094 2006-11-01 20:41:30Z amassari $ */ // --------------------------------------------------------------------------- // Some globally used types // --------------------------------------------------------------------------- enum MsgTypes { MsgType_Warning , MsgType_Error , MsgType_FatalError , MsgTypes_Count }; // --------------------------------------------------------------------------- // Includes // --------------------------------------------------------------------------- #include #include #include #include #include #include #include #include #include #include "Xlat_ErrHandler.hpp" #include "Xlat_Types.hpp" #include "Xlat_Formatter.hpp" #include "Xlat_CppSrc.hpp" #include "Xlat_Win32RC.hpp" #include "Xlat_MsgCatalog.hpp" #include "Xlat_ICUResourceBundle.hpp" XERCES_CPP_NAMESPACE_USE // --------------------------------------------------------------------------- // Some const global data // --------------------------------------------------------------------------- extern XMLCh* typePrefixes[MsgTypes_Count]; // this ugly hack is needed because cygwin/linux and Windows (MSVC++) // have irreconcileable differences about what to do with chars, wchar_t and XMLCh // in wfprintf. Windows thinks that XMLCh * is fine here whereas // char * is not; gcc will allow XMLCh to be cast to wchar_t but happily // prints out gobbledygook in this case; it only seems happy when // the native transcoder is used to convert the XMLCh to a char * #if defined(__linux__) || defined(__CYGWIN__) extern char *fTmpStr; #define xmlStrToPrintable(xmlStr) \ (fTmpStr = XMLString::transcode(xmlStr)) #define releasePrintableStr \ XMLString::release(&fTmpStr); #define longChars(str) str #elif defined(_WIN32) || defined(WIN32) || defined(__WINDOWS__) extern wchar_t *longChars(const char *str); #define xmlStrToPrintable(xmlStr) xmlStr #define releasePrintableStr #else #error Code requires port to host OS! #endif