/*
*******************************************************************************
- * Copyright (C) 2003-2007, International Business Machines
+ * Copyright (C) 2003-2014, International Business Machines
* Corporation and others. All Rights Reserved.
*******************************************************************************
*
*******************************************************************************
*/
+// Safer use of UnicodeString.
+#ifndef UNISTR_FROM_CHAR_EXPLICIT
+# define UNISTR_FROM_CHAR_EXPLICIT explicit
+#endif
+
+// Less important, but still a good idea.
+#ifndef UNISTR_FROM_STRING_EXPLICIT
+# define UNISTR_FROM_STRING_EXPLICIT explicit
+#endif
+
#include "unicode/regex.h"
#include "unicode/unistr.h"
#include "unicode/parseerr.h"
}
U_CFUNC int32_t
trim(UChar *src, int32_t srcLen, UErrorCode *status){
- srcLen = removeText(src, srcLen, "^[ \\r\\n]+ ", 0, "", status); // remove leading new lines
- srcLen = removeText(src, srcLen, "^\\s+", 0, "", status); // remove leading spaces
- srcLen = removeText(src, srcLen, "\\s+$", 0, "", status); // remvoe trailing spcaes
+ srcLen = removeText(src, srcLen, UnicodeString("^[ \\r\\n]+ "), 0, UnicodeString(), status); // remove leading new lines
+ srcLen = removeText(src, srcLen, UnicodeString("^\\s+"), 0, UnicodeString(), status); // remove leading spaces
+ srcLen = removeText(src, srcLen, UnicodeString("\\s+$"), 0, UnicodeString(), status); // remvoe trailing spcaes
return srcLen;
}
U_CFUNC int32_t
removeCmtText(UChar* source, int32_t srcLen, UErrorCode* status){
srcLen = trim(source, srcLen, status);
- UnicodeString patString = "^\\s*?\\*\\s*?"; // remove pattern like " * " at the begining of the line
- srcLen = removeText(source, srcLen, patString, UREGEX_MULTILINE, "", status);
- return removeText(source, srcLen, "[ \\r\\n]+", 0, " ", status);// remove new lines;
+ UnicodeString patString("^\\s*?\\*\\s*?"); // remove pattern like " * " at the begining of the line
+ srcLen = removeText(source, srcLen, patString, UREGEX_MULTILINE, UnicodeString(), status);
+ return removeText(source, srcLen, UnicodeString("[ \\r\\n]+"), 0, UnicodeString(" "), status);// remove new lines;
}
U_CFUNC int32_t
}
UnicodeString stringArray[MAX_SPLIT_STRINGS];
- RegexPattern *pattern = RegexPattern::compile("@", 0, *status);
+ RegexPattern *pattern = RegexPattern::compile(UnicodeString("@"), 0, *status);
UnicodeString src (source,srcLen);
if (U_FAILURE(*status)) {
}
UnicodeString stringArray[MAX_SPLIT_STRINGS];
- RegexPattern *pattern = RegexPattern::compile("@", UREGEX_MULTILINE, *status);
+ RegexPattern *pattern = RegexPattern::compile(UnicodeString("@"), UREGEX_MULTILINE, *status);
UnicodeString src(source, srcLen);
if (U_FAILURE(*status)) {
}
UnicodeString stringArray[MAX_SPLIT_STRINGS];
- RegexPattern *pattern = RegexPattern::compile("@", UREGEX_MULTILINE, *status);
+ RegexPattern *pattern = RegexPattern::compile(UnicodeString("@"), UREGEX_MULTILINE, *status);
UnicodeString src (source, srcLen);
}
int32_t retLen = pattern->split(src, stringArray, MAX_SPLIT_STRINGS, *status);
- RegexMatcher matcher(patternStrings[option], UREGEX_DOTALL, *status);
+ RegexMatcher matcher(UnicodeString(patternStrings[option]), UREGEX_DOTALL, *status);
if (U_FAILURE(*status)) {
return 0;
}
}
UnicodeString stringArray[MAX_SPLIT_STRINGS];
- RegexPattern *pattern = RegexPattern::compile("@", UREGEX_MULTILINE, *status);
+ RegexPattern *pattern = RegexPattern::compile(UnicodeString("@"), UREGEX_MULTILINE, *status);
UnicodeString src (source, srcLen);
}
int32_t retLen = pattern->split(src, stringArray, MAX_SPLIT_STRINGS, *status);
- RegexMatcher matcher(patternStrings[option], UREGEX_DOTALL, *status);
+ RegexMatcher matcher(UnicodeString(patternStrings[option]), UREGEX_DOTALL, *status);
if (U_FAILURE(*status)) {
return 0;
}
getTranslate( const UChar* source, int32_t srcLen,
UChar** dest, int32_t destCapacity,
UErrorCode* status){
- UnicodeString notePatternString = "^translate\\s*?(.*)";
+ UnicodeString notePatternString("^translate\\s*?(.*)");
int32_t destLen = getText(source, srcLen, dest, destCapacity, notePatternString, status);
return trim(*dest, destLen, status);
UChar** dest, int32_t destCapacity,
UErrorCode* status){
- UnicodeString notePatternString = "^note\\s*?(.*)";
+ UnicodeString notePatternString("^note\\s*?(.*)");
int32_t destLen = getText(source, srcLen, dest, destCapacity, notePatternString, status);
return trim(*dest, destLen, status);
/*
*******************************************************************************
*
-* Copyright (C) 2002-2012, International Business Machines
+* Copyright (C) 2002-2014, International Business Machines
* Corporation and others. All Rights Reserved.
*
*******************************************************************************
*
*******************************************************************************
*/
+
+// Safer use of UnicodeString.
+#ifndef UNISTR_FROM_CHAR_EXPLICIT
+# define UNISTR_FROM_CHAR_EXPLICIT explicit
+#endif
+
+// Less important, but still a good idea.
+#ifndef UNISTR_FROM_STRING_EXPLICIT
+# define UNISTR_FROM_STRING_EXPLICIT explicit
+#endif
+
#include "reslist.h"
#include "unewdata.h"
#include "unicode/ures.h"
*status = U_FILE_ACCESS_ERROR;
goto cleanup_bundle_write_xml;
}
- write_utf8_file(out, xmlHeader);
+ write_utf8_file(out, UnicodeString(xmlHeader));
if(outputEnc && *outputEnc!='\0'){
/* store the output encoding */
goto cleanup_bundle_write_xml;
}
}
- write_utf8_file(out, bundleStart);
+ write_utf8_file(out, UnicodeString(bundleStart));
write_tabs(out);
- write_utf8_file(out, fileStart);
+ write_utf8_file(out, UnicodeString(fileStart));
/* check if lang and language are the same */
if(language != NULL && uprv_strcmp(lang, srBundle->fLocale)!=0){
fprintf(stderr,"Warning: The top level tag in the resource and language specified are not the same. Please check the input.\n");
tabCount += 1;
write_tabs(out);
- write_utf8_file(out, headerStart);
+ write_utf8_file(out, UnicodeString(headerStart));
tabCount += 1;
write_tabs(out);
- write_utf8_file(out, tool_start);
+ write_utf8_file(out, UnicodeString(tool_start));
printAttribute("tool-id", tool_id, (int32_t) uprv_strlen(tool_id));
printAttribute("tool-name", tool_name, (int32_t) uprv_strlen(tool_name));
write_utf8_file(out, UnicodeString("/>\n"));