Author: enrico
Date: 2007-06-20 13:58:21 +0000 (Wed, 20 Jun 2007)
New Revision: 3018

Added:
   software/ui/src/GamesOptions.h
Removed:
   software/ui/src/GamessOptions.h
   software/ui/src/Makefile
   software/ui/src/main.cpp
   software/ui/src/main.h
Modified:
   software/ui/Makefile.am
   software/ui/src/Engine.cpp
   software/ui/src/Engine.h
   software/ui/src/Makefile.am
   software/ui/src/games.cpp
   software/ui/src/manpage.cpp
Log:
Merged Miriam's code

Modified: software/ui/Makefile.am
===================================================================
--- software/ui/Makefile.am     2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/Makefile.am     2007-06-20 13:58:21 UTC (rev 3018)
@@ -5,6 +5,6 @@
 man_MANS = games.1
 
 games.1: src/manpage
-       tools/manpage gamse > $@ || rm $@
+       src/manpage games > $@ || rm $@
 
 EXTRA_DIST = $(man_MANS)

Modified: software/ui/src/Engine.cpp
===================================================================
--- software/ui/src/Engine.cpp  2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/src/Engine.cpp  2007-06-20 13:58:21 UTC (rev 3018)
@@ -28,6 +28,8 @@
 {
        // Clear existing results
        m_results.clear();
+       m_types.clear();
+       m_interfaces.clear();
 
        Xapian::Query query;
        Xapian::Query kwquery;
@@ -109,21 +111,23 @@
                res.relevance = i.get_percent();
 
                m_results.push_back(res);
+
+               // FIXME: WRONG: the list of types and interfaces is broader 
than here,
+               // because they come out of selections that don't select 
themselves
+
+               // Get all the game and interface tags in the result set
+               set<Tag> tags = m_debtags.getTagsOfItem(res.name);
+               for (set<Tag>::const_iterator j = tags.begin();
+                               j != tags.end(); ++j)
+                       if (j->facet().name() == "game")
+                               m_types.insert(*j);
+                       else if (j->facet().name() == "interface")
+                               m_interfaces.insert(*j);
        }
 
        m_dirty = false;
 }
 
