You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2011/03/15 21:04:53 UTC
svn commit: r1081921 - in /trafficserver/traffic/trunk/lib/tsconfig:
Makefile.am TsBuilder.cc TsErrataUtil.cc test-1.tsconfig test-tsconfig.cc
Author: amc
Date: Tue Mar 15 20:04:53 2011
New Revision: 1081921
URL: http://svn.apache.org/viewvc?rev=1081921&view=rev
Log:
TS-708
Added:
trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig
trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc
Modified:
trafficserver/traffic/trunk/lib/tsconfig/Makefile.am
trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc
trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc
Modified: trafficserver/traffic/trunk/lib/tsconfig/Makefile.am
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/Makefile.am?rev=1081921&r1=1081920&r2=1081921&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/Makefile.am (original)
+++ trafficserver/traffic/trunk/lib/tsconfig/Makefile.am Tue Mar 15 20:04:53 2011
@@ -17,11 +17,13 @@
# limitations under the License.
noinst_LIBRARIES = libtsconfig.a
+noinst_PROGRAMS = test-tsconfig
AM_YFLAGS = -d -p tsconfig
AM_CPPFLAGS = \
- -I$(top_srcdir)/lib
+ -I$(top_srcdir)/lib \
+ -fPIC
BUILT_SOURCES = \
TsConfigGrammar.c TsConfigGrammar.h TsConfigGrammar.hpp \
@@ -43,6 +45,10 @@ libtsconfig_a_SOURCES = \
TsValue.cc \
TsValue.h
+test_tsconfig_SOURCES = test-tsconfig.cc
+
+test_tsconfig_LDADD = libtsconfig.a
+
# Strip to just the enum in the ts::config namespace so we can use
# it more easily in C++.
TsConfigGrammar.hpp: TsConfigGrammar.h
Modified: trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc?rev=1081921&r1=1081920&r2=1081921&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc (original)
+++ trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc Tue Mar 15 20:04:53 2011
@@ -39,6 +39,8 @@ size_t unescape_string(char* text, size_
char* src = dst + 1; // skip escape char
for ( *dst++ = *src++ ; src < limit ; ++src )
if ('\\' != *src) *dst++ = *src;
+ else if (++src < limit) *dst++ = *src;
+ else *dst++ = '\\'; // trailing backslash.
zret = dst - text;
}
return zret;
@@ -194,8 +196,8 @@ void Builder::literalValue(Token const&
} else if (STRING == token._type) {
++text._ptr, text._size -= 2; // Don't include the quotes.
text._size = unescape_string(text._ptr, text._size);
+ text._ptr[text._size] = 0; // OK because we have the trailing quote.
cv = _v.makeString(text, _name);
- token._s[token._n-1] = 0;
} else {
msg::logf(_errata, msg::WARN, PRE "Unexpected literal type %d.", token._type);
}
Modified: trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc?rev=1081921&r1=1081920&r2=1081921&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc (original)
+++ trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc Tue Mar 15 20:04:53 2011
@@ -147,21 +147,21 @@ logf_errno(Errata::Code code, char const
Errata zret;
va_list rest;
va_start(rest, format);
- return vlogf_errno(zret, Errata::Id(), code, format, rest);
+ return vlogf_errno(zret, 0, code, format, rest);
}
Errata
logf_errno(Errata& errata, Errata::Code code, char const* format, ...) {
va_list rest;
va_start(rest, format);
- return vlogf_errno(errata, Errata::Id(), code, format, rest);
+ return vlogf_errno(errata, 0, code, format, rest);
}
Errata
logf_errno(RvBase& rv, Errata::Code code, char const* format, ...) {
va_list rest;
va_start(rest, format);
- return vlogf_errno(rv._errata, Errata::Id(), code, format, rest);
+ return vlogf_errno(rv._errata, 0, code, format, rest);
}
// ------------------------------------------------------
}} // namespace ts::msg
Added: trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig?rev=1081921&view=auto
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig (added)
+++ trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig Tue Mar 15 20:04:53 2011
@@ -0,0 +1,18 @@
+thing-1 = {
+ name = "0\12\\\345678\9";
+}
+
+list = (
+ {
+ prop1 = "Bob";
+ prop2 = "Dave";
+ },
+ {
+ prop1 = "Bobby";
+ prop2 = "Davy";
+ },
+ {
+ prop1 = "Robert";
+ prop2 = "David";
+ }
+)
\ No newline at end of file
Added: trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc?rev=1081921&view=auto
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc (added)
+++ trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc Tue Mar 15 20:04:53 2011
@@ -0,0 +1,29 @@
+# include "tsconfig/TsValue.h"
+# include <stdio.h>
+# include <iostream>
+
+using ts::config::Configuration;
+using ts::config::Value;
+
+inline std::ostream& operator << ( std::ostream& s, ts::ConstBuffer const& b ) {
+ if (b._ptr) s.write(b._ptr, b._size);
+ else s << b._size;
+ return s;
+}
+
+int main(int argc, char ** argv) {
+ printf("Testing TsConfig\n");
+ ts::Rv<Configuration> cv = Configuration::loadFromPath("test-1.tsconfig");
+ if (cv.isOK()) {
+ Value v = cv.result().find("thing-1.name");
+ if (v) {
+ std::cout << "thing-1.name = " << v.getText() << std::endl;
+ } else {
+ std::cout << "Failed to find 'name' in 'thing-1'" << std::endl;
+ }
+ } else {
+ std::cout << "Load failed" << std::endl
+ << cv.errata()
+ ;
+ }
+}
Re: svn commit: r1081921 - in /trafficserver/traffic/trunk/lib/tsconfig: Makefile.am TsBuilder.cc TsErrataUtil.cc test-1.tsconfig test-tsconfig.cc
Posted by Igor Galić <i....@brainsware.org>.
----- Original Message -----
> Author: amc
> Date: Tue Mar 15 20:04:53 2011
> New Revision: 1081921
>
> URL: http://svn.apache.org/viewvc?rev=1081921&view=rev
> Log:
> TS-708
>
> Added:
> trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig
> trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc
> Modified:
> trafficserver/traffic/trunk/lib/tsconfig/Makefile.am
> trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc
> trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc
>
> Modified: trafficserver/traffic/trunk/lib/tsconfig/Makefile.am
> URL:
> http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/Makefile.am?rev=1081921&r1=1081920&r2=1081921&view=diff
> ==============================================================================
> --- trafficserver/traffic/trunk/lib/tsconfig/Makefile.am (original)
> +++ trafficserver/traffic/trunk/lib/tsconfig/Makefile.am Tue Mar 15
> 20:04:53 2011
> @@ -17,11 +17,13 @@
> # limitations under the License.
>
> noinst_LIBRARIES = libtsconfig.a
> +noinst_PROGRAMS = test-tsconfig
>
> AM_YFLAGS = -d -p tsconfig
>
> AM_CPPFLAGS = \
> - -I$(top_srcdir)/lib
> + -I$(top_srcdir)/lib \
> + -fPIC
This seems out of place here.
Shouldn't it depend on pic_mode?
Aside from that, -fPIC is non-portable either
But this isn't the only place where we can find it:
i.galic@panic ~/Projects/asf/trafficserver (svn)-[trunk:1081925] % ack -li 'fpic|fpie' **/* | sort -u
build/tcl.m4
configure.ac
lib/tsconfig/Makefile.am
test/plugin/Makefile.am
test/SDKtest/client/api/Makefile.am
test/SDKtest/synth_server/api/Makefile.am
tools/tsxs.in
However, we can ignore the .m4 and the .ac and the tsxs.in.
Given that test/ is outdated, this only leaves us with
lib/tsconfig/Makefile.am
i
--
Igor Galić
Tel: +43 (0) 664 886 22 883
Mail: i.galic@brainsware.org
URL: http://brainsware.org/