aboutsummaryrefslogtreecommitdiff
path: root/devel
diff options
context:
space:
mode:
authorAlan Eldridge <alane@FreeBSD.org>2003-01-01 15:55:58 +0000
committerAlan Eldridge <alane@FreeBSD.org>2003-01-01 15:55:58 +0000
commitf90cbac5e780de37b2568b5e8cfc35f11e1ee320 (patch)
tree64c97e01edaf3064b3ac43d34208888f0e3adcec /devel
parentacc65d3fdad8e2051fed427c08968fc0b8ca1e69 (diff)
downloadports-f90cbac5e780de37b2568b5e8cfc35f11e1ee320.tar.gz
ports-f90cbac5e780de37b2568b5e8cfc35f11e1ee320.zip
Notes
Diffstat (limited to 'devel')
-rw-r--r--devel/Makefile1
-rw-r--r--devel/kaptain/Makefile26
-rw-r--r--devel/kaptain/distinfo1
-rw-r--r--devel/kaptain/files/CREDITS21
-rw-r--r--devel/kaptain/files/patch-examples-dia2code.kaptn41
-rw-r--r--devel/kaptain/files/patch-kaptain-communication.cpp20
-rw-r--r--devel/kaptain/files/patch-kaptain-communication.h37
-rw-r--r--devel/kaptain/files/patch-kaptain-grammar.cpp11
-rw-r--r--devel/kaptain/files/patch-kaptain-grammar.h207
-rw-r--r--devel/kaptain/files/patch-kaptain-intermediate.cpp11
-rw-r--r--devel/kaptain/files/patch-kaptain-intermediate.h10
-rw-r--r--devel/kaptain/files/patch-kaptain-kaptain.h10
-rw-r--r--devel/kaptain/files/patch-kaptain-lexer.cpp95
-rw-r--r--devel/kaptain/files/patch-kaptain-parser.cpp11
-rw-r--r--devel/kaptain/files/patch-kaptain-parser.h23
-rw-r--r--devel/kaptain/files/patch-kaptain-process.cpp10
-rw-r--r--devel/kaptain/files/patch-kaptain-process.h20
-rw-r--r--devel/kaptain/files/patch-kaptain-tools.cpp13
-rw-r--r--devel/kaptain/files/patch-kaptain-tools.h57
-rw-r--r--devel/kaptain/maninfo.mk1
-rw-r--r--devel/kaptain/pkg-comment1
-rw-r--r--devel/kaptain/pkg-descr7
-rw-r--r--devel/kaptain/pkg-plist37
23 files changed, 671 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index 8b0b72345ac5..0d5c9d3048d7 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -259,6 +259,7 @@
SUBDIR += ixlib
SUBDIR += jakarta-ant
SUBDIR += jam
+ SUBDIR += kaptain
SUBDIR += kdbg
SUBDIR += kdesdk3
SUBDIR += kdevelop
diff --git a/devel/kaptain/Makefile b/devel/kaptain/Makefile
new file mode 100644
index 000000000000..6f00e3facb92
--- /dev/null
+++ b/devel/kaptain/Makefile
@@ -0,0 +1,26 @@
+# ex:ts=8
+#
+# New ports collection makefile for: kaptain
+# Date created: 2002-12-12
+# Whom: Alan Eldridge <alane@freebsd.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= kaptain
+PORTVERSION= 0.7
+#PORTEPOCH=
+CATEGORIES= devel
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
+MASTER_SITE_SUBDIR= ${PORTNAME}
+
+MAINTAINER= alane@FreeBSD.org
+
+USE_QT_VER= 3
+GNU_CONFIGURE= yes
+USE_GMAKE= yes
+CONFIGURE_ARGS+=--enable-mt
+
+.include "${.CURDIR}/maninfo.mk"
+.include <bsd.port.mk>
+#EOF
diff --git a/devel/kaptain/distinfo b/devel/kaptain/distinfo
new file mode 100644
index 000000000000..b0cbfd51804a
--- /dev/null
+++ b/devel/kaptain/distinfo
@@ -0,0 +1 @@
+MD5 (kaptain-0.7.tar.gz) = 83c9c7428a0dd454b5c4fa2ae7619510
diff --git a/devel/kaptain/files/CREDITS b/devel/kaptain/files/CREDITS
new file mode 100644
index 000000000000..24c79526f88a
--- /dev/null
+++ b/devel/kaptain/files/CREDITS
@@ -0,0 +1,21 @@
+Thanks to:
+
+David Holm <david@realityrift.com>
+
+who graciously supplied these patches to bring the dia2code example up to
+date, and enable kaptain to compile and run correctly on CURRENT:
+
+patch-examples-dia2code.kaptn
+patch-kaptain-communication.cpp
+patch-kaptain-communication.h
+patch-kaptain-grammar.cpp
+patch-kaptain-grammar.h
+patch-kaptain-intermediate.cpp
+patch-kaptain-intermediate.h
+patch-kaptain-lexer.cpp
+patch-kaptain-parser.cpp
+patch-kaptain-parser.h
+patch-kaptain-process.cpp
+patch-kaptain-process.h
+patch-kaptain-tools.cpp
+patch-kaptain-tools.h
diff --git a/devel/kaptain/files/patch-examples-dia2code.kaptn b/devel/kaptain/files/patch-examples-dia2code.kaptn
new file mode 100644
index 000000000000..acddf898b5b3
--- /dev/null
+++ b/devel/kaptain/files/patch-examples-dia2code.kaptn
@@ -0,0 +1,41 @@
+--- examples/dia2code.kaptn.orig Sat Nov 17 00:11:04 2001
++++ examples/dia2code.kaptn Fri Dec 20 13:17:45 2002
+@@ -1,17 +1,20 @@
+-#!/usr/bin/kaptain
++#!/usr/local/bin/kaptain
+ start "Dia2Code" -> dia2code buttons;
+ dia2code :tabbed -> main about;
+
+-main "Dia2Code" -> "dia2code" language outdir classlist mask noclobber " " diagramfile;
++main "Dia2Code" -> "dia2code" language outdir classlist mask noclobber licensefile " " diagramfile;
+
+-language "Output Language" -> " -t " outlanguage;
+-outlanguage :double :horizontal -> ada | c | ! cpp | java | python | sql ;
++language "Output Language" -> " -t " outlanguage ;
++outlanguage :double :horizontal -> ada | c | ! cpp | idl | java | php | python | shp | sql ;
+ c "C" -> "c";
+ cpp "C++" -> "cpp";
+ java "Java" -> "java";
+ ada "Ada" -> "ada";
+ python "Python" -> "python";
+ sql "SQL" -> "sql";
++shp "SHP" -> "shp";
++php "PHP" -> "php";
++idl "IDL" -> "idl";
+
+ outdir "Output Dir" -> " -d " @directory=`pwd`;
+
+@@ -22,10 +25,12 @@
+ noclobber "Don't overwrite existing files" -> @ | " -nc";
+ yesclobber -> "";
+
++licensefile "License File" -> @ | " -l " @infile("*");
++
+ diagramfile "Diagram File" -> @infile("*.dia");
+
+ buttons :horizontal -> @action(dia2code)="Go" @preview(dia2code)="Preview Command" @close="Quit" ;
+
+-about "About" -> @text("Kaptain grammar for Dia2Code\n\nVersion 1.0\n(c) 2001 Javier O'Hara\n<joh314@users.sourceforge.net>\n\nDia2Code homepage:\nhttp://dia2code.sourceforge.net");
++about "About" -> @text("Kaptain grammar for Dia2Code\n\nVersion 1.2\n(c) 2001 Javier O'Hara\n<joh314@users.sourceforge.net>\n\nDia2Code homepage:\nhttp://dia2code.sourceforge.net");
+
+ classlist="" "Generates code only for the classes specified\nin this comma-separated list";
diff --git a/devel/kaptain/files/patch-kaptain-communication.cpp b/devel/kaptain/files/patch-kaptain-communication.cpp
new file mode 100644
index 000000000000..5e78e3a89641
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-communication.cpp
@@ -0,0 +1,20 @@
+--- kaptain/communication.cpp.orig Wed Aug 14 12:13:13 2002
++++ kaptain/communication.cpp Fri Dec 20 16:14:31 2002
+@@ -8,7 +8,7 @@
+ #include <sys/stat.h>
+ #include <netdb.h>
+ #include <fcntl.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <sstream>
+ #include "global.h"
+ #include "tools.h"
+@@ -16,6 +16,8 @@
+ #include "grammar.h"
+
+ #define NO_MORE_IO "At most one i/o channel is allowed.\n"
++
++using namespace std;
+
+ extern Grammar * yygrammar;
+
diff --git a/devel/kaptain/files/patch-kaptain-communication.h b/devel/kaptain/files/patch-kaptain-communication.h
new file mode 100644
index 000000000000..3af0956d9af3
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-communication.h
@@ -0,0 +1,37 @@
+--- kaptain/communication.h.orig Sat Mar 2 19:56:32 2002
++++ kaptain/communication.h Fri Dec 20 16:14:31 2002
+@@ -12,7 +12,7 @@
+ QSocketNotifier * reader;
+ bool ok;
+ bool input, output;
+- string message; // buffer
++ std::string message; // buffer
+
+ public:
+ Communicator();
+@@ -21,19 +21,19 @@
+ bool is_stdin();
+
+ bool setup_stdio();
+- bool setup_progio(string);
+- bool setup_socket_server(string);
+- bool setup_socket_client(string);
++ bool setup_progio(std::string);
++ bool setup_socket_server(std::string);
++ bool setup_socket_client(std::string);
+
+ bool setup_stdin();
+ bool setup_stdout();
+- bool setup_filein(string);
+- bool setup_fileout(string);
++ bool setup_filein(std::string);
++ bool setup_fileout(std::string);
+
+ void no_input() {input=false;}
+ void no_output() {output=false;}
+
+- void send(string);
++ void send(std::string);
+
+ public slots:
+ void data_arrived(int);
diff --git a/devel/kaptain/files/patch-kaptain-grammar.cpp b/devel/kaptain/files/patch-kaptain-grammar.cpp
new file mode 100644
index 000000000000..3413eb920a7e
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-grammar.cpp
@@ -0,0 +1,11 @@
+--- kaptain/grammar.cpp.orig Wed Aug 14 12:13:38 2002
++++ kaptain/grammar.cpp Fri Dec 20 16:14:31 2002
+@@ -878,7 +878,7 @@
+ }
+
+
+-void Rule::send(string message, bool prefix_sender=true)
++void Rule::send(string message, bool prefix_sender)
+ {
+ string total;
+ if (prefix_sender)
diff --git a/devel/kaptain/files/patch-kaptain-grammar.h b/devel/kaptain/files/patch-kaptain-grammar.h
new file mode 100644
index 000000000000..10d95979097f
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-grammar.h
@@ -0,0 +1,207 @@
+--- kaptain/grammar.h.orig Wed Aug 14 12:17:49 2002
++++ kaptain/grammar.h Fri Dec 20 16:14:31 2002
+@@ -6,7 +6,6 @@
+ #include <string>
+ #include <map>
+
+-using namespace std;
+
+ class Grammar;
+ class Rule;
+@@ -33,12 +32,12 @@
+ friend class Intermediate;
+
+ Grammar * grammar;
+- list<string *> * modifiers;
+- string textinfo[3];
++ std::list<std::string *> * modifiers;
++ std::string textinfo[3];
+ int nonterminal;
+
+ public:
+- Description(Grammar *, string *, list<string *> *, string **);
++ Description(Grammar *, std::string *, std::list<std::string *> *, std::string **);
+ ~Description();
+ };
+
+@@ -54,18 +53,18 @@
+ Grammar * grammar;
+ int type;
+ int value;
+- string data;
+- string data2;
++ std::string data;
++ std::string data2;
+
+ public:
+ Parameter(Grammar *);
+
+ void set_numeral(int);
+- void set_string(string *);
+- void set_nonterminal(string *);
+- void set_regexp(string *);
+- void set_substitution(string **);
+- void set_transliteration(string **);
++ void set_string(std::string *);
++ void set_nonterminal(std::string *);
++ void set_regexp(std::string *);
++ void set_substitution(std::string **);
++ void set_transliteration(std::string **);
+
+ };
+
+@@ -75,18 +74,18 @@
+ {
+ /* Broker of string<->int transformations */
+
+- vector<string> nonterminal_table;
+- vector<string> terminal_table;
++ std::vector<std::string> nonterminal_table;
++ std::vector<std::string> terminal_table;
+
+ public:
+
+ Broker();
+ ~Broker();
+
+- int get_nonterminal(string *); /* returns the number of a nonterminal */
+- int get_terminal(string *); /* returns the number of a terminal */
++ int get_nonterminal(std::string *); /* returns the number of a nonterminal */
++ int get_terminal(std::string *); /* returns the number of a terminal */
+
+- string get_string(int); /* returns the name of a nonterminal
++ std::string get_string(int); /* returns the name of a nonterminal
+ or the value of a terminal */
+
+ int get_nt_num() { return nonterminal_table.size(); }
+@@ -103,22 +102,22 @@
+
+ Grammar * grammar;
+
+- list<int> symbols;
++ std::list<int> symbols;
+ bool is_default;
+
+ public:
+ Conjunction(Grammar *);
+ ~Conjunction();
+
+- void add_nonterminal(string *);
+- void add_terminal(string *);
++ void add_nonterminal(std::string *);
++ void add_terminal(std::string *);
+
+ void set_default();
+ bool get_default() { return is_default; }
+
+- void add_special(string *, list<Parameter *> *, Parameter *);
++ void add_special(std::string *, std::list<Parameter *> *, Parameter *);
+
+- string evaluate(bool);
++ std::string evaluate(bool);
+
+ };
+
+@@ -132,7 +131,7 @@
+
+ Grammar * grammar;
+
+- list<Conjunction *> conjunctions;
++ std::list<Conjunction *> conjunctions;
+ int default_num;
+
+ public:
+@@ -158,17 +157,17 @@
+ Disjunction * disjunction; /* the right hand side */
+
+ int type; /* special(>0) or normal(0) */
+- string special_type;
+- list<Parameter *> * parameters; /* parameter list */
++ std::string special_type;
++ std::list<Parameter *> * parameters; /* parameter list */
+ Parameter * initvalue;
+- list<string *> * modifiers;
++ std::list<std::string *> * modifiers;
+ int mods; /* modifier bits */
+
+ /* textual information for the rule */
+- string textinfo[3];
++ std::string textinfo[3];
+
+ /* transformations for the rule */
+- list<Parameter *> * transformations;
++ std::list<Parameter *> * transformations;
+
+ Intermediate * my_intermediate;
+
+@@ -177,12 +176,12 @@
+ Rule(Grammar *);
+ ~Rule();
+
+- void set_left(string *);
++ void set_left(std::string *);
+ void set_disjunction(Disjunction *);
+- void set_special(string *, list<Parameter *> *, Parameter *);
+- void add_modifiers(list<string *> *);
+- void set_textinfo(string ** ti);
+- void set_transformations(list<Parameter *> *);
++ void set_special(std::string *, std::list<Parameter *> *, Parameter *);
++ void add_modifiers(std::list<std::string *> *);
++ void set_textinfo(std::string ** ti);
++ void set_transformations(std::list<Parameter *> *);
+
+ int get_left() { return left; }
+ Intermediate * get_intermediate() { return my_intermediate; }
+@@ -191,10 +190,10 @@
+
+ void verify_rule();
+
+- string evaluate(bool);
++ std::string evaluate(bool);
+
+- void send(string message, bool prefix_sender=true);
+- void recieve(char, string);
++ void send(std::string message, bool prefix_sender=true);
++ void recieve(char, std::string);
+
+ };
+
+@@ -204,9 +203,9 @@
+ {
+ friend class Intermediate;
+
+- list<Rule *> rules;
+- multimap<int, int> constraints;
+- list<Description *> descriptions;
++ std::list<Rule *> rules;
++ std::multimap<int, int> constraints;
++ std::list<Description *> descriptions;
+ Rule * start_rule;
+
+ public:
+@@ -217,8 +216,8 @@
+ bool was_default_widget_done; // global variable for a Kaptain tree
+
+ void add_rule(Rule *);
+- void add_description(string *, list<string *> *, string **);
+- void add_constraint(string *, string *);
++ void add_description(std::string *, std::list<std::string *> *, std::string **);
++ void add_constraint(std::string *, std::string *);
+
+ Rule * get_rule(int);
+ Rule * get_start_rule() { return start_rule; }
+@@ -234,11 +233,11 @@
+ void unify_rules();
+ void unify_descriptions();
+
+- string evaluate_nonterminal(int, bool);
++ std::string evaluate_nonterminal(int, bool);
+ int get_constraint_for(int);
+
+- void send(string);
+- void recieve(string);
++ void send(std::string);
++ void recieve(std::string);
+ };
+
+
diff --git a/devel/kaptain/files/patch-kaptain-intermediate.cpp b/devel/kaptain/files/patch-kaptain-intermediate.cpp
new file mode 100644
index 000000000000..427e2ec2fb31
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-intermediate.cpp
@@ -0,0 +1,11 @@
+--- kaptain/intermediate.cpp.orig Wed Aug 14 12:14:52 2002
++++ kaptain/intermediate.cpp Fri Dec 20 16:14:31 2002
+@@ -552,7 +552,7 @@
+
+
+
+-void Intermediate::send(string message, char separ=':')
++void Intermediate::send(string message, char separ)
+ {
+ if (is_special() && father)
+ /* send throuh SPEC's father */
diff --git a/devel/kaptain/files/patch-kaptain-intermediate.h b/devel/kaptain/files/patch-kaptain-intermediate.h
new file mode 100644
index 000000000000..b69fc37a2e8e
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-intermediate.h
@@ -0,0 +1,10 @@
+--- kaptain/intermediate.h.orig Wed Aug 14 12:14:40 2002
++++ kaptain/intermediate.h Fri Dec 20 16:14:31 2002
+@@ -3,6 +3,7 @@
+
+ #include <list>
+ #include <string>
++#include <iostream>
+
+ using namespace std;
+
diff --git a/devel/kaptain/files/patch-kaptain-kaptain.h b/devel/kaptain/files/patch-kaptain-kaptain.h
new file mode 100644
index 000000000000..0d26c9ec01e3
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-kaptain.h
@@ -0,0 +1,10 @@
+--- kaptain/kaptain.h.orig Wed Aug 14 06:15:09 2002
++++ kaptain/kaptain.h Thu Dec 12 19:20:47 2002
+@@ -18,6 +18,7 @@
+ #include <qvalidator.h>
+ #include <qmultilineedit.h>
+ #include <qwizard.h>
++#include <sys/types.h>
+ #include <regex.h>
+ #include <string>
+ #include <list>
diff --git a/devel/kaptain/files/patch-kaptain-lexer.cpp b/devel/kaptain/files/patch-kaptain-lexer.cpp
new file mode 100644
index 000000000000..e1d28d9cae67
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-lexer.cpp
@@ -0,0 +1,95 @@
+--- kaptain/lexer.cpp.orig Wed Aug 14 14:25:07 2002
++++ kaptain/lexer.cpp Fri Dec 20 16:14:31 2002
+@@ -559,7 +559,7 @@
+ int rarrow_lineno=0, larrow_lineno=0,
+ nonterminal_lineno=0, last_correct_lineno=0;
+ char quoting, first_char;
+-bool exception(int e);
++bool myexception(int e);
+ string safe_getenv(char *);
+ #define DOUBLE_QUOTES 1
+ #define SINGLE_QUOTES 2
+@@ -921,7 +921,7 @@
+ case 16:
+ YY_RULE_SETUP
+ #line 54 "lexer.lpp"
+-{ if (exception(1)) return ERROR; }
++{ if (myexception(1)) return ERROR; }
+ YY_BREAK
+ case 17:
+ YY_RULE_SETUP
+@@ -960,7 +960,7 @@
+ case 23:
+ YY_RULE_SETUP
+ #line 67 "lexer.lpp"
+-{ exception(1); return ERROR; }
++{ myexception(1); return ERROR; }
+ YY_BREAK
+ case 24:
+ YY_RULE_SETUP
+@@ -990,7 +990,7 @@
+ case 28:
+ YY_RULE_SETUP
+ #line 79 "lexer.lpp"
+-{ exception(1); return ERROR; }
++{ myexception(1); return ERROR; }
+ YY_BREAK
+ case 29:
+ YY_RULE_SETUP
+@@ -1037,7 +1037,7 @@
+ case 34:
+ YY_RULE_SETUP
+ #line 101 "lexer.lpp"
+-{ exception(1); return ERROR; }
++{ myexception(1); return ERROR; }
+ YY_BREAK
+ case 35:
+ *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
+@@ -1069,7 +1069,7 @@
+ case 38:
+ YY_RULE_SETUP
+ #line 116 "lexer.lpp"
+-{ exception(2); return ERROR; }
++{ myexception(2); return ERROR; }
+ YY_BREAK
+ case 39:
+ *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
+@@ -1115,12 +1115,12 @@
+ case 43:
+ YY_RULE_SETUP
+ #line 141 "lexer.lpp"
+-{ exception(3); return ERROR; }
++{ myexception(3); return ERROR; }
+ YY_BREAK
+ case 44:
+ YY_RULE_SETUP
+ #line 142 "lexer.lpp"
+-{ exception(3); return ERROR; }
++{ myexception(3); return ERROR; }
+ YY_BREAK
+ case 45:
+ YY_RULE_SETUP
+@@ -1188,12 +1188,12 @@
+ case 50:
+ YY_RULE_SETUP
+ #line 186 "lexer.lpp"
+-{ exception(4); return ERROR; }
++{ myexception(4); return ERROR; }
+ YY_BREAK
+ case 51:
+ YY_RULE_SETUP
+ #line 187 "lexer.lpp"
+-{ exception(4); return ERROR; }
++{ myexception(4); return ERROR; }
+ YY_BREAK
+ case 52:
+ YY_RULE_SETUP
+@@ -2142,7 +2142,7 @@
+ extern Grammar * yygrammar;
+
+
+-bool exception(int e)
++bool myexception(int e)
+ {
+ ostringstream message;
+ string s;
diff --git a/devel/kaptain/files/patch-kaptain-parser.cpp b/devel/kaptain/files/patch-kaptain-parser.cpp
new file mode 100644
index 000000000000..a4be0633dc7c
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-parser.cpp
@@ -0,0 +1,11 @@
+--- kaptain/parser.cpp.orig Wed Aug 14 13:00:21 2002
++++ kaptain/parser.cpp Fri Dec 20 16:14:31 2002
+@@ -18,7 +18,7 @@
+ #line 1 "parser.ypp"
+
+ #include <stdlib.h>
+-#include <iostream.h>
++#include <iostream>
+ #include <string>
+ #include <list>
+ #include "grammar.h"
diff --git a/devel/kaptain/files/patch-kaptain-parser.h b/devel/kaptain/files/patch-kaptain-parser.h
new file mode 100644
index 000000000000..6332e5e3d2ac
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-parser.h
@@ -0,0 +1,23 @@
+--- kaptain/parser.h.orig Wed Aug 14 12:26:33 2002
++++ kaptain/parser.h Fri Dec 20 16:14:31 2002
+@@ -5,15 +5,15 @@
+ typedef union
+ {
+ int integer;
+- string * pstring;
++ std::string * pstring;
+ Rule * prule;
+ Disjunction * pdisjunction;
+ Conjunction * pconjunction;
+ Parameter * pparameter;
+- list<Parameter *> * pparamlist;
+- string * string_array[3];
+- list<string *> * pstringlist;
+- list<Parameter *> * ptrafolist;
++ std::list<Parameter *> * pparamlist;
++ std::string * string_array[3];
++ std::list<std::string *> * pstringlist;
++ std::list<Parameter *> * ptrafolist;
+ } yystype;
+ # define YYSTYPE yystype
+ # define YYSTYPE_IS_TRIVIAL 1
diff --git a/devel/kaptain/files/patch-kaptain-process.cpp b/devel/kaptain/files/patch-kaptain-process.cpp
new file mode 100644
index 000000000000..b61bc8487570
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-process.cpp
@@ -0,0 +1,10 @@
+--- kaptain/process.cpp.orig Wed Aug 14 12:17:25 2002
++++ kaptain/process.cpp Fri Dec 20 16:14:31 2002
+@@ -8,6 +8,7 @@
+
+ /* ---------------------------------------------------------------------- */
+
++using namespace std;
+
+ void clean_up_child_process(int s)
+ {
diff --git a/devel/kaptain/files/patch-kaptain-process.h b/devel/kaptain/files/patch-kaptain-process.h
new file mode 100644
index 000000000000..758619a9a1b8
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-process.h
@@ -0,0 +1,20 @@
+--- kaptain/process.h.orig Wed Aug 14 12:17:20 2002
++++ kaptain/process.h Fri Dec 20 16:14:31 2002
+@@ -3,13 +3,13 @@
+
+ #include <list>
+ #include <string>
++#include <iostream>
+
+-using namespace std;
+
+ void clean_up_child_process(int);
+ void POSIX_init();
+-int exec_async(list<string> &);
+-string exec_sync_stdout(string &);
+-string exec_sync_stdout(list<string> &);
++int exec_async(std::list<std::string> &);
++std::string exec_sync_stdout(std::string &);
++std::string exec_sync_stdout(std::list<std::string> &);
+
+ #endif // PROCESS_HH
diff --git a/devel/kaptain/files/patch-kaptain-tools.cpp b/devel/kaptain/files/patch-kaptain-tools.cpp
new file mode 100644
index 000000000000..3d9c3d143cb4
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-tools.cpp
@@ -0,0 +1,13 @@
+--- kaptain/tools.cpp.orig Wed Aug 14 06:17:39 2002
++++ kaptain/tools.cpp Fri Dec 20 18:53:13 2002
+@@ -1,8 +1,10 @@
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <sys/types.h>
+ #include <regex.h>
+ #include "tools.h"
+
++using namespace std;
+
+ Error::Error()
+ {
diff --git a/devel/kaptain/files/patch-kaptain-tools.h b/devel/kaptain/files/patch-kaptain-tools.h
new file mode 100644
index 000000000000..5cffb6aaee64
--- /dev/null
+++ b/devel/kaptain/files/patch-kaptain-tools.h
@@ -0,0 +1,57 @@
+--- kaptain/tools.h.orig Wed Aug 14 12:17:34 2002
++++ kaptain/tools.h Fri Dec 20 16:14:31 2002
+@@ -3,20 +3,21 @@
+
+ #include <list>
+ #include <string>
++#include <iostream>
++#include <iterator>
+
+-using namespace std;
+
+ /**********/
+ class Error
+ {
+- list<string> messages;
++ std::list<std::string> messages;
+ bool stop;
+
+ public:
+ Error();
+
+- void warning(string);
+- void error(string);
++ void warning(std::string);
++ void error(std::string);
+
+ bool go_on() { return !stop; }
+
+@@ -32,19 +33,19 @@
+ public:
+ Regexp();
+
+- static bool matches(string, string, list<string> & );
++ static bool matches(std::string, std::string, std::list<std::string> & );
+
+- static bool substitute_local(string, string, string,
+- string &, int &);
+- static void substitute(string, string, string,
+- string &, bool);
++ static bool substitute_local(std::string, std::string, std::string,
++ std::string &, int &);
++ static void substitute(std::string, std::string, std::string,
++ std::string &, bool);
+
+- static void transliterate(string, string,
+- string, string &);
++ static void transliterate(std::string, std::string,
++ std::string, std::string &);
+
+- static void split(char, string, list<string> &);
++ static void split(char, std::string, std::list<std::string> &);
+
+- static void join(char, list<string> &, string &);
++ static void join(char, std::list<std::string> &, std::string &);
+ };
+
+
diff --git a/devel/kaptain/maninfo.mk b/devel/kaptain/maninfo.mk
new file mode 100644
index 000000000000..1bbb5f38359b
--- /dev/null
+++ b/devel/kaptain/maninfo.mk
@@ -0,0 +1 @@
+MAN1+= kaptain.1
diff --git a/devel/kaptain/pkg-comment b/devel/kaptain/pkg-comment
new file mode 100644
index 000000000000..c6858440b542
--- /dev/null
+++ b/devel/kaptain/pkg-comment
@@ -0,0 +1 @@
+A tool for building/running QT GUIs for commmand line programs
diff --git a/devel/kaptain/pkg-descr b/devel/kaptain/pkg-descr
new file mode 100644
index 000000000000..1f1a17eb7cb9
--- /dev/null
+++ b/devel/kaptain/pkg-descr
@@ -0,0 +1,7 @@
+Kaptain is a tool that lets you build a GUI for a command line program
+in the form of a script. The program interprets that script to present
+the graphical interface. The built interfaces use the QT library.
+
+WWW: http://kaptain.sourceforge.net/
+
+-- AlanE <alane@freebsd.org>
diff --git a/devel/kaptain/pkg-plist b/devel/kaptain/pkg-plist
new file mode 100644
index 000000000000..7ca7e108a08d
--- /dev/null
+++ b/devel/kaptain/pkg-plist
@@ -0,0 +1,37 @@
+bin/kaptain
+info/kaptain.info
+share/kaptain/arping.kaptn
+share/kaptain/budget.kaptn
+share/kaptain/crypt.gif
+share/kaptain/crypt.kaptn
+share/kaptain/curl.kaptn
+share/kaptain/database.tgz
+share/kaptain/dia2code.kaptn
+share/kaptain/emboss.tgz
+share/kaptain/enscript.kaptn
+share/kaptain/fig1.png
+share/kaptain/find.kaptn
+share/kaptain/finger.kaptn
+share/kaptain/grep.kaptn
+share/kaptain/indent.kaptn
+share/kaptain/kaptain.html
+share/kaptain/lameGUI.kaptn
+share/kaptain/ls.kaptn
+share/kaptain/mpage.kaptn
+share/kaptain/nslookup.kaptn
+share/kaptain/old-doc.tgz
+share/kaptain/open.kaptn
+share/kaptain/ping.kaptn
+share/kaptain/povray.kaptn
+share/kaptain/procmail.kaptn
+share/kaptain/puf.tgz
+share/kaptain/record.gif
+share/kaptain/search.kaptn
+share/kaptain/tar.gif
+share/kaptain/tar.kaptn
+share/kaptain/tutorial.tgz
+share/kaptain/weblint.kaptn
+share/kaptain/wget.kaptn
+share/kaptain/whois.kaptn
+share/kaptain/zangband.kaptn
+@dirrm share/kaptain