-std::vector<ept::debtags::Tag> Engine::types()
-{
-       if (m_dirty) recompute();
-}
-
-std::vector<ept::debtags::Tag> Engine::interfaces()
-{
-       if (m_dirty) recompute();
-}
-
 void Engine::setKeywordFilter(const std::string& keywords)
 {
        m_filter_keywords = keywords;

Modified: software/ui/src/Engine.h
===================================================================
--- software/ui/src/Engine.h    2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/src/Engine.h    2007-06-20 13:58:21 UTC (rev 3018)
@@ -26,6 +26,8 @@
 #include <ept/textsearch/textsearch.h>
 #include <ept/popcon/popcon.h>
 #include <string>
+#include <set>
+#include <vector>
 
 namespace ept {
 namespace apt {
@@ -66,11 +68,13 @@
        bool m_dirty;
 
        std::vector<Result> m_results;
+       std::set<ept::debtags::Tag> m_types;
+       std::set<ept::debtags::Tag> m_interfaces;
 
        void recompute();
 
 public:
-       Engine() : m_filter_state(ANY), m_dirty(false) {}
+       Engine() : m_filter_state(ANY), m_dirty(true) {}
                
        /// Access the apt data provider
        ept::apt::Apt& apt() { return m_apt; }
@@ -82,16 +86,23 @@
        ept::debtags::Vocabulary& voc() { return m_debtags.vocabulary(); }
 
        /// Get the list of available game types
-       std::vector<ept::debtags::Tag> types();
+       const std::set<ept::debtags::Tag>& types()
+       {
+               if (m_dirty) recompute();
+               return m_types;
+       }
 
        /// Get the list of available interfaces
-       std::vector<ept::debtags::Tag> interfaces();
+       const std::set<ept::debtags::Tag>& interfaces()
+       {
+               if (m_dirty) recompute();
+               return m_interfaces;
+       }
 
        /// Get the resulting list of packages
        const std::vector<Result>& results()
        {
-               if (m_dirty)
-                       recompute();
+               if (m_dirty) recompute();
                return m_results;
        }
 

Copied: software/ui/src/GamesOptions.h (from rev 3011, 
software/ui/src/GamessOptions.h)
===================================================================
--- software/ui/src/GamesOptions.h                              (rev 0)
+++ software/ui/src/GamesOptions.h      2007-06-20 13:58:21 UTC (rev 3018)
@@ -0,0 +1,52 @@
+#ifndef GAMES_OPTIONS_H
+#define GAMES_OPTIONS_H
+
+/*
+ * Commandline parser for the game viewer
+ *
+ * Copyright (C) 2003,2004,2005,2006,2007  Enrico Zini
+ * 
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <wibble/commandline/parser.h>
+
+namespace wibble {
+namespace commandline {
+
+struct GamesOptions : public StandardParserWithManpage
+{
+public:
+       BoolOption* out_debug;
+       BoolOption* out_verbose;
+
+       GamesOptions() 
+               : StandardParserWithManpage("debtags", VERSION, 1, "[EMAIL 
PROTECTED],[EMAIL PROTECTED]")
+       {
+               usage = "[options and arguments]";
+               description = "Debian game browser";
+
+               out_verbose = add<BoolOption>("verbose", 'v', "verbose", "",
+                                               "enable verbose output");
+               out_debug = add<BoolOption>("debug", 0, "debug", "",
+                                               "enable debugging output 
(including verbose output)");
+       }
+};
+
+}
+}
+
+// vim:set ts=4 sw=4:
+#endif

Deleted: software/ui/src/GamessOptions.h
===================================================================
--- software/ui/src/GamessOptions.h     2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/src/GamessOptions.h     2007-06-20 13:58:21 UTC (rev 3018)
@@ -1,243 +0,0 @@
-#ifndef DEBTAGS_OPTIONS_H
-#define DEBTAGS_OPTIONS_H
-
-/*
- * Commandline parser for tagcoll
- *
- * Copyright (C) 2003,2004,2005,2006  Enrico Zini
- * 
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#include <wibble/commandline/parser.h>
-
-namespace wibble {
-namespace commandline {
-
-struct DebtagsOptions : public StandardParserWithMandatoryCommand
-{
-public:
-       BoolOption* out_quiet;
-       BoolOption* out_verbose;
-
-       BoolOption* out_names;
-       BoolOption* out_debug;
-       BoolOption* out_facets;
-       BoolOption* out_short;
-       BoolOption* out_full;
-
-       BoolOption* match_invert;
-
-       BoolOption* misc_local;
-       BoolOption* misc_reindex;
-       IntOption* misc_distance;
-       StringOption* misc_vocfile;
-
-       BoolOption* smse_reltags;
-       BoolOption* smse_disctags;
-
-       Engine* update;
-       Engine* selfcheck;
-       Engine* check;
-       Engine* tagcat;
-       Engine* tagshow;
-       Engine* tagsearch;
-       Engine* show;
-       Engine* related;
-       Engine* cat;
-       Engine* dumpavail;
-       Engine* search;
-       Engine* grep;
-       Engine* install;
-       Engine* diff;
-       Engine* maintainers;
-       Engine* tag;
-       Engine* submit;
-       Engine* todo;
-       Engine* score;
-       Engine* stats;
-       Engine* todoreport;
-       Engine* smartsearch;
-       Engine* vocfilter;
-
-       DebtagsOptions() 
-               : StandardParserWithMandatoryCommand("debtags", VERSION, 1, 
"[EMAIL PROTECTED]")
-       {
-               usage = "<command> [options and arguments]";
-               description = "Commandline interface to access and manipulate 
Debian Package Tags";
-
-               out_verbose = add<BoolOption>("verbose", 'v', "verbose", "",
-                                               "enable verbose output");
-               out_debug = add<BoolOption>("debug", 0, "debug", "",
-                                               "enable debugging output 
(including verbose output)");
-
-               // Create the collection output group
-               OptionGroup* collOutputOpts = createGroup("Options controlling 
transformations of tag data on output");
-               out_names = collOutputOpts->add<BoolOption>("names", 0, 
"names", "",
-                                               "output only the names of the 
packages");
-               out_quiet = collOutputOpts->add<BoolOption>("quiet", 'q', 
"quiet", "",
-                                               "do not write anything to 
standard output");
-               out_facets = collOutputOpts->add<BoolOption>("facets", 0, 
"facets", "",
-                                               "output only the names of the 
facets (mainly used for computing statistics)");
-
-               // Create the package output group
-               OptionGroup* pkgOutputOpts = createGroup("Options controlling 
transformations of package data on output");
-               pkgOutputOpts->add(out_names);
-               pkgOutputOpts->add(out_quiet);
-               out_short = pkgOutputOpts->add<BoolOption>("short", 0, "short", 
"",
-                                               "output the names of the 
packages, plus a short description");
-               out_full = pkgOutputOpts->add<BoolOption>("full", 0, "full", "",
-                                               "output the full record of 
package data");
-
-               // Create the matching options group
-               OptionGroup* matchOpts = createGroup("Options controlling 
matching of packages");
-               match_invert = matchOpts->add<BoolOption>("invert", 'i', 
"invert", "",
-                               "invert the match, selecting non-matching 
items");
-
-               update = addEngine("update", "",
-                       "updates the package tag database (requires root)",
-                       "Collect package tag data from the sources listed in "
-                       "/etc/debtags/sources.list, then regenerate the debtags 
"
-                       "tag database and main index.\n"
-                       "It needs to be run as root");
-               misc_local = update->add<BoolOption>("local", 0, "local", "",
-                       "do not download files when performing an update");
-               misc_reindex = update->add<BoolOption>("reindex", 0, "reindex", 
"",
-                       "do not download any file, just do reindexing if 
needed");
-
-               selfcheck = addEngine("selfcheck", "",
-                       "perform a series of internal self checks using the 
current tag data");
-
-               check = addEngine("check", "<file>", 
-                       "check that all the tags in the given tagged collection 
are present "
-                       "in the tag vocabulary.  Checks the main database if no 
file is "
-                       "specified");
-
-               tagcat = addEngine("tagcat", "", "output the tag vocabulary");
-
-               tagshow = addEngine("tagshow", "", 
-                       "show the vocabulary informations about a tag");
-
-               tagsearch = addEngine("tagsearch", "<string [string [string 
...]]>",
-                       "show a summary of all tags whose data contains the 
given strings");
-
-               show = addEngine("show", "<pkg>",
-                       "show informations about a package, like apt-cache show 
does, but "
-                       "adding the tag informations from the debtags index");
-
-               related = addEngine("related", "<pkg1[,pkg2[,pkg3...]]>",
-                       "show packages related to the given one(s)",
-                       "Output a list of the packages that are related to the 
given package or list of packages.  "
-                       "If more than one package are to be specified, separate 
them with commas.\n"
-                       "The --distance option can be used to control how 
closely related the output "
-                       "packages should be from the package(s) specified.");
-               related->examples = "debtags related mutt,mozilla-browser";
-               misc_distance = related->add<IntOption>("distance", 'd', 
"distance", "distance",
-                       "set the maximum distance to use for the \"related\" 
command (defaults to 0)");
-                       
-               cat = addEngine("cat", "", "output the full package tag 
database");
-               cat->add(matchOpts);
-               cat->add(collOutputOpts);
-
-               dumpavail = addEngine("dumpavail", "[tag expression]",
-                       "output the full package database");
-               dumpavail->add(matchOpts);
-               dumpavail->add(pkgOutputOpts);
-
-               search = addEngine("search", "<tag expression>",
-                       "output the names and descriptions of the packages that 
match"
-                       " the given tag expression");
-               search->add(matchOpts);
-               search->add(pkgOutputOpts);
-
-               grep = addEngine("grep", "<tag expression>",
-                       "output the lines of the full package tag database that 
match"
-                       " the given tag expression");
-               grep->add(matchOpts);
-               grep->add(collOutputOpts);
-
-               install = addEngine("install", "<tag expression>",
-                       "apt-get install the packages that match the given tag 
expression",
-                       "Invokes apt-get install with the names of the packages 
matched "
-                       "by the given tag expression.  If you want to see what 
packages "
-                       "would be installed you can use debtags search, as "
-                       "debtags install just calls apt-get install on all "
-                       "the results of an equivalent debtags search.  Please 
note "
-                       "that debtags install is just a prototype feature 
useful "
-                       "for experimenting in some environments like Custom 
Debian "
-                       "Distributions.  For this reason it is suggested that 
you "
-                       "use debtags just as a way to find packages, and "
-                       "proper package managers as the way to install them");
-               install->add(matchOpts);
-
-               diff = addEngine("diff", "[filename]",
-                       "create a tag patch between the current tag database 
and the tag"
-                       "collection [filename].  Standard input is used if 
filename is not specified");
-               diff->aliases.push_back("mkpatch");
-
-               maintainers = addEngine("maintainers", "", 
-                       "create a tagged collection of maintainers and the tags 
of the"
-                       "packages they maintain");
-               maintainers->add(collOutputOpts);
-
-               tag = addEngine("tag", "{add|rm|ls} <package> [tags...]",
-                       "view and edit the tags for a package",
-                       "General manipulation of tags, useful for automation in 
scripts.\n"
-                       "It can be used in three ways:\n"
-                       "tag add <package> <tags...> will add the tags to the 
given package\n"
-                       "tag rm <package> <tags...> will remove the tags from 
the given package\n"
-                       "tag ls <package> will output the names of the tags of 
the given package");
-
-               submit = addEngine("submit", "[patch]",
-                       "mail the given patch file to the central tag 
repository."
-                       "If [patch] is omitted, mail the local tag 
modifications.");
-
-               todo = addEngine("todo", "", 
-                       "print a list of the installed packages that are not 
yet tagged");
-               todo->add(pkgOutputOpts);
-
-               score = addEngine("score", "", 
-                       "score uninstalled packages according to how often 
their tags "
-                       "appear in the packages that are installed already");
-
-               stats = addEngine("stats", "",
-                       "print statistics about Debtags");
-
-               todoreport = addEngine("todoreport", "", 
-                       "print a report of packages needing work");
-
-               smartsearch = addEngine("smartsearch", "<word [word1 [+tag 
[-tag1 ...]]]>",
-                       "Perform a keyword search integrated with related 
packages.\n"
-                       "A + prefix indicates a wanted tag.  A - prefix 
indicates "
-                       "an unwanted tag.  Other words indicate keywords to 
search.\n"
-                       "Remember to use '--' before unwanted tags to avoid to 
have "
-                       "them interpreted as commandline switches.\n");
-               smse_reltags = smartsearch->add<BoolOption>("relevant", 0, 
"relevant", "",
-                       "only print the tag names sorted by increasing 
relevance");
-               smse_disctags = smartsearch->add<BoolOption>("discriminant", 0, 
"discriminant", "",
-                       "only print the tag names sorted by increasing 
discriminance");
-
-               vocfilter = addEngine("vocfilter", "tagfile", 
-                       "filter out the tags that are not found in the given 
vocabulary file");
-               misc_vocfile = vocfilter->add<StringOption>("vocabulary", 0, 
"vocabulary", "file",
-                       "vocabulary file to use instead of the current debtags 
vocabulary");
-       }
-};
-
-}
-}
-
-// vim:set ts=4 sw=4:
-#endif

Deleted: software/ui/src/Makefile
===================================================================
--- software/ui/src/Makefile    2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/src/Makefile    2007-06-20 13:58:21 UTC (rev 3018)
@@ -1,16 +0,0 @@
-CXXFLAGS = -ggdb -Wall -Werror 
-
-all: ui.h ui.cpp main
-
-main: main.o ui.o
-       g++ -o $@ main.o ui.o `fltk-config --ldflags`
-
-ui.h ui.cpp: ui.fld
-       fluid -c -o ui.cpp -h ui.h ui.fld
-
-.cpp.o:
-       g++ $(CXXFLAGS) `fltk-config --cxxflags` -c $< -o $@
-
-clean:
-       rm -f *.o *~
-       rm -f ui.h ui.cpp

Modified: software/ui/src/Makefile.am
===================================================================
--- software/ui/src/Makefile.am 2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/src/Makefile.am 2007-06-20 13:58:21 UTC (rev 3018)
@@ -6,12 +6,16 @@
 games_SOURCES = \
        Environment.cpp \
        Engine.cpp \
+       ui.cpp \
        games.cpp
-games_LDADD = $(LIBEPT_LIBS)
+games_LDFLAGS = $(LIBEPT_LIBS) `fltk-config --ldflags`
 
 manpage_SOURCES = manpage.cpp
 manpage_LDADD = $(LIBEPT_LIBS)
 
-INCLUDES = -I.. $(LIBEPT_CFLAGS)
+ui.h ui.cpp: ui.fld
+       fluid -c -o ui.cpp -h ui.h ui.fld
 
-EXTRA_DIST = GamesOptions.h Environment.h Engine.h
+INCLUDES = -I.. $(LIBEPT_CFLAGS) `fltk-config --cxxflags` -Wall -Werror -ggdb
+
+EXTRA_DIST = GamesOptions.h Environment.h Engine.h ui.h

Modified: software/ui/src/games.cpp
===================================================================
--- software/ui/src/games.cpp   2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/src/games.cpp   2007-06-20 13:58:21 UTC (rev 3018)
@@ -27,40 +27,21 @@
 #define PACKAGE_VERSION "unknown"
 #endif
 
-#include <tagcoll/input/stdio.h>
-#include <tagcoll/stream/filters.h>
-#include <tagcoll/expression.h>
-#include <tagcoll/TextFormat.h>
-#include <tagcoll/SmartHierarchy.h>
-#include <tagcoll/coll/simple.h>
-#include <tagcoll/utils/set.h>
-//#include <tagcoll/experiments.h>
+#include "common.h"
+#include "ui.h"
 
 #include "Environment.h"
-#include "DebtagsOptions.h"
-#include "Printer.h"
-#include "nullstream.h"
-//#include "Ept.h"
-#include "SmartSearcher.h"
+#include "GamesOptions.h"
+#include "Engine.h"
 
 #include <ept/apt/packagerecord.h>
-#include <ept/debtags/expression.h>
-#include <ept/debtags/maint/vocabularymerger.h>
-#include <ept/debtags/maint/path.h>
-#include <ept/debtags/maint/vocabularyindexer.h>
-#include <ept/debtags/maint/debtagsindexer.h>
-#if 0
-#include <ept/cache/debtags/update.h>
-//#include <apt-pkg/configuration.h>
-#endif
 
-#include <wibble/sys/fs.h>
+#include <iostream>
 
-#include <errno.h>
-#include <termios.h>
-#include <sys/ioctl.h>
-#include <sys/types.h> // umask
-#include <sys/stat.h>  // umask
+#ifdef USE_GETTEXT
+#include <libintl.h>
+#include <locale.h>
+#endif
 
 namespace std {
 
@@ -97,10 +78,43 @@
 using namespace ept::apt;
 using namespace ept::textsearch;
 
+void printResults(Engine& engine)
+{
+       const vector<Result>& packages = engine.results();
+       for (vector<Result>::const_iterator i = packages.begin();
+                       i != packages.end(); ++i)
+       {
+               PackageRecord pkg = engine.apt().rawRecord(i->name);
+               cerr << "PKG " << pkg.package() << " - " << 
pkg.shortDescription() << endl;
+       }
+
+       const set<Tag>& ttags = engine.types();
+       for (set<Tag>::const_iterator i = ttags.begin();
+                       i != ttags.end(); ++i)
+       {
+               cerr << "TTAG " << i->fullname() << endl;
+       }
+
+       const set<Tag>& ftags = engine.interfaces();
+       for (set<Tag>::const_iterator i = ftags.begin();
+                       i != ftags.end(); ++i)
+       {
+               cerr << "ITAG " << i->fullname() << endl;
+       }
+}
+
 int main(int argc, const char* argv[])
 {
-       wibble::commandline::DebtagsOptions opts;
+#ifdef USE_GETTEXT
+       setlocale (LC_MESSAGES, "");
+       setlocale (LC_CTYPE, "");
+       setlocale (LC_COLLATE, "");
+       textdomain ("gamesui");
+       bindtextdomain ("gamesui", NULL);
+#endif
 
+       wibble::commandline::GamesOptions opts;
+
        try {
                // Install the handler for unexpected exceptions
                wibble::exception::InstallUnexpected installUnexpected;
@@ -114,694 +128,27 @@
                if (opts.out_debug->boolValue())
                        ::Environment::get().debug(true);
 
-               if (opts.foundCommand() == opts.selfcheck)
-               {
-                       env().init();
-                       Vocabulary& voc = env().voc();
-                       Apt& apt = env().apt();
+               Engine engine;
 
-                       // ensure that all facets are readable
-                       std::set<Facet> facets = voc.facets();
-                       for (std::set<Facet>::const_iterator i = 
facets.begin(); i != facets.end(); i++)
-                       {
-                               cout << "Checking facet " << 
i->name(string("<invalid name>")) << "..." << endl;
-                               i->name(string("foo"));
-                               i->shortDescription(string("foo"));
-                               i->longDescription(string("foo"));
-                               i->tags();
-                       }
+               cerr << " *** Initial:" << endl;
+               printResults(engine);
 
-                       // ensure that all tags are readable
-                       std::set<Tag> tags = voc.tags();
-                       for (std::set<Tag>::const_iterator i = tags.begin(); i 
!= tags.end(); i++)
-                       {
-                               cout << "Checking tag " << 
i->fullname(string("<invalid name>")) << "..." << endl;
-                               i->name(string("foo"));
-                               i->fullname(string("foo"));
-                               i->shortDescription(string("foo"));
-                               i->longDescription(string("foo"));
-                       }
+               engine.setTypeFilter(engine.voc().tagByName("game::arcade"));
+               cerr << " *** Arcades:" << endl;
+               printResults(engine);
 
-                       // ensure that all packages that declare they are 
readable, are readable
-                       for (Apt::iterator i = apt.begin(); i != apt.end(); ++i)
-                       {
-                               cout << "Checking package " << *i << "..." << 
endl;
-                               //if (i->isValid())
-                               //{
-                               //      i->shortDescription(string("foo"));
-                               //      i->longDescription(string("foo"));
-                               //      //i->tags(std::set<Tag>());
-                               //}
-                       }
-                       
-                       for (std::set<Facet>::const_iterator i = facets.begin();
-                                       i != facets.end(); i++)
-                       {
-                               if (!voc.hasFacet(i->name()))
-                                       cerr << "Vocabulary is not sure about 
having facet " << i->name() << endl;
+               
engine.setInterfaceFilter(engine.voc().tagByName("interface::x11"));
+               cerr << " *** X11 Arcades:" << endl;
+               printResults(engine);
 
-                               std::set<Tag> tags = i->tags();
-                               for (std::set<Tag>::const_iterator j = 
tags.begin();
-                                               j != tags.end(); j++)
-                                       if (!voc.hasTag(j->fullname()))
-                                               cerr << "Vocabulary is not sure 
about having tag " << j->fullname() << endl;
-                       }
-                       return 0;
-               }
-               // Output the full package tag database
-               else if (opts.foundCommand() == opts.cat)
-               {
-                       env().init();
-                       Debtags& debtags = env().debtags();
-                       int count = 0;
+               engine.setInstalledFilter(Engine::INSTALLED);
+               cerr << " *** Installed X11 Arcades:" << endl;
+               printResults(engine);
 
-                       auto_ptr<CollPrinter> printer;
-
-                       if (opts.out_names->boolValue())
-                               printer.reset(new 
CollPrinter(CollPrinter::NAME, count));
-                       else if (opts.out_facets->boolValue())
-                               printer.reset(new 
CollPrinter(CollPrinter::FACETS, count));
-                       else if (opts.out_quiet->boolValue())
-                               printer.reset(new 
CollPrinter(CollPrinter::QUIET, count));
-                       else 
-                               printer.reset(new 
CollPrinter(CollPrinter::TAGS, count));
-
-                       if (opts.hasNext())
-                       {
-                               debtags.output(expressionFilter(opts.next(), 
opts.match_invert->boolValue(), *printer));
-                       } else
-                               debtags.output(*printer);
-
-                       return count > 0 ? 0 : 1;
-               }
-               // Output the full package database
-               else if (opts.foundCommand() == opts.dumpavail)
-               {
-                       env().init();
-                       int count = 0;
-
-                       auto_ptr<PackagePrinter> printer;
-                       if (opts.out_names->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::NAME, count));
-                       else if (opts.out_short->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::SHORT, count));
-                       else if (opts.out_quiet->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::QUIET, count));
-                       else 
-                               printer.reset(new 
PackagePrinter(PackagePrinter::FULL, count));
-
-                       if (opts.hasNext())
-                       {
-                               
env().debtags().output(expressionFilter(opts.next(), 
opts.match_invert->boolValue(), *printer));
-                       } else {
-                               // If there is no expression filter, dump from 
the Apt database
-                               Apt& apt = env().apt();
-                               PackageRecord record;
-                               for (Apt::record_iterator i = apt.recordBegin();
-                                               i != apt.recordEnd(); ++i)
-                               {
-                                       record.scan(*i);
-                                       *printer = record;
-                               }
-                       }
-
-                       return count > 0 ? 0 : 1;
-               }
-               // search [-v] <tag expression>\n"
-               // Output the names and description of the packages that 
match\n"
-               // the given tag expression\n"
-               else if (opts.foundCommand() == opts.search)
-               {
-                       env().init();
-                       // TODO: complain if no expression found
-                       int count = 0;
-
-                       auto_ptr<PackagePrinter> printer;
-                       if (opts.out_names->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::NAME, count));
-                       else if (opts.out_full->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::FULL, count));
-                       else if (opts.out_quiet->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::QUIET, count));
-                       else 
-                               printer.reset(new 
PackagePrinter(PackagePrinter::SHORT, count));
-
-                       if (opts.hasNext())
-                       {
-                               
env().debtags().output(expressionFilter(opts.next(), 
opts.match_invert->boolValue(), *printer));
-                       } else
-                               env().debtags().output(*printer);
-
-                       return count > 0 ? 0 : 1;
-               }
-               // grep [-v] [-q] <tag expression>
-               // Output the lines of the full package tag database that match 
the
-               // given tag expression
-               else if (opts.foundCommand() == opts.grep)
-               {
-                       env().init();
-                       // TODO: complain if no expression found
-                       Debtags& debtags = env().debtags();
-                       int count = 0;
-
-                       auto_ptr<CollPrinter> printer;
-
-                       if (opts.out_names->boolValue())
-                               printer.reset(new 
CollPrinter(CollPrinter::NAME, count));
-                       else if (opts.out_facets->boolValue())
-                               printer.reset(new 
CollPrinter(CollPrinter::FACETS, count));
-                       else if (opts.out_quiet->boolValue())
-                               printer.reset(new 
CollPrinter(CollPrinter::QUIET, count));
-                       else 
-                               printer.reset(new 
CollPrinter(CollPrinter::TAGS, count));
-
-                       if (opts.hasNext())
-                       {
-                               debtags.output(expressionFilter(opts.next(), 
opts.match_invert->boolValue(), *printer));
-                       } else
-                               debtags.output(*printer);
-
-                       return count > 0 ? 0 : 1;
-               }
-               // tagcat
-               // Output the entire tag vocabulary
-               else if (opts.foundCommand() == opts.tagcat)
-               {
-                       env().init();
-                       Vocabulary& voc = env().voc();
-
-                       std::set<Facet> facets = voc.facets();
-                       for (std::set<Facet>::const_iterator i = facets.begin();
-                                       i != facets.end(); i++)
-                       {
-                               printVocabularyItem(*i);
-
-                               std::set<Tag> tags = i->tags();
-                               for (std::set<Tag>::const_iterator j = 
tags.begin();
-                                               j != tags.end(); j++)
-                                       printVocabularyItem(*j);
-                       }
-                       return 0;
-               }
-               // tagshow <tag>
-               // Show the vocabulary informations about a tag
-               else if (opts.foundCommand() == opts.tagshow)
-               {
-                       env().init();
-                       string tag = opts.next();
-
-                       Tag t = env().voc().tagByName(tag);
-                       if (!t.valid())
-                       {
-                               verbose("Tag `%s' was not found in tag 
vocabulary\n", tag.c_str());
-                               return 1;
-                       }
-                       else
-                       {
-                               printVocabularyItem(t);
-                               return 0;
-                       }
-               }
-               // tagsearch <pattern [pattern [pattern [...]]]>
-               // Show a summary of all tags matching the given patterns
-               else if (opts.foundCommand() == opts.tagsearch)
-               {
-                       env().init();
-                       SubstringTagMatcher match;
-
-                       // Get the patterns to be matched
-                       bool empty;
-                       while (opts.hasNext())
-                       {
-                               string pattern = opts.next();
-                               match.add(pattern);
-                               empty = false;
-                       }
-
-                       if (empty)
-                       {
-                               error("No patterns given in commandline\n");
-                               return 1;
-                       }
-
-                       int matched = 0;
-
-                       std::set<Facet> facets = env().voc().facets();
-                       for (std::set<Facet>::const_iterator i = facets.begin();
-                                       i != facets.end(); i++)
-                       {
-                               if (match(*i))
-                               {
-                                       matched++;
-                                       printShortVocabularyItem(*i);
-                               }
-
-                               std::set<Tag> tags = i->tags();
-                               for (std::set<Tag>::const_iterator j = 
tags.begin();
-                                               j != tags.end(); j++)
-                                       if (match(*j))
-                                       {
-                                               matched++;
-                                               printShortVocabularyItem(*j);
-                                       }
-                       }
-
-                       return matched > 0 ? 0 : 1;
-               }
-               // show <pkg>
-               // Call apt-cache show <pkg>, but add tag informations to the 
output.\n"
-               else if (opts.foundCommand() == opts.show)
-               {
-                       env().init();
-                       while (opts.hasNext())
-                       {
-                               string name = opts.next();
-
-                               if (env().apt().isValid(name))
-                               {
-                                       PackagePrinter 
printer(PackagePrinter::FULL);
-                                       printer = name;
-                                       return 0;
-                               } else {
-                                       verbose("Package %s not found", 
name.c_str());
-                                       return 1;
-                               }
-                       }
-               }
-               // related <pkg1[,pkg2[,pkg2,[...]]]>
-               // Show packages related to the specified ones
-               else if (opts.foundCommand() == opts.related)
-               {
-                       env().init();
-                       using namespace wibble::operators;
-
-                       int maxdist = 0;
-                       if (opts.misc_distance->boolValue())
-                               maxdist = opts.misc_distance->intValue();
-                       string pkg = opts.next();
-
-                       // Split the items on commas
-                       string splititem;
-                       std::set<string> splititems;
-                       for (string::const_iterator c = pkg.begin(); c != 
pkg.end(); c++)
-                               if (*c == ',')
-                               {
-                                       if (env().apt().isValid(splititem))
-                                       {
-                                               splititems.insert(splititem);
-                                       } else {
-                                               error("Item \"%s\" does not 
exist in the collection\n", splititem.c_str());
-                                               return 1;
-                                       }
-                                       splititem = string();
-                               } else
-                                       splititem += *c;
-                       if (env().apt().isValid(splititem))
-                       {
-                               splititems.insert(splititem);
-                       } else {
-                               error("Item \"%s\" does not exist in the 
collection\n", splititem.c_str());
-                               return 1;
-                       }
-
-                       // Get the tagset as the intersection of the tagsets of 
all input items
-                       std::set<string>::const_iterator i = splititems.begin();
-                       std::set<Tag> ts = env().debtags().getTagsOfItem(*i);
-                       for (++i; i != splititems.end(); i++)
-                               ts &= env().debtags().getTagsOfItem(*i);
-
-                       if (ts.empty())
-                       {
-                               if (splititems.size() > 1)
-                                       fprintf(stderr, "The packages %s are 
unrelated: cannot find a barycenter to start computing relationships from.\n", 
pkg.c_str());
-                               else
-                                       fprintf(stderr, "The package %s has no 
tags attached.\n", pkg.c_str());
-                               return 1;
-                       }
-
-                       std::set<string> 
related(env().debtags().getRelatedItems(ts, maxdist) - splititems);
-
-                       int count = 0;
-
-                       auto_ptr<PackagePrinter> printer;
-                       if (opts.out_names->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::NAME, count));
-                       else if (opts.out_full->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::FULL, count));
-                       else if (opts.out_quiet->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::QUIET, count));
-                       else 
-                               printer.reset(new 
PackagePrinter(PackagePrinter::SHORT, count));
-
-                       for (std::set<string>::const_iterator i = 
related.begin();
-                                       i != related.end(); ++i)
-                       {
-                               **printer = *i;
-                               ++*printer;
-                       }
-
-                       if (count > 50 && maxdist == 0 && isatty(1))
-                       {
-                               string tags;
-                               for (std::set<Tag>::const_iterator i = 
ts.begin();
-                                               i != ts.end(); i++)
-                                       if (i == ts.begin())
-                                               tags += i->fullname();
-                                       else
-                                               tags += "%2C" + i->fullname();
-                               feedback("\nIt seems that this set of packages 
lacks tag information that could help to better distinguish package 
similarities.\nYou can help providing better tagging: just point your browser 
to http://debian.vitavonni.de/packagebrowser/?tags=%s\n";, tags.c_str());
-                       }
-                       return 0;
-               }
-               // maintainers
-               // Create a tagged collection of maintainers and the tags of the
-               // packages they maintain
-               else if (opts.foundCommand() == opts.maintainers)
-               {
-                       env().init();
-                       // Gather maintainer informations
-                       coll::Simple<string, string> maints;
-                       
env().debtags().output(packageToMaint(inserter(maints)));
-
-                       // Print them out
-                       maints.output(textformat::StdioWriter(stdout));
-               }
-               // tag
-               //   tag [add <package> <tags...>\n"
-               //   tag [rm  <package> <tags...>\n"
-               //   tag [ls  <package>\n"
-               //                View and edit the tags for a package\n");
-               else if (opts.foundCommand() == opts.tag)
-               {
-                       std::string cmd = opts.next();
-
-                       if (cmd == "add" || cmd == "rm")
-                       {
-                               env().init(true);
-
-                               string pkg = opts.next();
-                               if (!env().apt().isValid(pkg))
-                               {
-                                       error("Package %s not found\n", 
pkg.c_str());
-                                       return 1;
-                               }
-
-                               std::set<Tag> tagset;
-                               while (opts.hasNext())
-                               {
-                                       string tag = opts.next();
-                                       Tag t = env().voc().tagByName(tag);
-                                       if (t)
-                                               tagset.insert(t);
-                                       else
-                                               error("Tag '%s' not found: 
ignored\n", tag.c_str());
-                               }
-
-                               if (!tagset.empty())
-                               {
-                                       PatchList<string, Tag> change;
-                                       if (cmd == "add")
-                                               change.addPatch(Patch<string, 
Tag>(pkg, tagset, std::set<Tag>()));
-                                       else
-                                               change.addPatch(Patch<string, 
Tag>(pkg, std::set<Tag>(), tagset));
-                                       env().debtags().applyChange(change);
-                                       env().debtags().savePatch();
-                               } else
-                                       verbose("No tags to add\n");
-                       }
-                       else if (cmd == "ls")
-                       {
-                               env().init();
-                               string pkg = opts.next();
-                               if (env().apt().isValid(pkg))
-                               {
-                                       std::set<Tag> ts = 
env().debtags().getTagsOfItem(pkg);
-                                       for (std::set<Tag>::const_iterator i = 
ts.begin();
-                                                       i != ts.end(); i++)
-                                               cout << i->fullname() << endl;
-                                       return 0;
-                               } else {
-                                       verbose("Package %s not found", 
pkg.c_str());
-                                       return 1;
-                               }
-                       }
-                       else
-                               throw wibble::exception::Consistency("parsing 
the 'tag' subcommand", "command " + cmd + " is not valid working with tags");
-               }
-               // submit
-               // Mail the local updates to the tag database to the central tag
-               // repository
-               else if (opts.foundCommand() == opts.submit)
-               {
-                       env().init();
-                       if (opts.hasNext())
-                       {
-                               input::Stdio in(opts.next());
-                               PatchList<string, string> patch;
-                               textformat::parsePatch(in, inserter(patch));
-                               env().debtags().sendPatch(patch);
-                       }
-                       else
-                               env().debtags().sendPatch();
-               }
-               // todo
-               // Print a list of the installed packages that are not yet 
tagged
-               else if (opts.foundCommand() == opts.todo)
-               {
-                       env().init();
-                       int count = 0;
-
-                       auto_ptr<PackagePrinter> printer;
-                       if (opts.out_names->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::NAME, count));
-                       else if (opts.out_full->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::FULL, count));
-                       else if (opts.out_quiet->boolValue())
-                               printer.reset(new 
PackagePrinter(PackagePrinter::QUIET, count));
-                       else 
-                               printer.reset(new 
PackagePrinter(PackagePrinter::SHORT, count));
-
-                       env().debtags().output(todoFilter(*printer));
-
-                       return count > 0 ? 0 : 1;
-               }
-               // stats
-               // Print statistics about Debtags
-               else if (opts.foundCommand() == opts.stats)
-               {
-                       env().init();
-                       int pkgCount = env().apt().size();
-                       printf("Total count of packages: %d\n", pkgCount);
-
-                       Stats stats;
-                       env().debtags().outputPatched(StatsCollector(stats));
-
-                       printf("Total count of packages (according to APT): 
%d\n", pkgCount);
-                       printf("Total count of packages (according to Debtags): 
%d\n", stats.seen);
-
-                       printf("Number of facets: %zi\n", 
env().voc().facets().size());
-                       printf("Number of tags: %zi\n", 
env().voc().tags().size());
-
-#if 0
-                       // Copied from Debtags class: compute the toplevel 
facets
-                       // TODO: use Debtags instead of Environment throughout 
all Debtags
-                       CardinalityStore<entity::Package, Facet> coll;
-                       TagToFacet<entity::Package> tagStripper(coll);
-                       debtags.outputPatched(tagStripper);
-                       Facet f;
-                       SmartHierarchyNode<entity::Package, Facet> node(f, 
coll, 0);
-                       printf("Number of automatically computed toplevel 
facets: %d\n", node.size());
-#endif
-
-//                     printf("Number of packages with 
special::completely-tagged tags: %d (%.1f%%)\n",
-//                                     stats.complete, 
(float)stats.complete*100/stats.seen);
-                       printf("Number of packages with tags, but no 
special::not-yet-tagged tags: %d (%.1f%%)\n",
-                                       stats.tagged, 
(float)stats.tagged*100/stats.seen);
-                       printf("Number of packages with special::not-yet-tagged 
tags: %d (%.1f%%)\n",
-                                       stats.nyt, 
(float)stats.nyt*100/stats.seen);
-                       printf("Number of packages with only 
special::not-yet-tagged tags: %d (%.1f%%)\n",
-                                       stats.onlynyt, 
(float)stats.onlynyt*100/stats.seen);
-                       printf("Number of packages with no tags: %d (%.1f%%)\n",
-                                       stats.notags, 
(float)stats.notags*100/stats.seen);
-
-               }
-               // check <file>
-               // Check that all the tags in the given tagged collection are
-               // present in the tag vocabulary.  Checks the main database if 
no
-               // file is specified
-               else if (opts.foundCommand() == opts.check)
-               {
-                       env().init();
-                       if (!opts.hasNext())
-                               throw wibble::exception::BadOption("you should 
specify the file with the collection to check");
-
-                       string file = opts.next();
-
-                       VocabularyCheck results;
-                       readCollection(file, VocabularyChecker(env().voc(), 
results));
-
-                       if (results.missing_count > 0)
-                       {
-                               results.report(cout);
-                               return 1;
-                       }
-                       else
-                               return 0;
-               }
-               // score
-               // Score uninstalled packages according to how often their tags
-               // appear in the packages that are installed already
-               else if (opts.foundCommand() == opts.score)
-               {
-                       env().init();
-                       // Compute package scores
-                       PackageScore score;
-                       env().debtags().outputPatched(PackageScorer(score));
-
-                       // Print the results
-                       score.output(env().debtags(), cout);
-               }
-               // mkpatch [filename]
-               // Create a tag patch between the current tag database and the 
tag
-               // collection [filename]
-               else if (opts.foundCommand() == opts.diff)
-               {
-                       env().init();
-                       string file = opts.next();
-
-                       coll::Simple<string, Tag> coll;
-                       env().debtags().outputSystem(file, inserter(coll));
-
-                       PatchList<string, Tag> newpatches;
-                       newpatches.addPatch(env().debtags(), coll);
-
-                       textformat::outputPatch(serPackage, serTag, newpatches, 
stdout);
-               }
-               // ssearch <word [word1 [word2 ...]]>
-               // Perform a keyword search integrated with related packages
-               else if (opts.foundCommand() == opts.smartsearch)
-               {
-                       env().init();
-                       if (!opts.hasNext())
-                               throw wibble::exception::BadOption("you should 
specify one pattern to search");
-
-                       string keywords;
-                       while (opts.hasNext())
-                               if (keywords.empty())
-                                       keywords = opts.next();
-                               else
-                                       keywords += " " + opts.next();
-
-                       SmartSearcher searcher(keywords);
-
-                       if (opts.smse_reltags->boolValue())
-                               searcher.outputRelevantTags();
-                       else if (opts.smse_disctags->boolValue())
-                               searcher.outputDiscriminantTags();
-                       else {
-                               searcher.interact();
-                       }
-               }
-               // update
-               // Updates the package tag database (requires root)
-               else if (opts.foundCommand() == opts.update)
-               {
-                       using namespace wibble::sys;
-
-                       verbose("System source directory: %s\n", 
Path::debtagsSourceDir().c_str());
-                       verbose("User source directory: %s\n", 
Path::debtagsUserSourceDir().c_str());
-
-                       if (!opts.misc_reindex->boolValue())
-                       {
-                               // Run the fetcher to acquire new data
-                               string fetcher = SCRIPTDIR "/fetch";
-                               if (!fs::access(fetcher, X_OK))
-                                       warning("Fetch script %s does not exist 
or is not executable: skipping acquiring of new data\n", fetcher.c_str());
-                               else {
-                                       if (opts.out_verbose->boolValue())
-                                               fetcher += " --verbose";
-                                       if (opts.misc_local->boolValue())
-                                               fetcher += " --local";
-                                       if (system(fetcher.c_str()) != 0)
-                                               throw 
wibble::exception::Consistency("acquiring new data", "fetcher command " + 
fetcher + " failed");
-                               }
-                       }
-
-
-                       // Access the indexes to trigger a rebuild
-                       //typedef ept::t::cache::debtags::IndexManager<> 
IndexManager;
-                       std::string a, b;
-
-                       //auto_ptr<Ept> ept = debtagsInit();
-                       env().init();
-
-                       VocabularyIndexer::obtainWorkingVocabulary(a, b);
-                       verbose("Vocabulary: %s\n", a.c_str());
-                       verbose("Vocabulary index: %s\n", b.c_str());
-
-                       DebtagsIndexer::obtainWorkingDebtags(env().voc(), a, b);
-                       verbose("Tag database: %s\n", a.c_str());
-                       verbose("Tag database index: %s\n", b.c_str());
-
-                       //mode_t prev_umask = umask(022);
-                       //umask(prev_umask);
-               }
-               else if (opts.foundCommand() == opts.vocfilter)
-               {
-                       env().init();
-                       if (!opts.hasNext())
-                               throw wibble::exception::BadOption("you should 
specify the file with the collection to check");
-
-                       string file = opts.next();
-
-                       if (opts.misc_vocfile->boolValue())
-                       {
-                               VocabularyMerger vm;
-                               input::Stdio 
input(opts.misc_vocfile->stringValue());
-                               vm.read(input);
-                               readCollection(file, vocabularyFilter(vm, 
textformat::OstreamWriter(cout)));
-                       }
-                       else
-                               readCollection(file, 
vocabularyFilter(env().voc(), textformat::OstreamWriter(cout)));
-               }
-#if 0
-               // todoreport
-               // Print a report of packages needing work
-               else if (opts.foundCommand() == opts.todoreport)
-               {
-                       debtagsInit();
-                       wantTagDatabase();
-
-                       unsigned int itemsPerGroup = 0;
-                       if (opts.hasNext())
-                               itemsPerGroup = atoi(opts.next().c_str());
-
-                       ReportMaker rm(itemsPerGroup);
-                       rm.printReport();
-
-               }
-#endif
-#if 0
-               // install [-v] [-q] <tag expression>
-               // apt-get install the packages that match the given tag 
expression
-               else if (opts.foundCommand() == opts.install)
-               {
-                       component::PackageTags& debtags = debtagsInit();
-                       wantTagDatabase();
-                       Installer installer;
-
-                       Searcher searcher(debtags, &installer);
-                       string expression = opts.next();
-
-                       searcher.output(expression, 
opts.matchGroup.invert->boolValue());
-
-                       return 1;
-               }
-#endif
-               else
-                       throw wibble::exception::BadOption(string("unhandled 
command ") +
-                                               (opts.foundCommand() ? 
opts.foundCommand()->name() : "(null)"));
-
+               GamesUI mainui;
+               Fl_Double_Window *window = mainui.CreateMainWindow();
+               window->show(argc, argv);
+               while (Fl::wait());
                return 0;
        } catch (wibble::exception::BadOption& e) {
                cerr << e.desc() << endl;

Deleted: software/ui/src/main.cpp
===================================================================
--- software/ui/src/main.cpp    2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/src/main.cpp    2007-06-20 13:58:21 UTC (rev 3018)
@@ -1,23 +0,0 @@
-#include "main.h"
-
-#ifdef USE_GETTEXT
-#include <libintl.h>
-#include <locale.h>
-#endif
-
-int main (int argc, char *argv[])
-{
-#ifdef USE_GETTEXT
-       setlocale (LC_MESSAGES, "");
-       setlocale (LC_CTYPE, "");
-       setlocale (LC_COLLATE, "");
-       textdomain ("gamesui");
-       bindtextdomain ("gamesui", NULL);
-#endif
-
-       GamesUI mainui;
-       Fl_Double_Window *window = mainui.CreateMainWindow();
-       window->show(argc, argv);
-       while (Fl::wait());
-       return 0;
-}

Deleted: software/ui/src/main.h
===================================================================
--- software/ui/src/main.h      2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/src/main.h      2007-06-20 13:58:21 UTC (rev 3018)
@@ -1,7 +0,0 @@
-#ifndef main_ui
-#define main_ui
-
-#include "common.h"
-#include "ui.h"
-
-#endif

Modified: software/ui/src/manpage.cpp
===================================================================
--- software/ui/src/manpage.cpp 2007-06-20 13:57:26 UTC (rev 3017)
+++ software/ui/src/manpage.cpp 2007-06-20 13:58:21 UTC (rev 3018)
@@ -20,7 +20,7 @@
 
 #include <config.h>
 #include <wibble/commandline/doc.h>
-#include "DebtagsOptions.h"
+#include "GamesOptions.h"
 #include <iostream>
 
 using namespace std;
@@ -34,10 +34,10 @@
                string cmd(argv[1]);
                string hooks(argc > 2 ? argv[2] : "");
 
-               if (cmd == "debtags")
+               if (cmd == "games")
                {
-                       wibble::commandline::DebtagsOptions opts;
-                       wibble::commandline::Manpage help("debtags", VERSION, 
1, "[EMAIL PROTECTED]");
+                       wibble::commandline::GamesOptions opts;
+                       wibble::commandline::Manpage help("games", VERSION, 1, 
"[EMAIL PROTECTED],[EMAIL PROTECTED]");
                        if (!hooks.empty())
                                help.readHooks(hooks);
                        help.output(cout, opts);
@@ -49,7 +49,7 @@
        } catch (wibble::exception::BadOption& e) {
                cerr << e.desc() << endl << endl;
                cerr << "Usage: manpage <command>" << endl << endl;
-               cerr << "Supported commands are: debtags" << endl;
+               cerr << "Supported commands are: games" << endl;
                return 1;
        } catch (std::exception& e) {
                cerr << e.what() << endl;


_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/pkg-games-commits

Reply via email to