carnold 2005/02/15 14:39:22
Modified: include/log4cxx logstring.h
src htmllayout.cpp patternparser.cpp
propertyconfigurator.cpp simplelayout.cpp
stringhelper.cpp ttcclayout.cpp xmllayout.cpp
tests/src filetestcase.cpp
tests/src/util compare.cpp
Log:
LOGCXX-63: Platform appropriate end of line sequences
Revision Changes Path
1.2 +9 -0 logging-log4cxx/include/log4cxx/logstring.h
Index: logstring.h
===================================================================
RCS file: /home/cvs/logging-log4cxx/include/log4cxx/logstring.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- logstring.h 12 Dec 2004 05:53:57 -0000 1.1
+++ logstring.h 15 Feb 2005 22:39:22 -0000 1.2
@@ -44,4 +44,13 @@
#define LOG4CXX_STR(str) str
#endif
+#if !defined(LOG4CXX_EOL)
+#if defined(_WIN32)
+#define LOG4CXX_EOL LOG4CXX_STR("\x0D\x0A")
+#else
+#define LOG4CXX_EOL LOG4CXX_STR("\x0A")
+#endif
+#endif
+
+
#endif //_LOG4CXX_STRING_H
1.19 +35 -35 logging-log4cxx/src/htmllayout.cpp
Index: htmllayout.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/src/htmllayout.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- htmllayout.cpp 13 Feb 2005 05:55:01 -0000 1.18
+++ htmllayout.cpp 15 Feb 2005 22:39:22 -0000 1.19
@@ -63,19 +63,19 @@
const spi::LoggingEventPtr& event,
Pool& pool) const
{
- output.append(LOG4CXX_STR("\n<tr>\n<td>"));
+ output.append(LOG4CXX_EOL LOG4CXX_STR("<tr>") LOG4CXX_EOL
LOG4CXX_STR("<td>"));
dateFormat.format(output, event->getTimeStamp(), pool);
- output.append(LOG4CXX_STR("</td>\n"));
+ output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
output.append(LOG4CXX_STR("<td title=\""));
LogString threadName(event->getThreadName());
output.append(threadName);
output.append(LOG4CXX_STR(" thread\">"));
output.append(threadName);
- output.append(LOG4CXX_STR("</td>\n"));
+ output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
output.append(LOG4CXX_STR("<td title=\"Level\">"));
if (event->getLevel()->equals(Level::getDebug()))
@@ -95,13 +95,13 @@
output.append(event->getLevel()->toString());
}
- output.append(LOG4CXX_STR("</td>\n"));
+ output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
output.append(LOG4CXX_STR("<td title=\""));
output.append(event->getLoggerName());
output.append(LOG4CXX_STR(" category\">"));
Transform::appendEscapingTags(output, event->getLoggerName());
- output.append(LOG4CXX_STR("</td>\n"));
+ output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
if(locationInfo)
{
@@ -115,13 +115,13 @@
{
output.append(StringHelper::toString(line, pool));
}
- output.append(LOG4CXX_STR("</td>\n"));
+ output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
}
output.append(LOG4CXX_STR("<td title=\"Message\">"));
Transform::appendEscapingTags(output, event->getRenderedMessage());
- output.append(LOG4CXX_STR("</td>\n"));
- output.append(LOG4CXX_STR("</tr>\n"));
+ output.append(LOG4CXX_STR("</td>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</tr>") LOG4CXX_EOL);
if (event->getNDC().length() != 0)
{
@@ -130,7 +130,7 @@
output.append(LOG4CXX_STR("title=\"Nested Diagnostic
Context\">"));
output.append(LOG4CXX_STR("NDC: "));
Transform::appendEscapingTags(output, event->getNDC());
- output.append(LOG4CXX_STR("</td></tr>\n"));
+ output.append(LOG4CXX_STR("</td></tr>") LOG4CXX_EOL);
}
}
@@ -138,44 +138,44 @@
{
output.append(LOG4CXX_STR("<!DOCTYPE HTML PUBLIC "));
output.append(LOG4CXX_STR("\"-//W3C//DTD HTML 4.01
Transitional//EN\" "));
-
output.append(LOG4CXX_STR("\"http://www.w3.org/TR/html4/loose.dtd\">\n"));
- output.append(LOG4CXX_STR("<html>\n"));
- output.append(LOG4CXX_STR("<head>\n"));
+
output.append(LOG4CXX_STR("\"http://www.w3.org/TR/html4/loose.dtd\">")
LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<html>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<head>") LOG4CXX_EOL);
output.append(LOG4CXX_STR("<title>"));
output.append(title);
- output.append(LOG4CXX_STR("</title>\n"));
- output.append(LOG4CXX_STR("<style type=\"text/css\">\n"));
- output.append(LOG4CXX_STR("<!--\n"));
- output.append(LOG4CXX_STR("body, table {font-family:
arial,sans-serif; font-size: x-small;}\n"));
- output.append(LOG4CXX_STR("th {background: #336699; color: #FFFFFF;
text-align: left;}\n"));
- output.append(LOG4CXX_STR("-->\n"));
- output.append(LOG4CXX_STR("</style>\n"));
- output.append(LOG4CXX_STR("</head>\n"));
- output.append(LOG4CXX_STR("<body bgcolor=\"#FFFFFF\" topmargin=\"6\"
leftmargin=\"6\">\n"));
- output.append(LOG4CXX_STR("<hr size=\"1\" noshade>\n"));
+ output.append(LOG4CXX_STR("</title>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<style type=\"text/css\">") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<!--") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("body, table {font-family:
arial,sans-serif; font-size: x-small;}") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("th {background: #336699; color: #FFFFFF;
text-align: left;}") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("-->") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</style>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</head>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<body bgcolor=\"#FFFFFF\" topmargin=\"6\"
leftmargin=\"6\">") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<hr size=\"1\" noshade>") LOG4CXX_EOL);
output.append(LOG4CXX_STR("Log session start time "));
dateFormat.format(output, apr_time_now(), pool);
- output.append(LOG4CXX_STR("<br>\n"));
- output.append(LOG4CXX_STR("<br>\n"));
- output.append(LOG4CXX_STR("<table cellspacing=\"0\"
cellpadding=\"4\" border=\"1\" bordercolor=\"#224466\" width=\"100%\">\n"));
- output.append(LOG4CXX_STR("<tr>\n"));
- output.append(LOG4CXX_STR("<th>Time</th>\n"));
- output.append(LOG4CXX_STR("<th>Thread</th>\n"));
- output.append(LOG4CXX_STR("<th>Level</th>\n"));
- output.append(LOG4CXX_STR("<th>Category</th>\n"));
+ output.append(LOG4CXX_STR("<br>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<br>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<table cellspacing=\"0\"
cellpadding=\"4\" border=\"1\" bordercolor=\"#224466\" width=\"100%\">")
LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<tr>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>Time</th>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>Thread</th>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>Level</th>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<th>Category</th>") LOG4CXX_EOL);
if(locationInfo)
{
- output.append(LOG4CXX_STR("<th>File:Line</th>\n"));
+ output.append(LOG4CXX_STR("<th>File:Line</th>") LOG4CXX_EOL);
}
- output.append(LOG4CXX_STR("<th>Message</th>\n"));
- output.append(LOG4CXX_STR("</tr>\n"));
+ output.append(LOG4CXX_STR("<th>Message</th>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("</tr>") LOG4CXX_EOL);
}
void HTMLLayout::appendFooter(LogString& output, Pool& pool)
{
- output.append(LOG4CXX_STR("</table>\n"));
- output.append(LOG4CXX_STR("<br>\n"));
+ output.append(LOG4CXX_STR("</table>") LOG4CXX_EOL);
+ output.append(LOG4CXX_STR("<br>") LOG4CXX_EOL);
output.append(LOG4CXX_STR("</body></html>"));
}
1.27 +5 -1 logging-log4cxx/src/patternparser.cpp
Index: patternparser.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/src/patternparser.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -r1.26 -r1.27
--- patternparser.cpp 13 Feb 2005 05:55:01 -0000 1.26
+++ patternparser.cpp 15 Feb 2005 22:39:22 -0000 1.27
@@ -145,7 +145,11 @@
i++; // move pointer
break;
case LOG4CXX_STR('n'):
+#if defined(_WIN32)
+
currentLiteral.append(LOG4CXX_STR("\x0D\x0A"));
+#else
currentLiteral.append(1,
LOG4CXX_STR('\x0A'));
+#endif
i++; // move pointer
break;
default:
@@ -211,7 +215,7 @@
Pool p;
LogLog::error(((LogString)
LOG4CXX_STR("Error occured in position "))
+ StringHelper::toString(i,
p)
- + LOG4CXX_STR(".\n Was
expecting digit, instead got char \"")
+ + LOG4CXX_STR(".")
LOG4CXX_EOL LOG4CXX_STR(" Was expecting digit, instead got char \"")
+ LogString(1, c)
+ LOG4CXX_STR("\"."));
state = LITERAL_STATE;
1.18 +1 -1 logging-log4cxx/src/propertyconfigurator.cpp
Index: propertyconfigurator.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/src/propertyconfigurator.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- propertyconfigurator.cpp 2 Jan 2005 05:40:05 -0000 1.17
+++ propertyconfigurator.cpp 15 Feb 2005 22:39:22 -0000 1.18
@@ -337,7 +337,7 @@
continue;
}
- LogLog::debug(((LogString) LOG4CXX_STR("Parsing appender
named \n"))
+ LogLog::debug(((LogString) LOG4CXX_STR("Parsing appender
named ") LOG4CXX_EOL)
+ appenderName + LOG4CXX_STR("\"."));
appender = parseAppender(props, appenderName);
1.10 +1 -1 logging-log4cxx/src/simplelayout.cpp
Index: simplelayout.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/src/simplelayout.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- simplelayout.cpp 26 Dec 2004 07:31:53 -0000 1.9
+++ simplelayout.cpp 15 Feb 2005 22:39:22 -0000 1.10
@@ -32,5 +32,5 @@
output.append(event->getLevel()->toString());
output.append(LOG4CXX_STR(" - "));
output.append(event->getRenderedMessage());
- output.append(LOG4CXX_STR("\n"));
+ output.append(LOG4CXX_EOL);
}
1.13 +21 -5 logging-log4cxx/src/stringhelper.cpp
Index: stringhelper.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/src/stringhelper.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- stringhelper.cpp 23 Jan 2005 00:21:26 -0000 1.12
+++ stringhelper.cpp 15 Feb 2005 22:39:22 -0000 1.13
@@ -142,8 +142,16 @@
line = in;
in.erase(in.begin(), in.end());
} else {
- line.assign(in, 0, nl);
- in.erase(in.begin(), in.begin() + nl + 1);
+ //
+ // if the file has CR-LF then
+ // drop the carriage return alse
+ //
+ if(nl > 0 && in[nl -1] == '\x0D') {
+ line.assign(in, 0, nl - 1);
+ } else {
+ line.assign(in, 0, nl);
+ }
+ in.erase(in.begin(), in.begin() + nl + 1);
}
return true;
}
@@ -157,9 +165,17 @@
if (nl == std::wstring::npos) {
line = in;
in.erase(in.begin(), in.end());
- } else {
- line.assign(in, 0, nl);
- in.erase(in.begin(), in.begin() + nl + 1);
+ } else {
+ //
+ // if the file has CR-LF then
+ // drop the carriage return alse
+ //
+ if(nl > 0 && in[nl -1] == L'\x0D') {
+ line.assign(in, 0, nl - 1);
+ } else {
+ line.assign(in, 0, nl);
+ }
+ in.erase(in.begin(), in.begin() + nl + 1);
}
return true;
}
1.17 +1 -1 logging-log4cxx/src/ttcclayout.cpp
Index: ttcclayout.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/src/ttcclayout.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- ttcclayout.cpp 5 Jan 2005 22:42:58 -0000 1.16
+++ ttcclayout.cpp 15 Feb 2005 22:39:22 -0000 1.17
@@ -76,5 +76,5 @@
output.append(LOG4CXX_STR("- "));
output.append(event->getRenderedMessage());
- output.append(1, LOG4CXX_STR('\n'));
+ output.append(LOG4CXX_EOL);
}
1.24 +11 -11 logging-log4cxx/src/xmllayout.cpp
Index: xmllayout.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/src/xmllayout.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- xmllayout.cpp 13 Feb 2005 05:55:01 -0000 1.23
+++ xmllayout.cpp 15 Feb 2005 22:39:22 -0000 1.24
@@ -58,20 +58,20 @@
output.append(event->getLevel()->toString());
output.append(LOG4CXX_STR("\" thread=\""));
output.append(event->getThreadName());
- output.append(LOG4CXX_STR("\">\n"));
+ output.append(LOG4CXX_STR("\">") LOG4CXX_EOL);
output.append(LOG4CXX_STR("<log4j:message><![CDATA["));
// Append the rendered message. Also make sure to escape any
// existing CDATA sections.
Transform::appendEscapingCDATA(output, event->getRenderedMessage());
- output.append(LOG4CXX_STR("]]></log4j:message>\n"));
+ output.append(LOG4CXX_STR("]]></log4j:message>") LOG4CXX_EOL);
const LogString& ndc = event->getNDC();
if(!NDC::isNull(ndc))
{
output.append(LOG4CXX_STR("<log4j:NDC><![CDATA["));
output.append(ndc);
- output.append(LOG4CXX_STR("]]></log4j:NDC>\n"));
+ output.append(LOG4CXX_STR("]]></log4j:NDC>") LOG4CXX_EOL);
}
//
@@ -88,7 +88,7 @@
* of the keys is kinda nice..
*/
- output.append(LOG4CXX_STR("<log4j:MDC>\n"));
+ output.append(LOG4CXX_STR("<log4j:MDC>") LOG4CXX_EOL);
for (std::set<LogString>::iterator i = mdcKeySet.begin();
i != mdcKeySet.end(); i++)
{
@@ -98,9 +98,9 @@
output.append(propName);
output.append(LOG4CXX_STR("\" value=\""));
output.append(propValue);
- output.append(LOG4CXX_STR("\"/>\n"));
+ output.append(LOG4CXX_STR("\"/>") LOG4CXX_EOL);
}
- output.append(LOG4CXX_STR("</log4j:MDC>\n"));
+ output.append(LOG4CXX_STR("</log4j:MDC>") LOG4CXX_EOL);
}
if(locationInfo)
@@ -117,14 +117,14 @@
output.append(fileName);
output.append(LOG4CXX_STR("\" line=\""));
output.append(StringHelper::toString(locInfo.getLineNumber(), p));
- output.append(LOG4CXX_STR("\"/>\n"));
+ output.append(LOG4CXX_STR("\"/>") LOG4CXX_EOL);
}
std::set<LogString> propertySet = event->getPropertyKeySet();
if (!propertySet.empty())
{
- output.append(LOG4CXX_STR("<log4j:properties>\n"));
+ output.append(LOG4CXX_STR("<log4j:properties>") LOG4CXX_EOL);
for (std::set<LogString>::iterator i = propertySet.begin();
i != propertySet.end(); i++)
{
@@ -134,11 +134,11 @@
LogString propValue = event->getProperty(propName);
output.append(LOG4CXX_STR("\" value=\""));
output.append(propValue);
- output.append(LOG4CXX_STR("\"/>\n"));
+ output.append(LOG4CXX_STR("\"/>") LOG4CXX_EOL);
}
- output.append(LOG4CXX_STR("</log4j:properties>\n"));
+ output.append(LOG4CXX_STR("</log4j:properties>")
LOG4CXX_EOL);
}
- output.append(LOG4CXX_STR("</log4j:event>\n"));
+ output.append(LOG4CXX_STR("</log4j:event>") LOG4CXX_EOL);
}
1.7 +1 -1 logging-log4cxx/tests/src/filetestcase.cpp
Index: filetestcase.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/tests/src/filetestcase.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- filetestcase.cpp 3 Jan 2005 06:43:44 -0000 1.6
+++ filetestcase.cpp 15 Feb 2005 22:39:22 -0000 1.7
@@ -120,7 +120,7 @@
void fileWrite1() {
File outFile("output/fileWrite1.txt");
Pool pool;
- LogString greeting(LOG4CXX_STR("Hello, World\n"));
+ LogString greeting(LOG4CXX_STR("Hello, World") LOG4CXX_EOL);
apr_status_t stat = outFile.write(greeting, pool);
CPPUNIT_ASSERT_EQUAL(0, stat);
1.8 +9 -10 logging-log4cxx/tests/src/util/compare.cpp
Index: compare.cpp
===================================================================
RCS file: /home/cvs/logging-log4cxx/tests/src/util/compare.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- compare.cpp 26 Dec 2004 07:31:55 -0000 1.7
+++ compare.cpp 15 Feb 2005 22:39:22 -0000 1.8
@@ -36,7 +36,7 @@
LogString back1(in1);
LogString back2(in2);
- LogString s1;
+ LogString s1;
LogString s2;
int lineCounter = 0;
@@ -48,21 +48,20 @@
s2.erase(s2.begin(), s2.end());
}
- if (s1 != s2)
- {
+ if (s1 != s2) {
LogString msg(LOG4CXX_STR("Files ["));
msg += file1.getName();
msg += LOG4CXX_STR("] and [");
msg += file2.getName();
msg += LOG4CXX_STR("] differ on line ");
msg += StringHelper::toString(lineCounter, pool);
- msg += LOG4CXX_STR("\n");
+ msg += LOG4CXX_EOL;
msg += LOG4CXX_STR("One reads: [");
msg += s1;
- msg += LOG4CXX_STR("].\n");
+ msg += LOG4CXX_STR("].") LOG4CXX_EOL;
msg += LOG4CXX_STR("Other reads:[");
msg += s2;
- msg += LOG4CXX_STR("].\n");
+ msg += LOG4CXX_STR("].") LOG4CXX_EOL;
emit(msg);
outputFile(file1, back1, pool);
@@ -78,7 +77,7 @@
msg += file2.getName();
msg += LOG4CXX_STR("] longer than file [");
msg += file1.getName();
- msg += LOG4CXX_STR("].\n");
+ msg += LOG4CXX_STR("].") LOG4CXX_EOL;
emit(msg);
outputFile(file1, back1, pool);
outputFile(file2, back2, pool);
@@ -94,10 +93,10 @@
log4cxx::helpers::Pool& pool)
{
int lineCounter = 0;
- emit(LOG4CXX_STR("--------------------------------\n"));
+ emit(LOG4CXX_STR("--------------------------------") LOG4CXX_EOL);
LogString msg(LOG4CXX_STR("Contents of "));
msg += file.getName();
- msg += LOG4CXX_STR(":\n");
+ msg += LOG4CXX_STR(":") LOG4CXX_EOL;
emit(msg);
LogString in1(contents);
LogString s1;
@@ -124,7 +123,7 @@
emit(LOG4CXX_STR(": "));
}
emit(s1);
- emit(LOG4CXX_STR("\n"));
+ emit(LOG4CXX_EOL);
}
}