aboutsummaryrefslogtreecommitdiff
path: root/devel/ixlib
diff options
context:
space:
mode:
Diffstat (limited to 'devel/ixlib')
-rw-r--r--devel/ixlib/Makefile14
-rw-r--r--devel/ixlib/files/patch-src::ixlib_base.hh19
-rw-r--r--devel/ixlib/files/patch-src::ixlib_javascript.hh14
-rw-r--r--devel/ixlib/files/patch-src::ixlib_re.hh11
-rw-r--r--devel/ixlib/files/patch-src::ixlib_re_impl.hh164
-rw-r--r--devel/ixlib/files/patch-src::js_interpreter.cc12
-rw-r--r--devel/ixlib/files/patch-test::javascript.cc20
7 files changed, 244 insertions, 10 deletions
diff --git a/devel/ixlib/Makefile b/devel/ixlib/Makefile
index eb9fceeb0f14..7f340a4a5a17 100644
--- a/devel/ixlib/Makefile
+++ b/devel/ixlib/Makefile
@@ -20,14 +20,8 @@ LIB_DEPENDS= intl.5:${PORTSDIR}/devel/gettext
USE_GMAKE= yes
GNU_CONFIGURE= yes
-CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \
- LDFLAGS="-L${LOCALBASE}/lib"
-INSTALLS_SHLIB= yes
+CONFIGURE_ENV= CPPFLAGS="${CFLAGS} -I${LOCALBASE}/include" \
+ LIBS="-L${LOCALBASE}/lib"
+INSTALLS_SHLIB= yes
-.include <bsd.port.pre.mk>
-
-.if ${OSVERSION} >= 500113
-BROKEN= "Does not compile (bad C++ code)"
-.endif
-
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/devel/ixlib/files/patch-src::ixlib_base.hh b/devel/ixlib/files/patch-src::ixlib_base.hh
new file mode 100644
index 000000000000..5540fd012143
--- /dev/null
+++ b/devel/ixlib/files/patch-src::ixlib_base.hh
@@ -0,0 +1,19 @@
+--- src/ixlib_base.hh.orig Fri Nov 28 11:48:47 2003
++++ src/ixlib_base.hh Fri Nov 28 12:45:22 2003
+@@ -44,11 +44,15 @@
+
+ /* STL Helper macro -----------------------------------------------------------
+ */
++#define FOREACH_T(VAR,LIST,LISTTYPE) \
++ for (typename LISTTYPE::iterator VAR = (LIST).begin(),last = (LIST).end();VAR != last;VAR++)
++#define FOREACH_CONST_T(VAR,LIST,LISTTYPE) \
++ for (typename LISTTYPE::const_iterator VAR = (LIST).begin(),last = (LIST).end();VAR != last;VAR++)
++
+ #define FOREACH(VAR,LIST,LISTTYPE) \
+ for (LISTTYPE::iterator VAR = (LIST).begin(),last = (LIST).end();VAR != last;VAR++)
+ #define FOREACH_CONST(VAR,LIST,LISTTYPE) \
+ for (LISTTYPE::const_iterator VAR = (LIST).begin(),last = (LIST).end();VAR != last;VAR++)
+-
+
+
+
diff --git a/devel/ixlib/files/patch-src::ixlib_javascript.hh b/devel/ixlib/files/patch-src::ixlib_javascript.hh
new file mode 100644
index 000000000000..74e5caa480a3
--- /dev/null
+++ b/devel/ixlib/files/patch-src::ixlib_javascript.hh
@@ -0,0 +1,14 @@
+--- src/ixlib_javascript.hh.orig Fri Nov 28 12:01:06 2003
++++ src/ixlib_javascript.hh Fri Nov 28 12:41:42 2003
+@@ -266,7 +266,11 @@
+ // (=unite with) other scopes and keeps a list of registered members
+ class list_scope : public value {
+ protected:
++#if __GNUC__ < 3
+ typedef std::hash_map<std::string,ref<value>,string_hash> member_map;
++#else
++ typedef __gnu_cxx::hash_map<std::string,ref<value>,string_hash> member_map;
++#endif
+ typedef std::vector<ref<value> > swallowed_list;
+
+ member_map MemberMap;
diff --git a/devel/ixlib/files/patch-src::ixlib_re.hh b/devel/ixlib/files/patch-src::ixlib_re.hh
new file mode 100644
index 000000000000..95c921082de0
--- /dev/null
+++ b/devel/ixlib/files/patch-src::ixlib_re.hh
@@ -0,0 +1,11 @@
+--- src/ixlib_re.hh.orig Fri Nov 28 11:46:14 2003
++++ src/ixlib_re.hh Fri Nov 28 11:53:24 2003
+@@ -163,7 +163,7 @@
+
+ struct backtrack_stack_entry {
+ TIndex Index;
+- backref_stack::rewind_info RewindInfo;
++ typename backref_stack::rewind_info RewindInfo;
+ };
+
+ public:
diff --git a/devel/ixlib/files/patch-src::ixlib_re_impl.hh b/devel/ixlib/files/patch-src::ixlib_re_impl.hh
new file mode 100644
index 000000000000..e3fc5d2599dc
--- /dev/null
+++ b/devel/ixlib/files/patch-src::ixlib_re_impl.hh
@@ -0,0 +1,164 @@
+--- src/ixlib_re_impl.hh.orig Fri Nov 28 11:43:40 2003
++++ src/ixlib_re_impl.hh Fri Nov 28 12:55:23 2003
+@@ -38,7 +38,7 @@
+
+
+ template<class T>
+-ixion::regex<T>::backref_stack::rewind_info
++typename ixion::regex<T>::backref_stack::rewind_info
+ ixion::regex<T>::backref_stack::getRewindInfo() const {
+ return Stack.size();
+ }
+@@ -65,7 +65,7 @@
+ template<class T>
+ ixion::TSize ixion::regex<T>::backref_stack::size() {
+ TSize result = 0;
+- FOREACH_CONST(first,Stack,internal_stack)
++ FOREACH_CONST_T(first,Stack,internal_stack)
+ if (first->Type == backref_entry::OPEN) result++;
+ return result;
+ }
+@@ -79,7 +79,7 @@
+ TIndex start;
+ TIndex startlevel;
+
+- internal_stack::const_iterator first = Stack.begin(),last = Stack.end();
++ typename internal_stack::const_iterator first = Stack.begin(),last = Stack.end();
+ while (first != last) {
+ if (first->Type == backref_entry::OPEN) {
+ if (number == next_index) {
+@@ -201,7 +201,7 @@
+
+
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::quantifier::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::quantifier::duplicate() const {
+ quantifier *dupe = new quantifier();
+ dupe->copy(this);
+ return dupe;
+@@ -328,7 +328,7 @@
+
+
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::sequence_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::sequence_matcher::duplicate() const {
+ sequence_matcher *dupe = new sequence_matcher(MatchStr);
+ dupe->copy(this);
+ return dupe;
+@@ -349,7 +349,7 @@
+
+ // regex::any_matcher ---------------------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::any_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::any_matcher::duplicate() const {
+ any_matcher *dupe = new any_matcher();
+ dupe->copy(this);
+ return dupe;
+@@ -360,7 +360,7 @@
+
+ // regex::start_matcher ---------------------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::start_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::start_matcher::duplicate() const {
+ start_matcher *dupe = new start_matcher();
+ dupe->copy(this);
+ return dupe;
+@@ -379,7 +379,7 @@
+
+ // regex::end_matcher ---------------------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::end_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::end_matcher::duplicate() const {
+ end_matcher *dupe = new end_matcher();
+ dupe->copy(this);
+ return dupe;
+@@ -398,7 +398,7 @@
+
+ // regex::backref_open_matcher ------------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::backref_open_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::backref_open_matcher::duplicate() const {
+ backref_open_matcher *dupe = new backref_open_matcher();
+ dupe->copy(this);
+ return dupe;
+@@ -409,7 +409,7 @@
+
+ template<class T>
+ bool ixion::regex<T>::backref_open_matcher::match(backref_stack &brstack,T const &candidate,TIndex at) {
+- backref_stack::rewind_info ri = brstack.getRewindInfo();
++ typename backref_stack::rewind_info ri = brstack.getRewindInfo();
+ brstack.open(at);
+
+ bool result = matchNext(brstack,candidate,at);
+@@ -424,7 +424,7 @@
+
+ // regex::backref_close_matcher -----------------------------------------------
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::backref_close_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::backref_close_matcher::duplicate() const {
+ backref_close_matcher *dupe = new backref_close_matcher();
+ dupe->copy(this);
+ return dupe;
+@@ -435,7 +435,7 @@
+
+ template<class T>
+ bool ixion::regex<T>::backref_close_matcher::match(backref_stack &brstack,T const &candidate,TIndex at) {
+- backref_stack::rewind_info ri = brstack.getRewindInfo();
++ typename backref_stack::rewind_info ri = brstack.getRewindInfo();
+ brstack.close(at);
+
+ bool result = matchNext(brstack,candidate,at);
+@@ -470,7 +470,7 @@
+
+
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::alternative_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::alternative_matcher::duplicate() const {
+ alternative_matcher *dupe = new alternative_matcher();
+ dupe->copy(this);
+ return dupe;
+@@ -484,7 +484,7 @@
+ TSize result = 0;
+ bool is_first = true;
+
+- FOREACH_CONST(first,AltList,alt_list)
++ FOREACH_CONST_T(first,AltList,alt_list)
+ if (is_first) {
+ result = (*first)->minimumMatchLength();
+ is_first = true;
+@@ -500,7 +500,7 @@
+
+
+ template<class T>
+-void ixion::regex<T>::alternative_matcher::setNext(matcher *next,bool ownnext = true) {
++void ixion::regex<T>::alternative_matcher::setNext(matcher *next,bool ownnext) {
+ matcher::setNext(next);
+ Connector.setNext(next,false);
+ }
+@@ -524,7 +524,7 @@
+
+ template<class T>
+ bool ixion::regex<T>::alternative_matcher::match(backref_stack &brstack,T const &candidate,TIndex at) {
+- std::vector<matcher *>::iterator first = AltList.begin(),last = AltList.end();
++ typename std::vector<matcher *>::iterator first = AltList.begin(),last = AltList.end();
+ while (first != last) {
+ if ((*first)->match(brstack,candidate,at)) {
+ MatchLength = 0;
+@@ -548,7 +548,7 @@
+ super::copy(src);
+ Connector.setNext(Next,false);
+
+- FOREACH_CONST(first,src->AltList,alt_list)
++ FOREACH_CONST_T(first,src->AltList,alt_list)
+ addAlternative((*first)->duplicate());
+ }
+
+@@ -565,7 +565,7 @@
+
+
+ template<class T>
+-ixion::regex<T>::matcher *ixion::regex<T>::backref_matcher::duplicate() const {
++typename ixion::regex<T>::matcher *ixion::regex<T>::backref_matcher::duplicate() const {
+ backref_matcher *dupe = new backref_matcher(Backref);
+ dupe->copy(this);
+ return dupe;
diff --git a/devel/ixlib/files/patch-src::js_interpreter.cc b/devel/ixlib/files/patch-src::js_interpreter.cc
new file mode 100644
index 000000000000..ffc0764868e8
--- /dev/null
+++ b/devel/ixlib/files/patch-src::js_interpreter.cc
@@ -0,0 +1,12 @@
+--- src/js_interpreter.cc.orig Fri Nov 28 12:56:09 2003
++++ src/js_interpreter.cc Fri Nov 28 12:56:47 2003
+@@ -89,8 +89,7 @@
+
+
+ // javascript_exception -------------------------------------------------------
+-javascript_exception::javascript_exception(TErrorCode error,code_location const &loc,char const *info,char *module = NULL,
+- TIndex line = 0)
++javascript_exception::javascript_exception(TErrorCode error,code_location const &loc,char const *info,char *module, TIndex line)
+ : base_exception(error, NULL, module, line, "JS") {
+ HasInfo = true;
+ try {
diff --git a/devel/ixlib/files/patch-test::javascript.cc b/devel/ixlib/files/patch-test::javascript.cc
new file mode 100644
index 000000000000..39b631d90aa9
--- /dev/null
+++ b/devel/ixlib/files/patch-test::javascript.cc
@@ -0,0 +1,20 @@
+--- test/javascript.cc.orig Fri Nov 28 12:57:33 2003
++++ test/javascript.cc Fri Nov 28 13:15:30 2003
+@@ -64,7 +64,7 @@
+
+
+ // simple call-in example -----------------------------------------------------
+-IXLIB_JS_DECLARE_FUNCTION(write) {
++IXLIB_JS_DECLARE_FUNCTION(write_) {
+ FOREACH_CONST(first,parameters,parameter_list)
+ cout << (*first)->toString();
+ return makeNull();
+@@ -99,7 +99,7 @@
+ // end complex call-in example --------------------------------------------
+
+ // simple call-in example -------------------------------------------------
+- ev = new write;
++ ev = new write_;
+ ip.RootScope->addMember("write",ev);
+ // end simple call-in example ---------------------------------------------
+