You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(128) |
Dec
(65) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(48) |
Feb
(132) |
Mar
(95) |
Apr
(47) |
May
(54) |
Jun
(2) |
Jul
(57) |
Aug
(109) |
Sep
(131) |
Oct
(186) |
Nov
(105) |
Dec
(78) |
2007 |
Jan
(125) |
Feb
(105) |
Mar
(52) |
Apr
(104) |
May
(63) |
Jun
(116) |
Jul
(76) |
Aug
|
Sep
(18) |
Oct
(93) |
Nov
(110) |
Dec
(169) |
2008 |
Jan
(90) |
Feb
(64) |
Mar
(41) |
Apr
(23) |
May
(6) |
Jun
(18) |
Jul
(10) |
Aug
(61) |
Sep
(139) |
Oct
(50) |
Nov
(55) |
Dec
(2) |
2009 |
Jan
|
Feb
(1) |
Mar
(62) |
Apr
(22) |
May
(17) |
Jun
(19) |
Jul
(40) |
Aug
(21) |
Sep
|
Oct
(40) |
Nov
(23) |
Dec
|
2010 |
Jan
(14) |
Feb
(40) |
Mar
(9) |
Apr
(11) |
May
(19) |
Jun
(4) |
Jul
(10) |
Aug
(22) |
Sep
(15) |
Oct
|
Nov
(2) |
Dec
|
2011 |
Jan
(13) |
Feb
(10) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
(2) |
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
(33) |
May
(20) |
Jun
|
Jul
(8) |
Aug
(7) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Braden M. <br...@us...> - 2006-01-02 04:26:26
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv705/src/libopenvrml/openvrml Modified Files: browser.h browser.cpp Log Message: boost::read_write_mutex was broken and has been removed in Boost 1.33.1. Use boost::mutex instead. Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.119 retrieving revision 1.120 diff -C2 -d -r1.119 -r1.120 *** browser.cpp 2 Jan 2006 01:11:20 -0000 1.119 --- browser.cpp 2 Jan 2006 04:26:16 -0000 1.120 *************** *** 8772,8777 **** browser_(&browser), parent_(parent), ! profile_(invalid_profile_id), ! url_mutex_(boost::read_write_scheduling_policy::writer_priority) {} --- 8772,8776 ---- browser_(&browser), parent_(parent), ! profile_(invalid_profile_id) {} *************** *** 8792,8797 **** browser_(&browser), parent_(parent), ! profile_(profile), ! url_mutex_(boost::read_write_scheduling_policy::writer_priority) {} --- 8791,8795 ---- browser_(&browser), parent_(parent), ! profile_(profile) {} *************** *** 8990,8994 **** const std::string openvrml::scene::url() const throw (std::bad_alloc) { ! boost::read_write_mutex::scoped_read_lock lock(this->url_mutex_); using std::string; const string result = this->parent_ --- 8988,8992 ---- const std::string openvrml::scene::url() const throw (std::bad_alloc) { ! boost::mutex::scoped_lock lock(this->url_mutex_); using std::string; const string result = this->parent_ *************** *** 9014,9018 **** throw (invalid_url, std::bad_alloc) { ! boost::read_write_mutex::scoped_write_lock lock(this->url_mutex_); uri id(str); // Make sure we have a valid URI. this->url_ = str; --- 9012,9016 ---- throw (invalid_url, std::bad_alloc) { ! boost::mutex::scoped_lock lock(this->url_mutex_); uri id(str); // Make sure we have a valid URI. this->url_ = str; Index: browser.h =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.h,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** browser.h 20 Dec 2005 08:37:43 -0000 1.38 --- browser.h 2 Jan 2006 04:26:15 -0000 1.39 *************** *** 24,28 **** # define OPENVRML_BROWSER_H - # include <boost/thread/read_write_mutex.hpp> # include <openvrml/script.h> --- 24,27 ---- *************** *** 362,366 **** std::vector<boost::intrusive_ptr<node> > nodes_; ! mutable boost::read_write_mutex url_mutex_; std::string url_; --- 361,365 ---- std::vector<boost::intrusive_ptr<node> > nodes_; ! mutable boost::mutex url_mutex_; std::string url_; |
From: Braden M. <br...@us...> - 2006-01-02 04:26:24
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv705 Modified Files: ChangeLog Log Message: boost::read_write_mutex was broken and has been removed in Boost 1.33.1. Use boost::mutex instead. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1103 retrieving revision 1.1104 diff -C2 -d -r1.1103 -r1.1104 *** ChangeLog 2 Jan 2006 02:57:34 -0000 1.1103 --- ChangeLog 2 Jan 2006 04:26:13 -0000 1.1104 *************** *** 1,4 **** --- 1,19 ---- 2006-01-01 Braden McDaniel <br...@en...> + boost::read_write_mutex was broken and has been removed in Boost + 1.33.1. Use boost::mutex instead. + + * src/libopenvrml/openvrml/browser.cpp + (openvrml::scene::url() const): Changed lock from + boost::read_write_mutex::scoped_read_lock to + boost::mutex::scoped_lock. + (openvrml::scene::url(const std::string &)): Changed lock from + boost::read_write_mutex::scoped_write_lock to + boost::mutex::scoped_lock. + * src/libopenvrml/openvrml/browser.h (openvrml::scene): Changed + url_mutex_ from boost::read_write_mutex to boost::mutex. + + 2006-01-01 Braden McDaniel <br...@en...> + * tests/testsuite.at (Unrecognized node type): Updated expected output. |
From: Braden M. <br...@us...> - 2006-01-02 02:57:42
|
Update of /cvsroot/openvrml/openvrml/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21277/tests Modified Files: testsuite.at Log Message: Updated expected output for tests: unrecognized node type, PROTO with a conflicting eventIn and exposedField, and PROTO with a conflicting eventOut and exposedField. Index: testsuite.at =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/testsuite.at,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** testsuite.at 2 Jan 2006 02:51:09 -0000 1.5 --- testsuite.at 2 Jan 2006 02:57:34 -0000 1.6 *************** *** 132,136 **** ]]) AT_CHECK([parse < unrecognized-node.wrl], [1], [], ! [:2:17: error: Unknown node type "UnrecognizedNode". ]) AT_CLEANUP --- 132,136 ---- ]]) AT_CHECK([parse < unrecognized-node.wrl], [1], [], ! [urn:X-openvrml:stream:1:2:17: error: unknown node type "UnrecognizedNode" ]) AT_CLEANUP *************** *** 148,152 **** ]]) AT_CHECK([parse < proto-eventin-conflict.wrl], [1], [], ! [:4:26: error: Interface "exposedField MFNode foo" conflicts with previous declaration ]) AT_CLEANUP --- 148,152 ---- ]]) AT_CHECK([parse < proto-eventin-conflict.wrl], [1], [], ! [urn:X-openvrml:stream:1:4:26: error: Interface "exposedField MFNode foo" conflicts with previous declaration ]) AT_CLEANUP *************** *** 164,168 **** ]]) AT_CHECK([parse < proto-eventout-conflict.wrl], [1], [], ! [:5:0: error: Interface "eventOut SFColor foo_changed" conflicts with previous declaration ]) AT_CLEANUP --- 164,168 ---- ]]) AT_CHECK([parse < proto-eventout-conflict.wrl], [1], [], ! [urn:X-openvrml:stream:1:5:0: error: Interface "eventOut SFColor foo_changed" conflicts with previous declaration ]) AT_CLEANUP |
From: Braden M. <br...@us...> - 2006-01-02 02:57:42
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21277 Modified Files: ChangeLog Log Message: Updated expected output for tests: unrecognized node type, PROTO with a conflicting eventIn and exposedField, and PROTO with a conflicting eventOut and exposedField. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1102 retrieving revision 1.1103 diff -C2 -d -r1.1102 -r1.1103 *** ChangeLog 2 Jan 2006 02:51:05 -0000 1.1102 --- ChangeLog 2 Jan 2006 02:57:34 -0000 1.1103 *************** *** 1,4 **** --- 1,13 ---- 2006-01-01 Braden McDaniel <br...@en...> + * tests/testsuite.at (Unrecognized node type): Updated expected + output. + (PROTO with a conflicting eventIn and exposedField): Updated + expected output. + (PROTO with a conflicting eventOut and exposedField): Updated + expected output. + + 2006-01-01 Braden McDaniel <br...@en...> + * tests/testsuite.at (Unrecognized EXTERNPROTO): Ignore stdout, stderr. |
From: Braden M. <br...@us...> - 2006-01-02 02:51:16
|
Update of /cvsroot/openvrml/openvrml/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20354/tests Modified Files: testsuite.at Log Message: Ignore stdout, stderr for unrecognized EXTERNPROTO and unimplemented EXTERNPROTO tests. Index: testsuite.at =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/testsuite.at,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** testsuite.at 7 Nov 2005 06:55:21 -0000 1.4 --- testsuite.at 2 Jan 2006 02:51:09 -0000 1.5 *************** *** 106,110 **** UnrecognizedNode { sfboolField TRUE } ]]) ! AT_CHECK([parse < unrecognized-externproto.wrl]) AT_CLEANUP --- 106,113 ---- UnrecognizedNode { sfboolField TRUE } ]]) ! AT_CHECK([parse < unrecognized-externproto.wrl], ! [0], ! [ignore], ! [ignore]) AT_CLEANUP *************** *** 115,119 **** UnimplementedNode { sfboolField TRUE } ]]) ! AT_CHECK([parse < unimplemented-externproto.wrl]) AT_CLEANUP --- 118,125 ---- UnimplementedNode { sfboolField TRUE } ]]) ! AT_CHECK([parse < unimplemented-externproto.wrl], ! [0], ! [ignore], ! [ignore]) AT_CLEANUP |
From: Braden M. <br...@us...> - 2006-01-02 02:51:16
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20354 Modified Files: ChangeLog Log Message: Ignore stdout, stderr for unrecognized EXTERNPROTO and unimplemented EXTERNPROTO tests. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1101 retrieving revision 1.1102 diff -C2 -d -r1.1101 -r1.1102 *** ChangeLog 2 Jan 2006 01:11:19 -0000 1.1101 --- ChangeLog 2 Jan 2006 02:51:05 -0000 1.1102 *************** *** 1,4 **** --- 1,10 ---- 2006-01-01 Braden McDaniel <br...@en...> + * tests/testsuite.at (Unrecognized EXTERNPROTO): Ignore stdout, + stderr. + (Unimplemented EXTERNPROTO): Ignore stdout, stderr. + + 2006-01-01 Braden McDaniel <br...@en...> + * src/libopenvrml/openvrml/browser.cpp (openvrml::browser::create_vrml_from_stream(std::istream &)): |
From: Braden M. <br...@us...> - 2006-01-02 01:12:04
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5296 Modified Files: ChangeLog Log Message: Provide a real URI associated with the vrmlstream. This is needed so that PROTOs in the stream can have valid node_class_ids. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1100 retrieving revision 1.1101 diff -C2 -d -r1.1100 -r1.1101 *** ChangeLog 2 Jan 2006 00:49:45 -0000 1.1100 --- ChangeLog 2 Jan 2006 01:11:19 -0000 1.1101 *************** *** 1,4 **** --- 1,11 ---- 2006-01-01 Braden McDaniel <br...@en...> + * src/libopenvrml/openvrml/browser.cpp + (openvrml::browser::create_vrml_from_stream(std::istream &)): + Provide a real URI associated with the vrmlstream. This is needed + so that PROTOs in the stream can have valid node_class_ids. + + 2006-01-01 Braden McDaniel <br...@en...> + * src/libopenvrml/Makefile.am: touch files generated by antlr; antlr doesn't update the timestamps correctly. |
From: Braden M. <br...@us...> - 2006-01-02 01:11:31
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5296/src/libopenvrml/openvrml Modified Files: browser.cpp Log Message: Provide a real URI associated with the vrmlstream. This is needed so that PROTOs in the stream can have valid node_class_ids. Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.118 retrieving revision 1.119 diff -C2 -d -r1.118 -r1.119 *** browser.cpp 31 Dec 2005 05:38:43 -0000 1.118 --- browser.cpp 2 Jan 2006 01:11:20 -0000 1.119 *************** *** 7991,7994 **** --- 7991,8007 ---- } + + // + // stream_id_index_ is used to construct the URI for the stream; this is used + // to identify any PROTOs in the stream in the browser's node_class map. A + // side-effect of this approach is that the node_class map will keep growing, + // even if identical streams are repeatedly loaded. For this reason it is + // preferable to use an EXTERNPROTO in the stream. + // + namespace { + OPENVRML_LOCAL size_t stream_id_index_ = 0; + OPENVRML_LOCAL boost::mutex stream_id_index_mutex_; + } + /** * @brief Generate nodes from a stream of VRML syntax. *************** *** 8009,8012 **** --- 8022,8037 ---- openvrml::browser::create_vrml_from_stream(std::istream & in) { + using std::string; + using std::vector; + using boost::lexical_cast; + + { + boost::mutex::scoped_lock lock(stream_id_index_mutex_); + ++stream_id_index_; + } + + const string stream_id = + "urn:X-openvrml:stream:" + lexical_cast<string>(stream_id_index_); + std::vector<boost::intrusive_ptr<node> > nodes; try { *************** *** 8016,8020 **** { Vrml97Scanner scanner(in); ! Vrml97Parser parser(scanner, ""); parser.vrmlScene(*this->scene_, nodes); } --- 8041,8045 ---- { Vrml97Scanner scanner(in); ! Vrml97Parser parser(scanner, stream_id); parser.vrmlScene(*this->scene_, nodes); } *************** *** 8028,8032 **** { X3DVrmlScanner scanner(in); ! X3DVrmlParser parser(scanner, ""); parser.vrmlScene(*this->scene_, nodes); } --- 8053,8057 ---- { X3DVrmlScanner scanner(in); ! X3DVrmlParser parser(scanner, stream_id); parser.vrmlScene(*this->scene_, nodes); } |
From: Braden M. <br...@us...> - 2006-01-02 00:49:55
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1422/src/libopenvrml Modified Files: Makefile.am Log Message: touch files generated by antlr; antlr doesn't update the timestamps correctly. Index: Makefile.am =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/Makefile.am,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** Makefile.am 1 Jan 2006 19:02:07 -0000 1.23 --- Makefile.am 2 Jan 2006 00:49:46 -0000 1.24 *************** *** 21,33 **** openvrml/node_impl_util.h ! noinst_HEADERS = \ ! private.h \ openvrml/Vrml97Parser.cpp \ openvrml/Vrml97Parser.hpp \ ! openvrml/Vrml97ParserTokenTypes.hpp \ openvrml/X3DVrmlParser.cpp \ openvrml/X3DVrmlParser.hpp \ ! openvrml/X3DVrmlParserTokenTypes.hpp \ ! openvrml/ScriptJDK.h LIBRARY_VERSION = 5:3:0 --- 21,49 ---- openvrml/node_impl_util.h ! VRML97PARSER_BUILT_SOURCEFILES = \ openvrml/Vrml97Parser.cpp \ openvrml/Vrml97Parser.hpp \ ! openvrml/Vrml97ParserTokenTypes.hpp ! VRML97PARSER_BUILT_TEXTFILES = \ ! openvrml/Vrml97ParserTokenTypes.txt ! VRML97PARSER_BUILT_FILES = \ ! $(VRML97PARSER_BUILT_SOURCEFILES) \ ! $(VRML97PARSER_BUILT_TEXTFILES) ! ! X3DVRMLPARSER_BUILT_SOURCEFILES = \ openvrml/X3DVrmlParser.cpp \ openvrml/X3DVrmlParser.hpp \ ! openvrml/X3DVrmlParserTokenTypes.hpp ! X3DVRMLPARSER_BUILT_TEXTFILES = \ ! openvrml/X3DVrmlParserTokenTypes.txt ! X3DVRMLPARSER_BUILT_FILES = \ ! $(X3DVRMLPARSER_BUILT_SOURCEFILES) \ ! $(X3DVRMLPARSER_BUILT_TEXTFILES) ! ! noinst_HEADERS = \ ! private.h \ ! openvrml/ScriptJDK.h \ ! $(VRML97PARSER_BUILT_SOURCEFILES) \ ! $(X3DVRMLPARSER_BUILT_SOURCEFILES) LIBRARY_VERSION = 5:3:0 *************** *** 93,118 **** openvrml/Vrml97TokenTypes.txt \ openvrml/Vrml97Parser.g \ ! openvrml/Vrml97ParserTokenTypes.txt \ openvrml/X3DVrmlTokenTypes.txt \ openvrml/X3DVrmlParser.g \ ! openvrml/X3DVrmlParserTokenTypes.txt BUILT_SOURCES = \ ! $(srcdir)/openvrml/Vrml97Parser.cpp \ ! $(srcdir)/openvrml/Vrml97Parser.hpp \ ! $(srcdir)/openvrml/Vrml97ParserTokenTypes.hpp \ ! $(srcdir)/openvrml/X3DVrmlParser.cpp \ ! $(srcdir)/openvrml/X3DVrmlParser.hpp \ ! $(srcdir)/openvrml/X3DVrmlParserTokenTypes.hpp MAINTAINERCLEANFILES = \ ! $(BUILT_SOURCES) \ ! $(srcdir)/openvrml/Vrml97ParserTokenTypes.txt \ $(srcdir)/openvrml/expandedX3DVrml97Parser.g \ ! $(srcdir)/openvrml/X3DVrmlParserTokenTypes.txt ! $(srcdir)/openvrml/Vrml97Parser.hpp $(srcdir)/openvrml/Vrml97Parser.cpp: $(srcdir)/openvrml/Vrml97Parser.g $(srcdir)/openvrml/Vrml97TokenTypes.txt ! $(ANTLR) -o $(srcdir)/openvrml $(srcdir)/openvrml/Vrml97Parser.g ! $(srcdir)/openvrml/X3DVrmlParser.hpp $(srcdir)/openvrml/X3DVrmlParser.cpp: $(srcdir)/openvrml/Vrml97Parser.g $(srcdir)/openvrml/X3DVrmlParser.g $(srcdir)/openvrml/X3DVrmlTokenTypes.txt ! $(ANTLR) -o $(srcdir)/openvrml -glib $(srcdir)/openvrml/Vrml97Parser.g $(srcdir)/openvrml/X3DVrmlParser.g --- 109,138 ---- openvrml/Vrml97TokenTypes.txt \ openvrml/Vrml97Parser.g \ ! $(VRML97PARSER_BUILT_TEXTFILES) \ openvrml/X3DVrmlTokenTypes.txt \ openvrml/X3DVrmlParser.g \ ! $(X3DVRMLPARSER_BUILT_TEXTFILES) BUILT_SOURCES = \ ! $(VRML97PARSER_BUILT_SOURCEFILES) \ ! $(X3DVRMLPARSER_BUILT_SOURCEFILES) + # + # Note that maintainer-clean cleans BUILT_SOURCES, too. + # MAINTAINERCLEANFILES = \ ! $(VRML97PARSER_BUILT_TEXTFILES) \ $(srcdir)/openvrml/expandedX3DVrml97Parser.g \ ! $(X3DVRMLPARSER_BUILT_TEXTFILES) ! # ! # antlr doesn't update timestamps correctly; so files are touched after being ! # generated. ! # ! $(VRML97PARSER_BUILT_FILES): $(srcdir)/openvrml/Vrml97Parser.g $(srcdir)/openvrml/Vrml97TokenTypes.txt ! $(ANTLR) -o $(srcdir)/openvrml $(srcdir)/openvrml/Vrml97Parser.g \ ! && touch $(VRML97PARSER_BUILT_FILES) ! $(X3DVRMLPARSER_BUILT_FILES): $(srcdir)/openvrml/Vrml97Parser.g $(srcdir)/openvrml/X3DVrmlParser.g $(srcdir)/openvrml/X3DVrmlTokenTypes.txt ! $(ANTLR) -o $(srcdir)/openvrml -glib $(srcdir)/openvrml/Vrml97Parser.g $(srcdir)/openvrml/X3DVrmlParser.g \ ! && touch $(X3DVRMLPARSER_BUILT_FILES) |
From: Braden M. <br...@us...> - 2006-01-02 00:49:54
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1422 Modified Files: ChangeLog Log Message: touch files generated by antlr; antlr doesn't update the timestamps correctly. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1099 retrieving revision 1.1100 diff -C2 -d -r1.1099 -r1.1100 *** ChangeLog 1 Jan 2006 19:02:06 -0000 1.1099 --- ChangeLog 2 Jan 2006 00:49:45 -0000 1.1100 *************** *** 1,4 **** --- 1,9 ---- 2006-01-01 Braden McDaniel <br...@en...> + * src/libopenvrml/Makefile.am: touch files generated by antlr; + antlr doesn't update the timestamps correctly. + + 2006-01-01 Braden McDaniel <br...@en...> + * src/libopenvrml/Makefile.am (EXTRA_DIST): Added openvrml-config.h.in; removed mistakenly listed |
From: Braden M. <br...@us...> - 2006-01-01 19:02:16
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4341/src/libopenvrml Modified Files: Makefile.am Log Message: Added openvrml-config.h.in to EXTRA_DIST; removed mistakenly listed openvrml-gl-config.h.in and openvrml-gl-common.h. Index: Makefile.am =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/Makefile.am,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Makefile.am 12 Dec 2005 04:16:18 -0000 1.22 --- Makefile.am 1 Jan 2006 19:02:07 -0000 1.23 *************** *** 90,95 **** EXTRA_DIST = \ ! openvrml-gl-config.h.in \ ! openvrml-gl-common.h \ openvrml/Vrml97TokenTypes.txt \ openvrml/Vrml97Parser.g \ --- 90,94 ---- EXTRA_DIST = \ ! openvrml-config.h.in \ openvrml/Vrml97TokenTypes.txt \ openvrml/Vrml97Parser.g \ |
From: Braden M. <br...@us...> - 2006-01-01 19:02:16
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4341 Modified Files: ChangeLog Log Message: Added openvrml-config.h.in to EXTRA_DIST; removed mistakenly listed openvrml-gl-config.h.in and openvrml-gl-common.h. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1098 retrieving revision 1.1099 diff -C2 -d -r1.1098 -r1.1099 *** ChangeLog 31 Dec 2005 22:20:19 -0000 1.1098 --- ChangeLog 1 Jan 2006 19:02:06 -0000 1.1099 *************** *** 1,2 **** --- 1,8 ---- + 2006-01-01 Braden McDaniel <br...@en...> + + * src/libopenvrml/Makefile.am (EXTRA_DIST): Added + openvrml-config.h.in; removed mistakenly listed + openvrml-gl-config.h.in and openvrml-gl-common.h. + 2005-12-31 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2005-12-31 22:20:27
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20196/src/libopenvrml/openvrml Modified Files: vrml97node.cpp Log Message: Reordered member initializer list to match declaration order. Index: vrml97node.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/vrml97node.cpp,v retrieving revision 1.94 retrieving revision 1.95 diff -C2 -d -r1.94 -r1.95 *** vrml97node.cpp 21 Dec 2005 04:12:29 -0000 1.94 --- vrml97node.cpp 31 Dec 2005 22:20:19 -0000 1.95 *************** *** 19133,19138 **** appearance_(*this), geometry_(*this), ! viewerObject(0), ! bbox_size_(vec3f(-1,-1,-1)) {} --- 19133,19138 ---- appearance_(*this), geometry_(*this), ! bbox_size_(vec3f(-1,-1,-1)), ! viewerObject(0) {} |
From: Braden M. <br...@us...> - 2005-12-31 22:20:27
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20196 Modified Files: ChangeLog Log Message: Reordered member initializer list to match declaration order. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1097 retrieving revision 1.1098 diff -C2 -d -r1.1097 -r1.1098 *** ChangeLog 31 Dec 2005 05:38:42 -0000 1.1097 --- ChangeLog 31 Dec 2005 22:20:19 -0000 1.1098 *************** *** 1,2 **** --- 1,9 ---- + 2005-12-31 Braden McDaniel <br...@en...> + + * src/libopenvrml/openvrml/vrml97node.cpp + (shape_node::shape_node(const node_type &, const + boost::shared_ptr<openvrml::scope> &)): Reordered member + initializer list to match declaration order. + 2005-12-30 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2005-12-31 05:38:53
|
Update of /cvsroot/openvrml/openvrml/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4874/tests Modified Files: node_class_id.cpp Log Message: Broke up URI grammar and used the part that parses absolute URIs to validate node_class_id. Index: node_class_id.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/node_class_id.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** node_class_id.cpp 30 Dec 2005 05:13:08 -0000 1.1 --- node_class_id.cpp 31 Dec 2005 05:38:43 -0000 1.2 *************** *** 20,23 **** --- 20,28 ---- } + void construct_nested_proto_id() + { + node_class_id id("http://example.com#Foo#Bar"); + } + void construct_from_relative_url() { *************** *** 37,40 **** --- 42,46 ---- suite->add(BOOST_TEST_CASE(&construct_from_url)); suite->add(BOOST_TEST_CASE(&construct_from_url_with_fragment_id)); + suite->add(BOOST_TEST_CASE(&construct_nested_proto_id)); suite->add(BOOST_TEST_CASE(&construct_from_relative_url)); suite->add(BOOST_TEST_CASE(&construct_from_arbitrary_string)); |
From: Braden M. <br...@us...> - 2005-12-31 05:38:51
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4874/src/libopenvrml/openvrml Modified Files: browser.cpp Log Message: Broke up URI grammar and used the part that parses absolute URIs to validate node_class_id. Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.117 retrieving revision 1.118 diff -C2 -d -r1.117 -r1.118 *** browser.cpp 30 Dec 2005 06:47:29 -0000 1.117 --- browser.cpp 31 Dec 2005 05:38:43 -0000 1.118 *************** *** 2818,2823 **** struct null_action { template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const {} }; --- 2818,2822 ---- struct null_action { template <typename Iterator> ! void operator()(const Iterator &, const Iterator &) const {} }; *************** *** 2827,2843 **** }; ! template <typename Actions = null_actions> ! struct uri_grammar : public boost::spirit::grammar<uri_grammar<Actions> > { template <typename ScannerT> struct definition { ! struct absolute_uri_closure : ! boost::spirit::closure<absolute_uri_closure, ! typename ScannerT::iterator_t, ! typename ScannerT::iterator_t> { ! typename absolute_uri_closure::member1 scheme_begin; ! typename absolute_uri_closure::member2 scheme_end; ! }; struct server_closure : boost::spirit::closure<server_closure, --- 2826,2924 ---- }; ! ! struct OPENVRML_LOCAL uri_reserved_parser : ! public boost::spirit::char_parser<uri_reserved_parser> { ! ! typedef uri_reserved_parser self_t; ! ! template <typename CharT> ! bool test(CharT ch) const ! { ! return ch == ';' ! || ch == '/' ! || ch == '?' ! || ch == ':' ! || ch == '@' ! || ch == '&' ! || ch == '=' ! || ch == '+' ! || ch == '$' ! || ch == ','; ! } ! }; ! ! const uri_reserved_parser uri_reserved_p = uri_reserved_parser(); ! ! ! struct OPENVRML_LOCAL uri_unreserved_parser : ! public boost::spirit::char_parser<uri_unreserved_parser> { ! ! typedef uri_unreserved_parser self_t; ! ! template <typename CharT> ! bool test(CharT ch) const ! { ! using namespace std; ! return isalnum(char_traits<CharT>::to_int_type(ch)) ! || ch == '-' ! || ch == '_' ! || ch == '.' ! || ch == '!' ! || ch == '~' ! || ch == '*' ! || ch == '\'' ! || ch == '(' ! || ch == ')'; ! } ! }; ! ! const uri_unreserved_parser uri_unreserved_p = uri_unreserved_parser(); ! ! ! struct OPENVRML_LOCAL uric_grammar : ! public boost::spirit::grammar<uric_grammar> { template <typename ScannerT> struct definition { ! typedef boost::spirit::rule<ScannerT> rule_type; + rule_type uric, escaped; + + definition(const uric_grammar & self); + + const boost::spirit::rule<ScannerT> & start() const; + }; + }; + + template <typename ScannerT> + uric_grammar::definition<ScannerT>::definition(const uric_grammar &) + { + using namespace boost::spirit; + + uric + = uri_reserved_p + | uri_unreserved_p + | escaped + ; + + escaped + = '%' >> xdigit_p >> xdigit_p + ; + } + + template <typename ScannerT> + const boost::spirit::rule<ScannerT> & + uric_grammar::definition<ScannerT>::start() const + { + return this->uric; + } + + + template <typename Actions = null_actions> + struct uri_authority_grammar : + public boost::spirit::grammar<uri_authority_grammar<Actions> > { + + template <typename ScannerT> + struct definition { struct server_closure : boost::spirit::closure<server_closure, *************** *** 2849,2871 **** typedef boost::spirit::rule<ScannerT> rule_type; - typedef boost::spirit::rule< - ScannerT, - typename absolute_uri_closure::context_t> - absolute_uri_rule_type; typedef boost::spirit::rule<ScannerT, typename server_closure::context_t> server_rule_type; - rule_type uri_reference; - absolute_uri_rule_type absolute_uri; - rule_type relative_uri; - rule_type hier_part; - rule_type opaque_part; - rule_type uric_no_slash; - rule_type net_path; - rule_type abs_path; - rule_type rel_path; - rule_type rel_segment; - rule_type scheme; rule_type authority; rule_type reg_name; --- 2930,2937 ---- *************** *** 2879,2895 **** rule_type ipv4address; rule_type port; - rule_type path_segments; - rule_type segment; - rule_type param; - rule_type pchar; - rule_type query; - rule_type fragment; - rule_type uric; - rule_type reserved; - rule_type unreserved; - rule_type mark; rule_type escaped; ! explicit definition(const uri_grammar & self); const boost::spirit::rule<ScannerT> & start() const; --- 2945,2951 ---- rule_type ipv4address; rule_type port; rule_type escaped; ! explicit definition(const uri_authority_grammar & self); const boost::spirit::rule<ScannerT> & start() const; *************** *** 2898,3026 **** const Actions & actions; ! explicit uri_grammar(const Actions & actions); }; - - template <typename Actions> - uri_grammar<Actions>::uri_grammar(const Actions & actions = Actions()): - actions(actions) - {} - template <typename Actions> template <typename ScannerT> ! uri_grammar<Actions>::definition<ScannerT>:: ! definition(const uri_grammar & self) { using namespace boost::spirit; using namespace phoenix; - BOOST_SPIRIT_DEBUG_NODE(uri_reference); - BOOST_SPIRIT_DEBUG_NODE(absolute_uri); - BOOST_SPIRIT_DEBUG_NODE(relative_uri); - BOOST_SPIRIT_DEBUG_NODE(hier_part); - BOOST_SPIRIT_DEBUG_NODE(opaque_part); - BOOST_SPIRIT_DEBUG_NODE(uric_no_slash); - BOOST_SPIRIT_DEBUG_NODE(net_path); - BOOST_SPIRIT_DEBUG_NODE(abs_path); - BOOST_SPIRIT_DEBUG_NODE(rel_path); - BOOST_SPIRIT_DEBUG_NODE(rel_segment); - BOOST_SPIRIT_DEBUG_NODE(scheme); - BOOST_SPIRIT_DEBUG_NODE(authority); - BOOST_SPIRIT_DEBUG_NODE(reg_name); - BOOST_SPIRIT_DEBUG_NODE(server); - BOOST_SPIRIT_DEBUG_NODE(userinfo); - BOOST_SPIRIT_DEBUG_NODE(hostport); - BOOST_SPIRIT_DEBUG_NODE(host); - BOOST_SPIRIT_DEBUG_NODE(hostname); - BOOST_SPIRIT_DEBUG_NODE(domainlabel); - BOOST_SPIRIT_DEBUG_NODE(toplabel); - BOOST_SPIRIT_DEBUG_NODE(ipv4address); - BOOST_SPIRIT_DEBUG_NODE(port); - BOOST_SPIRIT_DEBUG_NODE(path_segments); - BOOST_SPIRIT_DEBUG_NODE(segment); - BOOST_SPIRIT_DEBUG_NODE(param); - BOOST_SPIRIT_DEBUG_NODE(pchar); - BOOST_SPIRIT_DEBUG_NODE(query); - BOOST_SPIRIT_DEBUG_NODE(fragment); - BOOST_SPIRIT_DEBUG_NODE(uric); - BOOST_SPIRIT_DEBUG_NODE(reserved); - BOOST_SPIRIT_DEBUG_NODE(unreserved); - BOOST_SPIRIT_DEBUG_NODE(mark); - BOOST_SPIRIT_DEBUG_NODE(escaped); - - uri_reference - = !(absolute_uri | relative_uri) >> !('#' >> fragment) - ; - - absolute_uri - = ( - scheme[ - absolute_uri.scheme_begin = arg1, - absolute_uri.scheme_end = arg2 - ] >> ':' - )[ - assign_iterators(self.actions.scheme, - absolute_uri.scheme_begin, - absolute_uri.scheme_end) - ] >> (hier_part | opaque_part)[ - self.actions.scheme_specific_part - ] - ; - - relative_uri - = (net_path | abs_path | rel_path) >> !('?' >> query) - ; - - hier_part - = (net_path | abs_path) >> !('?' >> query) - ; - - opaque_part - = uric_no_slash >> *uric - ; - - uric_no_slash - = unreserved - | escaped - | ';' - | '?' - | ':' - | '@' - | '&' - | '=' - | '+' - | '$' - | ',' - ; - - net_path - = "//" >> authority >> !abs_path - ; - - abs_path - = ('/' >> path_segments)[ self.actions.path ] - ; - - rel_path - = (rel_segment >> !abs_path)[ self.actions.path ] - ; - - rel_segment - = +( unreserved - | escaped - | ';' - | '@' - | '&' - | '=' - | '+' - | '$' - | ',' - ) - ; - - scheme - = (alpha_p >> *(alpha_p | digit_p | '+' | '-' | '.')) - ; - authority = (server | reg_name)[ self.actions.authority ] --- 2954,2968 ---- const Actions & actions; ! explicit uri_authority_grammar(const Actions & actions = Actions()); }; template <typename Actions> template <typename ScannerT> ! uri_authority_grammar<Actions>::definition<ScannerT>:: ! definition(const uri_authority_grammar & self) { using namespace boost::spirit; using namespace phoenix; authority = (server | reg_name)[ self.actions.authority ] *************** *** 3028,3032 **** reg_name ! = +( unreserved | escaped | '$' --- 2970,2974 ---- reg_name ! = +( uri_unreserved_p | escaped | '$' *************** *** 3058,3062 **** userinfo ! = *( unreserved | escaped | ';' --- 3000,3004 ---- userinfo ! = *( uri_unreserved_p | escaped | ';' *************** *** 3099,3102 **** --- 3041,3101 ---- ; + escaped + = '%' >> xdigit_p >> xdigit_p + ; + } + + template <typename Actions> + template <typename ScannerT> + const boost::spirit::rule<ScannerT> & + uri_authority_grammar<Actions>::definition<ScannerT>::start() const + { + return this->authority; + } + + template <typename Actions> + uri_authority_grammar<Actions>:: + uri_authority_grammar(const Actions & actions): + actions(actions) + {} + + template <typename Actions> + struct uri_abs_path_grammar : + public boost::spirit::grammar<uri_abs_path_grammar<Actions> > { + + template <typename ScannerT> + struct definition { + typedef boost::spirit::rule<ScannerT> rule_type; + + rule_type abs_path; + rule_type path_segments; + rule_type segment; + rule_type param; + rule_type pchar; + rule_type query; + rule_type escaped; + + explicit definition(const uri_abs_path_grammar & self); + + const boost::spirit::rule<ScannerT> & start() const; + }; + + const Actions & actions; + + explicit uri_abs_path_grammar(const Actions & actions = Actions()); + }; + + template <typename Actions> + template <typename ScannerT> + uri_abs_path_grammar<Actions>::definition<ScannerT>:: + definition(const uri_abs_path_grammar & self) + { + using namespace boost::spirit; + using namespace phoenix; + + abs_path + = ('/' >> path_segments)[ self.actions.path ] + ; + path_segments = segment >> *('/' >> segment) *************** *** 3112,3116 **** pchar ! = unreserved | escaped | ':' --- 3111,3115 ---- pchar ! = uri_unreserved_p | escaped | ':' *************** *** 3123,3168 **** ; query = (*uric)[ self.actions.query ] ; ! fragment ! = (*uric)[ self.actions.fragment ] ; ! uric ! = reserved ! | unreserved ! | escaped ; ! reserved ! = ch_p(';') ! | '/' ! | '?' ! | ':' ! | '@' ! | '&' ! | '=' ! | '+' ! | '$' ! | ',' ; ! unreserved ! = alnum_p ! | mark ; ! mark ! = ch_p('-') ! | '_' ! | '.' ! | '!' ! | '~' ! | '*' ! | '\'' ! | '(' ! | ')' ; --- 3122,3357 ---- ; + escaped + = '%' >> xdigit_p >> xdigit_p + ; + } + + template <typename Actions> + template <typename ScannerT> + const boost::spirit::rule<ScannerT> & + uri_abs_path_grammar<Actions>::definition<ScannerT>::start() const + { + return this->abs_path; + } + + template <typename Actions> + uri_abs_path_grammar<Actions>:: + uri_abs_path_grammar(const Actions & actions): + actions(actions) + {} + + + template <typename Actions = null_actions> + struct absolute_uri_grammar : + public boost::spirit::grammar<absolute_uri_grammar<Actions> > { + + template <typename ScannerT> + struct definition { + struct absolute_uri_closure : + boost::spirit::closure<absolute_uri_closure, + typename ScannerT::iterator_t, + typename ScannerT::iterator_t> { + typename absolute_uri_closure::member1 scheme_begin; + typename absolute_uri_closure::member2 scheme_end; + }; + + struct server_closure : + boost::spirit::closure<server_closure, + typename ScannerT::iterator_t, + typename ScannerT::iterator_t> { + typename server_closure::member1 userinfo_begin; + typename server_closure::member2 userinfo_end; + }; + + typedef boost::spirit::rule<ScannerT> rule_type; + typedef boost::spirit::rule< + ScannerT, + typename absolute_uri_closure::context_t> + absolute_uri_rule_type; + typedef boost::spirit::rule<ScannerT, + typename server_closure::context_t> + server_rule_type; + + absolute_uri_rule_type absolute_uri; + rule_type scheme; + rule_type hier_part; + rule_type opaque_part; + rule_type net_path; + uri_abs_path_grammar<Actions> abs_path; + uri_authority_grammar<Actions> authority; + rule_type query; + rule_type uric_no_slash; + uric_grammar uric; + + explicit definition(const absolute_uri_grammar & self); + + const absolute_uri_rule_type & start() const; + }; + + const Actions & actions; + + explicit absolute_uri_grammar(const Actions & actions = Actions()); + }; + + template <typename Actions> + template <typename ScannerT> + absolute_uri_grammar<Actions>::definition<ScannerT>:: + definition(const absolute_uri_grammar & self): + abs_path(self.actions), + authority(self.actions) + { + using namespace boost::spirit; + using namespace phoenix; + + absolute_uri + = ( + scheme[ + absolute_uri.scheme_begin = arg1, + absolute_uri.scheme_end = arg2 + ] >> ':' + )[ + assign_iterators(self.actions.scheme, + absolute_uri.scheme_begin, + absolute_uri.scheme_end) + ] >> (hier_part | opaque_part)[ + self.actions.scheme_specific_part + ] + ; + + scheme + = (alpha_p >> *(alpha_p | digit_p | '+' | '-' | '.')) + ; + + hier_part + = (net_path | abs_path) >> !('?' >> query) + ; + + opaque_part + = uric_no_slash >> *uric + ; + + uric_no_slash + = uric - '/' + ; + + net_path + = "//" >> authority >> !abs_path + ; + query = (*uric)[ self.actions.query ] ; ! } ! ! template <typename Actions> ! template <typename ScannerT> ! const typename absolute_uri_grammar<Actions>:: ! template definition<ScannerT>::absolute_uri_rule_type & ! absolute_uri_grammar<Actions>::definition<ScannerT>::start() const ! { ! return this->absolute_uri; ! } ! ! template <typename Actions> ! absolute_uri_grammar<Actions>:: ! absolute_uri_grammar(const Actions & actions): ! actions(actions) ! {} ! ! ! template <typename Actions = null_actions> ! struct uri_grammar : public boost::spirit::grammar<uri_grammar<Actions> > { ! ! template <typename ScannerT> ! struct definition { ! typedef boost::spirit::rule<ScannerT> rule_type; ! ! rule_type uri_reference; ! absolute_uri_grammar<Actions> absolute_uri; ! rule_type relative_uri; ! rule_type net_path; ! uri_abs_path_grammar<Actions> abs_path; ! rule_type rel_path; ! rule_type rel_segment; ! uri_authority_grammar<Actions> authority; ! rule_type query; ! rule_type fragment; ! uric_grammar uric; ! rule_type escaped; ! ! explicit definition(const uri_grammar & self); ! ! const boost::spirit::rule<ScannerT> & start() const; ! }; ! ! const Actions & actions; ! ! explicit uri_grammar(const Actions & actions = Actions()); ! }; ! ! ! template <typename Actions> ! uri_grammar<Actions>::uri_grammar(const Actions & actions): ! actions(actions) ! {} ! ! template <typename Actions> ! template <typename ScannerT> ! uri_grammar<Actions>::definition<ScannerT>:: ! definition(const uri_grammar & self): ! absolute_uri(self.actions), ! abs_path(self.actions), ! authority(self.actions) ! { ! using namespace boost::spirit; ! using namespace phoenix; ! ! BOOST_SPIRIT_DEBUG_NODE(uri_reference); ! BOOST_SPIRIT_DEBUG_NODE(absolute_uri); ! BOOST_SPIRIT_DEBUG_NODE(net_path); ! BOOST_SPIRIT_DEBUG_NODE(abs_path); ! BOOST_SPIRIT_DEBUG_NODE(rel_path); ! BOOST_SPIRIT_DEBUG_NODE(rel_segment); ! BOOST_SPIRIT_DEBUG_NODE(authority); ! BOOST_SPIRIT_DEBUG_NODE(query); ! BOOST_SPIRIT_DEBUG_NODE(fragment); ! BOOST_SPIRIT_DEBUG_NODE(uric); ! BOOST_SPIRIT_DEBUG_NODE(escaped); ! ! uri_reference ! = !(absolute_uri | relative_uri) >> !('#' >> fragment) ! ; ! relative_uri ! = (net_path | abs_path | rel_path) >> !('?' >> query) ; ! net_path ! = "//" >> authority >> !abs_path ; ! rel_path ! = (rel_segment >> !abs_path)[ self.actions.path ] ; ! rel_segment ! = +( uri_unreserved_p ! | escaped ! | ';' ! | '@' ! | '&' ! | '=' ! | '+' ! | '$' ! | ',' ! ) ; ! query ! = (*uric)[ self.actions.query ] ! ; ! ! fragment ! = (*uric)[ self.actions.fragment ] ; *************** *** 6624,6627 **** --- 6813,6852 ---- */ + namespace { + + struct OPENVRML_LOCAL node_class_id_grammar : + public boost::spirit::grammar<node_class_id_grammar> { + + template <typename ScannerT> + struct definition { + typedef boost::spirit::rule<ScannerT> rule_type; + + rule_type node_class_id; + absolute_uri_grammar<> absolute_uri; + uric_grammar uric; + + definition(const node_class_id_grammar & self); + + const boost::spirit::rule<ScannerT> & start() const; + }; + }; + + template <typename ScannerT> + node_class_id_grammar::definition<ScannerT>:: + definition(const node_class_id_grammar &) + { + node_class_id + = absolute_uri >> *('#' >> *uric) + ; + } + + template <typename ScannerT> + const boost::spirit::rule<ScannerT> & + node_class_id_grammar::definition<ScannerT>::start() const + { + return this->node_class_id; + } + } + /** * @brief Construct from a <code>const char *</code>. *************** *** 6639,6643 **** id_(id) { ! if (relative(uri(this->id_))) { throw std::invalid_argument('<' + this->id_ + "> is not a valid " "node_class identifier"); --- 6864,6871 ---- id_(id) { ! using namespace boost::spirit; ! ! node_class_id_grammar g; ! if (!parse(this->id_.begin(), this->id_.end(), g, space_p).full) { throw std::invalid_argument('<' + this->id_ + "> is not a valid " "node_class identifier"); *************** *** 6660,6664 **** id_(id) { ! if (relative(uri(this->id_))) { throw std::invalid_argument('<' + this->id_ + "> is not a valid " "node_class identifier"); --- 6888,6895 ---- id_(id) { ! using namespace boost::spirit; ! ! node_class_id_grammar g; ! if (!parse(this->id_.begin(), this->id_.end(), g, space_p).full) { throw std::invalid_argument('<' + this->id_ + "> is not a valid " "node_class identifier"); |
From: Braden M. <br...@us...> - 2005-12-31 05:38:51
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4874 Modified Files: ChangeLog Log Message: Broke up URI grammar and used the part that parses absolute URIs to validate node_class_id. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1096 retrieving revision 1.1097 diff -C2 -d -r1.1096 -r1.1097 *** ChangeLog 30 Dec 2005 06:47:29 -0000 1.1096 --- ChangeLog 31 Dec 2005 05:38:42 -0000 1.1097 *************** *** 1,4 **** --- 1,65 ---- 2005-12-30 Braden McDaniel <br...@en...> + Broke up URI grammar and used the part that parses absolute URIs + to validate node_class_id. + + * src/libopenvrml/openvrml/browser.cpp + (uri_reserved_parser): Spirit parser for reserved URI characters. + (uri_reserved_p): uri_reserved_parser instance. + (uri_unreserved_parser): Spirit parser for unreserved URI + characters. + (uri_unreserved_p): uri_unreserved_parser instance. + (uric_grammar): Spirit grammar for URI characters. + (uric_grammar::definition<ScannerT>::definition(const + uric_grammar&)): uric_grammar definition. + (uric_grammar::definition<ScannerT>::start() const): uric_grammar + start rule. + (uri_authority_grammar): Spirit grammar for the authority part of + a URI. + (uri_authority_grammar<Actions>::definition<ScannerT>::definition(const + uri_authority_grammar &)): uri_authority_grammar definition. + (uri_authority_grammar<Actions>::definition<ScannerT>::start() + const): uri_authority_grammar start rule. + (uri_authority_grammar<Actions>::uri_authority_grammar(const + Actions &)): Construct uri_authority_grammar. + (uri_abs_path_grammar<Actions>): Spirit grammar for absolute URI + paths. + (uri_abs_path_grammar<Actions>::definition<ScannerT>::definition(const + uri_abs_path_grammar &)): uri_abs_path_grammar definition. + (uri_abs_path_grammar<Actions>::definition<ScannerT>::start() + const): uri_abs_path_grammar start rule. + (uri_abs_path_grammar<Actions>::uri_abs_path_grammar(const + Actions&)): Construct uri_abs_path_grammar. + (absolute_uri_grammar<Actions>): Spirit grammar for absolute URIs. + (absolute_uri_grammar<Actions>::definition<ScannerT>::definition(const + absolute_uri_grammar &)): absolute_uri_grammar definition. + (absolute_uri_grammar<Actions>::definition<ScannerT>::start() + const): absolute_uri_grammar start rule. + (absolute_uri_grammar<Actions>::absolute_uri_grammar(const + Actions&)): Construst absolute_uri_grammar. + (uri_grammar<Actions>::definition<ScannerT>): Use + absolute_uri_grammar, uri_abs_path_grammar, and + uri_authority_grammar. + (uri_grammar<Actions>::definition<ScannerT>::definition(const + uri_grammar &)): Use absolute_uri_grammar, uri_abs_path_grammar, + and uri_authority_grammar. + (node_class_id_grammar): Spirit grammar for node_class + identifiers. + (node_class_id_grammar::definition<ScannerT>::definition(const + node_class_id_grammar &)): node_class_id_grammar definition. + (node_class_id_grammar::definition<ScannerT>::start() const): + node_class_id_grammar start rule. + (node_class_id::node_class_id(const char *)): Validate using + node_class_id_grammar. + (node_class_id::node_class_id(const std::string &)): Validate + using node_class_id_grammar. + * tests/node_class_id.cpp + (construct_nested_proto_id()): Added function to test nested PROTO + identifiers. + (init_unit_test_suite(int, char * [])): Add + construct_nested_proto_id() to test suite. + + 2005-12-30 Braden McDaniel <br...@en...> + Made URI grammar parameterized with a struct defining semantic actions. |
From: Braden M. <br...@us...> - 2005-12-30 06:47:40
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26722/src/libopenvrml/openvrml Modified Files: browser.cpp Log Message: Made URI grammar parameterized with a struct defining semantic actions. Index: browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/browser.cpp,v retrieving revision 1.116 retrieving revision 1.117 diff -C2 -d -r1.116 -r1.117 *** browser.cpp 20 Dec 2005 08:37:43 -0000 1.116 --- browser.cpp 30 Dec 2005 06:47:29 -0000 1.117 *************** *** 2772,2891 **** ! class OPENVRML_LOCAL uri { ! struct grammar : public boost::spirit::grammar<grammar> { struct absolute_uri_closure : boost::spirit::closure<absolute_uri_closure, ! std::string::const_iterator, ! std::string::const_iterator> { ! member1 scheme_begin; ! member2 scheme_end; }; struct server_closure : boost::spirit::closure<server_closure, ! std::string::const_iterator, ! std::string::const_iterator> { ! member1 userinfo_begin; ! member2 userinfo_end; }; ! template <typename ScannerT> ! struct definition { ! typedef boost::spirit::rule<ScannerT> rule_type; ! typedef boost::spirit::rule<ScannerT, ! absolute_uri_closure::context_t> ! absolute_uri_rule_type; ! typedef boost::spirit::rule<ScannerT, ! server_closure::context_t> ! server_rule_type; ! ! rule_type uri_reference; ! absolute_uri_rule_type absolute_uri; ! rule_type relative_uri; ! rule_type hier_part; ! rule_type opaque_part; ! rule_type uric_no_slash; ! rule_type net_path; ! rule_type abs_path; ! rule_type rel_path; ! rule_type rel_segment; ! rule_type scheme; ! rule_type authority; ! rule_type reg_name; ! server_rule_type server; ! rule_type userinfo; ! rule_type hostport; ! rule_type host; ! rule_type hostname; ! rule_type domainlabel; ! rule_type toplabel; ! rule_type ipv4address; ! rule_type port; ! rule_type path_segments; ! rule_type segment; ! rule_type param; ! rule_type pchar; ! rule_type query; ! rule_type fragment; ! rule_type uric; ! rule_type reserved; ! rule_type unreserved; ! rule_type mark; ! rule_type escaped; ! ! explicit definition(const grammar & self); ! const boost::spirit::rule<ScannerT> & start() const; ! }; ! mutable uri & uri_ref; ! explicit grammar(uri & uri_ref) throw (); }; ! std::string str_; ! std::string::const_iterator scheme_begin, scheme_end; ! std::string::const_iterator scheme_specific_part_begin, ! scheme_specific_part_end; ! std::string::const_iterator authority_begin, authority_end; ! std::string::const_iterator userinfo_begin, userinfo_end; ! std::string::const_iterator host_begin, host_end; ! std::string::const_iterator port_begin, port_end; ! std::string::const_iterator path_begin, path_end; ! std::string::const_iterator query_begin, query_end; ! std::string::const_iterator fragment_begin, fragment_end; ! ! public: ! uri() throw (std::bad_alloc); ! explicit uri(const std::string & str) ! throw (openvrml::invalid_url, std::bad_alloc); ! ! operator std::string() const throw (std::bad_alloc); ! ! const std::string scheme() const throw (std::bad_alloc); ! const std::string scheme_specific_part() const throw (std::bad_alloc); ! const std::string authority() const throw (std::bad_alloc); ! const std::string userinfo() const throw (std::bad_alloc); ! const std::string host() const throw (std::bad_alloc); ! const std::string port() const throw (std::bad_alloc); ! const std::string path() const throw (std::bad_alloc); ! const std::string query() const throw (std::bad_alloc); ! const std::string fragment() const throw (std::bad_alloc); ! const uri resolve_against(const uri & absolute_uri) const ! throw (std::bad_alloc); }; - inline bool relative(const uri & id) - { - return id.scheme().empty(); - } ! uri::grammar::grammar(uri & uri_ref) throw (): ! uri_ref(uri_ref) {} template <typename ScannerT> ! uri::grammar::definition<ScannerT>::definition(const grammar & self) { using namespace boost::spirit; --- 2772,2914 ---- ! template <typename SpiritActor, typename Iterator1, typename Iterator2> ! class assign_iterators_base { ! SpiritActor actor_; ! Iterator1 begin_; ! Iterator2 end_; ! ! public: ! typedef assign_iterators_base<SpiritActor, Iterator1, Iterator2> ! this_type; ! ! assign_iterators_base(const SpiritActor & actor, ! const Iterator1 & begin, ! const Iterator2 & end): ! actor_(actor), ! begin_(begin), ! end_(end) ! {} ! ! template <typename T> ! struct result { ! typedef void type; ! }; ! ! template <typename Tuple> ! typename phoenix::actor_result<this_type, Tuple>::type ! eval(Tuple) const ! { ! this->actor_(this->begin_(), this->end_()); ! } ! }; ! ! template <typename SpiritActor, typename Iterator1, typename Iterator2> ! phoenix::actor<assign_iterators_base<SpiritActor, Iterator1, Iterator2> > ! assign_iterators(const SpiritActor & actor, ! const Iterator1 & begin, ! const Iterator2 & end) ! { ! return assign_iterators_base<SpiritActor, Iterator1, Iterator2>(actor, ! begin, ! end); ! } ! ! class OPENVRML_LOCAL null_actions { ! public: ! struct null_action { ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! {} ! }; ! ! null_action scheme, scheme_specific_part, userinfo, host, port, ! authority, path, query, fragment; ! }; ! ! template <typename Actions = null_actions> ! struct uri_grammar : public boost::spirit::grammar<uri_grammar<Actions> > { ! ! template <typename ScannerT> ! struct definition { struct absolute_uri_closure : boost::spirit::closure<absolute_uri_closure, ! typename ScannerT::iterator_t, ! typename ScannerT::iterator_t> { ! typename absolute_uri_closure::member1 scheme_begin; ! typename absolute_uri_closure::member2 scheme_end; }; struct server_closure : boost::spirit::closure<server_closure, ! typename ScannerT::iterator_t, ! typename ScannerT::iterator_t> { ! typename server_closure::member1 userinfo_begin; ! typename server_closure::member2 userinfo_end; }; ! typedef boost::spirit::rule<ScannerT> rule_type; ! typedef boost::spirit::rule< ! ScannerT, ! typename absolute_uri_closure::context_t> ! absolute_uri_rule_type; ! typedef boost::spirit::rule<ScannerT, ! typename server_closure::context_t> ! server_rule_type; ! rule_type uri_reference; ! absolute_uri_rule_type absolute_uri; ! rule_type relative_uri; ! rule_type hier_part; ! rule_type opaque_part; ! rule_type uric_no_slash; ! rule_type net_path; ! rule_type abs_path; ! rule_type rel_path; ! rule_type rel_segment; ! rule_type scheme; ! rule_type authority; ! rule_type reg_name; ! server_rule_type server; ! rule_type userinfo; ! rule_type hostport; ! rule_type host; ! rule_type hostname; ! rule_type domainlabel; ! rule_type toplabel; ! rule_type ipv4address; ! rule_type port; ! rule_type path_segments; ! rule_type segment; ! rule_type param; ! rule_type pchar; ! rule_type query; ! rule_type fragment; ! rule_type uric; ! rule_type reserved; ! rule_type unreserved; ! rule_type mark; ! rule_type escaped; ! explicit definition(const uri_grammar & self); ! const boost::spirit::rule<ScannerT> & start() const; }; ! const Actions & actions; ! explicit uri_grammar(const Actions & actions); }; ! template <typename Actions> ! uri_grammar<Actions>::uri_grammar(const Actions & actions = Actions()): ! actions(actions) {} + template <typename Actions> template <typename ScannerT> ! uri_grammar<Actions>::definition<ScannerT>:: ! definition(const uri_grammar & self) { using namespace boost::spirit; *************** *** 2926,2931 **** BOOST_SPIRIT_DEBUG_NODE(escaped); - uri & uri_ref = self.uri_ref; - uri_reference = !(absolute_uri | relative_uri) >> !('#' >> fragment) --- 2949,2952 ---- *************** *** 2933,2945 **** absolute_uri ! = (scheme[ ! absolute_uri.scheme_begin = arg1, ! absolute_uri.scheme_end = arg2 ! ] >> ':')[ ! var(uri_ref.scheme_begin) = absolute_uri.scheme_begin, ! var(uri_ref.scheme_end) = absolute_uri.scheme_end ] >> (hier_part | opaque_part)[ ! var(uri_ref.scheme_specific_part_begin) = arg1, ! var(uri_ref.scheme_specific_part_end) = arg2 ] ; --- 2954,2968 ---- absolute_uri ! = ( ! scheme[ ! absolute_uri.scheme_begin = arg1, ! absolute_uri.scheme_end = arg2 ! ] >> ':' ! )[ ! assign_iterators(self.actions.scheme, ! absolute_uri.scheme_begin, ! absolute_uri.scheme_end) ] >> (hier_part | opaque_part)[ ! self.actions.scheme_specific_part ] ; *************** *** 2976,2990 **** abs_path ! = ('/' >> path_segments)[ ! var(uri_ref.path_begin) = arg1, ! var(uri_ref.path_end) = arg2 ! ] ; rel_path ! = (rel_segment >> !abs_path)[ ! var(uri_ref.path_begin) = arg1, ! var(uri_ref.path_end) = arg2 ! ] ; --- 2999,3007 ---- abs_path ! = ('/' >> path_segments)[ self.actions.path ] ; rel_path ! = (rel_segment >> !abs_path)[ self.actions.path ] ; *************** *** 3007,3014 **** authority ! = (server | reg_name)[ ! var(uri_ref.authority_begin) = arg1, ! var(uri_ref.authority_end) = arg2 ! ] ; --- 3024,3028 ---- authority ! = (server | reg_name)[ self.actions.authority ] ; *************** *** 3029,3038 **** server = !( ! !(userinfo[ ! server.userinfo_begin = arg1, ! server.userinfo_end = arg2 ! ] >> '@')[ ! var(uri_ref.userinfo_begin) = server.userinfo_begin, ! var(uri_ref.userinfo_end) = server.userinfo_end ] >> hostport --- 3043,3055 ---- server = !( ! !( ! userinfo[ ! server.userinfo_begin = arg1, ! server.userinfo_end = arg2 ! ] >> '@' ! )[ ! assign_iterators(self.actions.userinfo, ! server.userinfo_begin, ! server.userinfo_end) ] >> hostport *************** *** 3058,3065 **** host ! = (hostname | ipv4address)[ ! var(uri_ref.host_begin) = arg1, ! var(uri_ref.host_end) = arg2 ! ] ; --- 3075,3079 ---- host ! = (hostname | ipv4address)[ self.actions.host ] ; *************** *** 3082,3089 **** port ! = (*digit_p)[ ! var(uri_ref.port_begin) = arg1, ! var(uri_ref.port_end) = arg2 ! ] ; --- 3096,3100 ---- port ! = (*digit_p)[ self.actions.port ] ; *************** *** 3113,3127 **** query ! = (*uric)[ ! var(uri_ref.query_begin) = arg1, ! var(uri_ref.query_end) = arg2 ! ] ; fragment ! = (*uric)[ ! var(uri_ref.fragment_begin) = arg1, ! var(uri_ref.fragment_end) = arg2 ! ] ; --- 3124,3132 ---- query ! = (*uric)[ self.actions.query ] ; fragment ! = (*uric)[ self.actions.fragment ] ; *************** *** 3167,3175 **** } template <typename ScannerT> const boost::spirit::rule<ScannerT> & ! uri::grammar::definition<ScannerT>::start() const { ! return uri_reference; } --- 3172,3391 ---- } + template <typename Actions> template <typename ScannerT> const boost::spirit::rule<ScannerT> & ! uri_grammar<Actions>::definition<ScannerT>::start() const { ! return this->uri_reference; ! } ! ! class OPENVRML_LOCAL uri { ! class actions { ! uri * uri_; ! ! public: ! explicit actions(uri & uri_): ! uri_(&uri_), ! scheme(*this), ! scheme_specific_part(*this), ! authority(*this), ! userinfo(*this), ! host(*this), ! port(*this), ! path(*this), ! query(*this), ! fragment(*this) ! {} ! ! struct scheme_action { ! explicit scheme_action(actions & actions_): ! actions_(&actions_) ! {} ! ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! { ! this->actions_->uri_->scheme_begin = first; ! this->actions_->uri_->scheme_end = last; ! } ! ! private: ! actions * actions_; ! } scheme; ! ! struct scheme_specific_part_action { ! explicit scheme_specific_part_action(actions & actions_): ! actions_(&actions_) ! {} ! ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! { ! this->actions_->uri_->scheme_specific_part_begin = first; ! this->actions_->uri_->scheme_specific_part_end = last; ! } ! ! private: ! actions * actions_; ! } scheme_specific_part; ! ! struct authority_action { ! explicit authority_action(actions & actions_): ! actions_(&actions_) ! {} ! ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! { ! this->actions_->uri_->authority_begin = first; ! this->actions_->uri_->authority_end = last; ! } ! ! private: ! actions * actions_; ! } authority; ! ! struct userinfo_action { ! explicit userinfo_action(actions & actions_): ! actions_(&actions_) ! {} ! ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! { ! this->actions_->uri_->userinfo_begin = first; ! this->actions_->uri_->userinfo_end = last; ! } ! ! private: ! actions * actions_; ! } userinfo; ! ! struct host_action { ! explicit host_action(actions & actions_): ! actions_(&actions_) ! {} ! ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! { ! this->actions_->uri_->host_begin = first; ! this->actions_->uri_->host_end = last; ! } ! ! private: ! actions * actions_; ! } host; ! ! struct port_action { ! explicit port_action(actions & actions_): ! actions_(&actions_) ! {} ! ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! { ! this->actions_->uri_->port_begin = first; ! this->actions_->uri_->port_end = last; ! } ! ! private: ! actions * actions_; ! } port; ! ! struct path_action { ! explicit path_action(actions & actions_): ! actions_(&actions_) ! {} ! ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! { ! this->actions_->uri_->path_begin = first; ! this->actions_->uri_->path_end = last; ! } ! ! private: ! actions * actions_; ! } path; ! ! struct query_action { ! explicit query_action(actions & actions_): ! actions_(&actions_) ! {} ! ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! { ! this->actions_->uri_->query_begin = first; ! this->actions_->uri_->query_end = last; ! } ! ! private: ! actions * actions_; ! } query; ! ! struct fragment_action { ! explicit fragment_action(actions & actions_): ! actions_(&actions_) ! {} ! ! template <typename Iterator> ! void operator()(const Iterator & first, ! const Iterator & last) const ! { ! this->actions_->uri_->fragment_begin = first; ! this->actions_->uri_->fragment_end = last; ! } ! ! private: ! actions * actions_; ! } fragment; ! }; ! ! std::string str_; ! std::string::const_iterator scheme_begin, scheme_end; ! std::string::const_iterator scheme_specific_part_begin, ! scheme_specific_part_end; ! std::string::const_iterator authority_begin, authority_end; ! std::string::const_iterator userinfo_begin, userinfo_end; ! std::string::const_iterator host_begin, host_end; ! std::string::const_iterator port_begin, port_end; ! std::string::const_iterator path_begin, path_end; ! std::string::const_iterator query_begin, query_end; ! std::string::const_iterator fragment_begin, fragment_end; ! ! public: ! uri() throw (std::bad_alloc); ! explicit uri(const std::string & str) ! throw (openvrml::invalid_url, std::bad_alloc); ! ! operator std::string() const throw (std::bad_alloc); ! ! const std::string scheme() const throw (std::bad_alloc); ! const std::string scheme_specific_part() const throw (std::bad_alloc); ! const std::string authority() const throw (std::bad_alloc); ! const std::string userinfo() const throw (std::bad_alloc); ! const std::string host() const throw (std::bad_alloc); ! const std::string port() const throw (std::bad_alloc); ! const std::string path() const throw (std::bad_alloc); ! const std::string query() const throw (std::bad_alloc); ! const std::string fragment() const throw (std::bad_alloc); ! ! const uri resolve_against(const uri & absolute_uri) const ! throw (std::bad_alloc); ! }; ! ! inline bool relative(const uri & id) ! { ! return id.scheme().empty(); } *************** *** 3184,3188 **** using namespace boost::spirit; ! grammar g(*this); string::const_iterator begin = this->str_.begin(); --- 3400,3405 ---- using namespace boost::spirit; ! actions a(*this); ! uri_grammar<actions> g(a); string::const_iterator begin = this->str_.begin(); |
From: Braden M. <br...@us...> - 2005-12-30 06:47:37
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26722 Modified Files: ChangeLog Log Message: Made URI grammar parameterized with a struct defining semantic actions. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1095 retrieving revision 1.1096 diff -C2 -d -r1.1095 -r1.1096 *** ChangeLog 30 Dec 2005 05:13:08 -0000 1.1095 --- ChangeLog 30 Dec 2005 06:47:29 -0000 1.1096 *************** *** 1,4 **** --- 1,21 ---- 2005-12-30 Braden McDaniel <br...@en...> + Made URI grammar parameterized with a struct defining semantic + actions. + + * src/libopenvrml/openvrml/browser.cpp + (assign_iterators_base<SpiritActor, Iterator1, Iterator2>): Helper + class template for uri_grammar. + (assign_iterators(const SpiritActor &, const Iterator1 &, const + Iterator2 &)): Generator function for assign_iterators_base. + (null_actions): Helper class for uri_grammar. + (uri_grammar<Actions>): Spirit grammar for URIs. Moved from + uri::grammar and now parameterized with semantic actions. + (uri): Removed grammar inner class; added actions inner class to + be used as a template parameter for uri_grammar. + (uri::uri(const std::string &)): Changed to use uri_grammar. + + 2005-12-30 Braden McDaniel <br...@en...> + Added node_class_id test. |
From: Braden M. <br...@us...> - 2005-12-30 05:13:19
|
Update of /cvsroot/openvrml/openvrml/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15776/tests Modified Files: Makefile.am Added Files: node_class_id.cpp Log Message: Added node_class_id test. Index: Makefile.am =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/Makefile.am,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Makefile.am 28 Oct 2005 06:52:23 -0000 1.8 --- Makefile.am 30 Dec 2005 05:13:08 -0000 1.9 *************** *** 10,13 **** --- 10,14 ---- browser \ parse_anchor \ + node_class_id \ node_interface_set *************** *** 29,32 **** --- 30,36 ---- node_interface_set_LDFLAGS = -lboost_unit_test_framework + node_class_id_SOURCES = node_class_id.cpp + node_class_id_LDFLAGS = -lboost_unit_test_framework + parse_SOURCES = parse.cpp parse_LDADD = libtest-openvrml.la --- NEW FILE: node_class_id.cpp --- # include <boost/test/unit_test.hpp> # include <openvrml/browser.h> using namespace std; using namespace openvrml; void construct_from_urn() { node_class_id id("urn:foo:bar"); } void construct_from_url() { node_class_id id("http://example.com"); } void construct_from_url_with_fragment_id() { node_class_id id("http://example.com#Foo"); } void construct_from_relative_url() { BOOST_CHECK_THROW(node_class_id id("../foo/bar"), std::invalid_argument); } void construct_from_arbitrary_string() { BOOST_CHECK_THROW(node_class_id id("string"), std::invalid_argument); } boost::unit_test::test_suite * init_unit_test_suite(int, char * []) { using boost::unit_test::test_suite; test_suite * const suite = BOOST_TEST_SUITE("node_class_id"); suite->add(BOOST_TEST_CASE(&construct_from_urn)); suite->add(BOOST_TEST_CASE(&construct_from_url)); suite->add(BOOST_TEST_CASE(&construct_from_url_with_fragment_id)); suite->add(BOOST_TEST_CASE(&construct_from_relative_url)); suite->add(BOOST_TEST_CASE(&construct_from_arbitrary_string)); return suite; } |
From: Braden M. <br...@us...> - 2005-12-30 05:13:16
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15776 Modified Files: ChangeLog Log Message: Added node_class_id test. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1094 retrieving revision 1.1095 diff -C2 -d -r1.1094 -r1.1095 *** ChangeLog 30 Dec 2005 05:11:01 -0000 1.1094 --- ChangeLog 30 Dec 2005 05:13:08 -0000 1.1095 *************** *** 1,4 **** --- 1,12 ---- 2005-12-30 Braden McDaniel <br...@en...> + Added node_class_id test. + + * tests/Makefile.am: Added node_class_id test. + * tests/node_class_id.cpp: Added file; test suite for + openvrml::node_class_id. + + 2005-12-30 Braden McDaniel <br...@en...> + * tests/test_browser.cpp (test_browser::do_get_resource(const std::string &): Changed |
From: Braden M. <br...@us...> - 2005-12-30 05:11:15
|
Update of /cvsroot/openvrml/openvrml/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15428/tests Modified Files: test_browser.cpp Log Message: Changed file_resource_istream to override the private virtual functions of openvrml::resource_istream. Index: test_browser.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/tests/test_browser.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** test_browser.cpp 28 Oct 2005 04:17:02 -0000 1.2 --- test_browser.cpp 30 Dec 2005 05:11:01 -0000 1.3 *************** *** 50,64 **** } ! virtual const std::string url() const throw () { return this->url_; } ! virtual const std::string type() const throw () { return "application/octet-stream"; } ! virtual bool data_available() const throw () { return !!(*this); --- 50,65 ---- } ! private: ! virtual const std::string do_url() const throw () { return this->url_; } ! virtual const std::string do_type() const throw () { return "application/octet-stream"; } ! virtual bool do_data_available() const throw () { return !!(*this); |
From: Braden M. <br...@us...> - 2005-12-30 05:11:15
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15428 Modified Files: ChangeLog Log Message: Changed file_resource_istream to override the private virtual functions of openvrml::resource_istream. Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1093 retrieving revision 1.1094 diff -C2 -d -r1.1093 -r1.1094 *** ChangeLog 21 Dec 2005 04:12:29 -0000 1.1093 --- ChangeLog 30 Dec 2005 05:11:01 -0000 1.1094 *************** *** 1,2 **** --- 1,9 ---- + 2005-12-30 Braden McDaniel <br...@en...> + + * tests/test_browser.cpp + (test_browser::do_get_resource(const std::string &): Changed + file_resource_istream to override the private virtual functions of + openvrml::resource_istream. + 2005-12-20 Braden McDaniel <br...@en...> |
From: Braden M. <br...@us...> - 2005-12-21 04:12:38
|
Update of /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31054/src/libopenvrml/openvrml Modified Files: vrml97node.cpp Log Message: Change self_t back to a typedef; rather than "using" the typedef from openvrml::node_impl_util::abstract_node<Derived>. gcc didn't identify self_t as a type when importing it with "using". Index: vrml97node.cpp =================================================================== RCS file: /cvsroot/openvrml/openvrml/src/libopenvrml/openvrml/vrml97node.cpp,v retrieving revision 1.93 retrieving revision 1.94 diff -C2 -d -r1.93 -r1.94 *** vrml97node.cpp 20 Dec 2005 21:31:22 -0000 1.93 --- vrml97node.cpp 21 Dec 2005 04:12:29 -0000 1.94 *************** *** 1626,1630 **** public virtual grouping_node { protected: ! using abstract_node<Derived>::self_t; class add_children_listener : --- 1626,1630 ---- public virtual grouping_node { protected: ! typedef Derived self_t; class add_children_listener : |
From: Braden M. <br...@us...> - 2005-12-21 04:12:37
|
Update of /cvsroot/openvrml/openvrml In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31054 Modified Files: ChangeLog Log Message: Change self_t back to a typedef; rather than "using" the typedef from openvrml::node_impl_util::abstract_node<Derived>. gcc didn't identify self_t as a type when importing it with "using". Index: ChangeLog =================================================================== RCS file: /cvsroot/openvrml/openvrml/ChangeLog,v retrieving revision 1.1092 retrieving revision 1.1093 diff -C2 -d -r1.1092 -r1.1093 *** ChangeLog 20 Dec 2005 21:31:21 -0000 1.1092 --- ChangeLog 21 Dec 2005 04:12:29 -0000 1.1093 *************** *** 2,5 **** --- 2,13 ---- * src/libopenvrml/openvrml/vrml97node.cpp + (grouping_node_base<Derived>): Change self_t back to a typedef; + rather than "using" the typedef from + openvrml::node_impl_util::abstract_node<Derived>. gcc didn't + identify self_t as a type when importing it with "using". + + 2005-12-20 Braden McDaniel <br...@en...> + + * src/libopenvrml/openvrml/vrml97node.cpp (grouping_node_base<Derived>): Made self_t protected. |