aboutsummaryrefslogtreecommitdiff
path: root/x11/py-xdot
diff options
context:
space:
mode:
authorDanilo G. Baio <dbaio@FreeBSD.org>2018-03-31 11:30:40 +0000
committerDanilo G. Baio <dbaio@FreeBSD.org>2018-03-31 11:30:40 +0000
commite0d122d1e3248784e3b35e9ab37d87c6418ef88c (patch)
tree5b37914abb03689dc6d334950716883fccac4f72 /x11/py-xdot
parenta28770c0ed47571b2f3cc7b8bacbe8900af642df (diff)
downloadports-e0d122d1e3248784e3b35e9ab37d87c6418ef88c.tar.gz
ports-e0d122d1e3248784e3b35e9ab37d87c6418ef88c.zip
x11/py-xdot: Update to 0.9
Fix dependencies. Add a patch from upstream for don't check for graphviz python module, it's not used by xdot. Support for Python 3 only. PR: 226792 Submitted by: Greg V <greg@unrelenting.technology>
Notes
Notes: svn path=/head/; revision=466041
Diffstat (limited to 'x11/py-xdot')
-rw-r--r--x11/py-xdot/Makefile9
-rw-r--r--x11/py-xdot/distinfo6
-rw-r--r--x11/py-xdot/files/patch-setup.py12
-rw-r--r--x11/py-xdot/files/patch-xdot.py478
4 files changed, 22 insertions, 483 deletions
diff --git a/x11/py-xdot/Makefile b/x11/py-xdot/Makefile
index 2de0108e0056..087dc6a7655e 100644
--- a/x11/py-xdot/Makefile
+++ b/x11/py-xdot/Makefile
@@ -1,7 +1,7 @@
# $FreeBSD$
PORTNAME= xdot
-PORTVERSION= 0.7
+PORTVERSION= 0.9
CATEGORIES= x11 python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -11,8 +11,13 @@ COMMENT= Interactive viewer for Graphviz dot files
LICENSE= LGPL3+
+RUN_DEPENDS= dot:graphics/graphviz
+
NO_ARCH= yes
-USES= python
+USES= python:3.4+
USE_PYTHON= autoplist distutils
+USE_GNOME= cairo gtk30 pygobject3
+
+CONFLICTS_INSTALL= py*-xdot-06
.include <bsd.port.mk>
diff --git a/x11/py-xdot/distinfo b/x11/py-xdot/distinfo
index 097dbb17df21..e9638aa1ea47 100644
--- a/x11/py-xdot/distinfo
+++ b/x11/py-xdot/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1468125369
-SHA256 (xdot-0.7.tar.gz) = d2100c3201d974915d1b89220ce52f380334eb365ab48903573a8135f51d0ee0
-SIZE (xdot-0.7.tar.gz) = 22089
+TIMESTAMP = 1522370491
+SHA256 (xdot-0.9.tar.gz) = a33701664ecfefe7c7313a120a587e87334f3a566409bc451538fcde5edd6907
+SIZE (xdot-0.9.tar.gz) = 26716
diff --git a/x11/py-xdot/files/patch-setup.py b/x11/py-xdot/files/patch-setup.py
new file mode 100644
index 000000000000..51a3de54eac6
--- /dev/null
+++ b/x11/py-xdot/files/patch-setup.py
@@ -0,0 +1,12 @@
+# https://github.com/jrfonseca/xdot.py/commit/3f866766be44adbe3634de95cd0a031e8a863c91
+
+--- setup.py.orig 2018-03-30 00:51:44 UTC
++++ setup.py
+@@ -31,7 +31,6 @@ setup(
+ """,
+ license="LGPL",
+
+- install_requires=['graphviz'],
+ packages=['xdot', 'xdot/dot', 'xdot/ui'],
+ entry_points=dict(gui_scripts=['xdot=xdot.__main__:main']),
+
diff --git a/x11/py-xdot/files/patch-xdot.py b/x11/py-xdot/files/patch-xdot.py
deleted file mode 100644
index 17a41b3413ed..000000000000
--- a/x11/py-xdot/files/patch-xdot.py
+++ /dev/null
@@ -1,478 +0,0 @@
---- xdot.py.orig 2016-03-07 15:58:48 UTC
-+++ xdot.py
-@@ -30,13 +30,13 @@ import time
- import re
- import optparse
-
--from gi.repository import GLib
--from gi.repository import GObject
--from gi.repository import Gtk
--from gi.repository import Gdk
--from gi.repository import GdkPixbuf
--from gi.repository import Pango
--from gi.repository import PangoCairo
-+import glib
-+import gobject
-+import gtk
-+import gtk.gdk
-+import gtk.keysyms
-+import pango
-+import pangocairo
- import cairo
-
-
-@@ -120,7 +120,7 @@ class TextShape(Shape):
- try:
- layout = self.layout
- except AttributeError:
-- layout = PangoCairo.create_layout(cr)
-+ layout = pangcairo.create_layout(cr)
-
- # set font options
- # see http://lists.freedesktop.org/archives/cairo/2007-February/009688.html
-@@ -130,21 +130,21 @@ class TextShape(Shape):
- fo.set_hint_style(cairo.HINT_STYLE_NONE)
- fo.set_hint_metrics(cairo.HINT_METRICS_OFF)
- try:
-- PangoCairo.context_set_font_options(context, fo)
-+ pangcairo.context_set_font_options(context, fo)
- except TypeError:
- # XXX: Some broken pangocairo bindings show the error
- # 'TypeError: font_options must be a cairo.FontOptions or None'
- pass
- except KeyError:
-- # cairo.FontOptions is not registered as a foreign struct in older PyGObject versions.
-+ # cairo.FontOptions is not registered as a foreign struct in older Pygobject versions.
- # https://git.gnome.org/browse/pygobject/commit/?id=b21f66d2a399b8c9a36a1758107b7bdff0ec8eaa
- pass
-
- # set font
-- font = Pango.FontDescription()
-+ font = pango.FontDescription()
-
-- # https://developer.gnome.org/pango/stable/PangoMarkupFormat.html
-- markup = GObject.markup_escape_text(self.t)
-+ # https://developer.gnome.org/pango/stable/pangoMarkupFormat.html
-+ markup = gobject.markup_escape_text(self.t)
- if self.pen.bold:
- markup = '<b>' + markup + '</b>'
- if self.pen.italic:
-@@ -158,12 +158,12 @@ class TextShape(Shape):
- if self.pen.subscript:
- markup = '<sub><small>' + markup + '</small></sub>'
-
-- success, attrs, text, accel_char = Pango.parse_markup(markup, -1, '\x00')
-+ success, attrs, text, accel_char = pango.parse_markup(markup, -1, '\x00')
- assert success
- layout.set_attributes(attrs)
-
- font.set_family(self.pen.fontname)
-- font.set_absolute_size(self.pen.fontsize*Pango.SCALE)
-+ font.set_absolute_size(self.pen.fontsize*pango.SCALE)
- layout.set_font_description(font)
-
- # set text
-@@ -172,13 +172,13 @@ class TextShape(Shape):
- # cache it
- self.layout = layout
- else:
-- PangoCairo.update_layout(cr, layout)
-+ pangcairo.update_layout(cr, layout)
-
- descent = 2 # XXX get descender from font metrics
-
- width, height = layout.get_size()
-- width = float(width)/Pango.SCALE
-- height = float(height)/Pango.SCALE
-+ width = float(width)/pango.SCALE
-+ height = float(height)/pango.SCALE
-
- # we know the width that dot thinks this text should have
- # we do not necessarily have a font with the same metrics
-@@ -207,7 +207,7 @@ class TextShape(Shape):
- cr.save()
- cr.scale(f, f)
- cr.set_source_rgba(*self.select_pen(highlight).color)
-- PangoCairo.show_layout(cr, layout)
-+ pangcairo.show_layout(cr, layout)
- cr.restore()
-
- if 0: # DEBUG
-@@ -239,13 +239,13 @@ class ImageShape(Shape):
- self.path = path
-
- def draw(self, cr, highlight=False):
-- pixbuf = GdkPixbuf.Pixbuf.new_from_file(self.path)
-+ pixbuf = gtk.gdk.pixbuf_new_from_file(self.path)
- sx = float(self.w)/float(pixbuf.get_width())
- sy = float(self.h)/float(pixbuf.get_height())
- cr.save()
- cr.translate(self.x0, self.y0 - self.h)
- cr.scale(sx, sy)
-- Gdk.cairo_set_source_pixbuf(cr, pixbuf, 0, 0)
-+ gdk.cairo_set_source_pixbuf(cr, pixbuf, 0, 0)
- cr.paint()
- cr.restore()
-
-@@ -631,7 +631,7 @@ class XDotAttrParser:
-
- def lookup_color(self, c):
- try:
-- color = Gdk.color_parse(c)
-+ color = gdk.color_parse(c)
- except ValueError:
- pass
- else:
-@@ -1318,12 +1318,12 @@ class Animation(object):
- self.timeout_id = None
-
- def start(self):
-- self.timeout_id = GLib.timeout_add(int(self.step * 1000), self.tick)
-+ self.timeout_id = glib.timeout_add(int(self.step * 1000), self.tick)
-
- def stop(self):
- self.dot_widget.animation = NoAnimation(self.dot_widget)
- if self.timeout_id is not None:
-- GLib.source_remove(self.timeout_id)
-+ glib.source_remove(self.timeout_id)
- self.timeout_id = None
-
- def tick(self):
-@@ -1453,7 +1453,7 @@ class NullAction(DragAction):
- if item is None:
- item = dot_widget.get_jump(x, y)
- if item is not None:
-- dot_widget.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.HAND2))
-+ dot_widget.get_window().set_cursor(gdk.Cursor(gdk.CursorType.HAND2))
- dot_widget.set_highlight(item.highlight)
- else:
- dot_widget.get_window().set_cursor(None)
-@@ -1463,7 +1463,7 @@ class NullAction(DragAction):
- class PanAction(DragAction):
-
- def start(self):
-- self.dot_widget.get_window().set_cursor(Gdk.Cursor(Gdk.CursorType.FLEUR))
-+ self.dot_widget.get_window().set_cursor(gdk.Cursor(gdk.CursorType.FLEUR))
-
- def drag(self, deltax, deltay):
- self.dot_widget.x += deltax / self.dot_widget.zoom_ratio
-@@ -1518,18 +1518,18 @@ class ZoomAreaAction(DragAction):
- self.dot_widget.queue_draw()
-
-
--class DotWidget(Gtk.DrawingArea):
-+class DotWidget(gtk.DrawingArea):
- """GTK widget that draws dot graphs."""
-
-- #TODO GTK3: Second argument has to be of type Gdk.EventButton instead of object.
-+ #TODO GTK3: Second argument has to be of type gdk.EventButton instead of object.
- __gsignals__ = {
-- 'clicked' : (GObject.SIGNAL_RUN_LAST, None, (str, object))
-+ 'clicked' : (gobject.SIGNAL_RUN_LAST, None, (str, object))
- }
-
- filter = 'dot'
-
- def __init__(self):
-- Gtk.DrawingArea.__init__(self)
-+ gtk.DrawingArea.__init__(self)
-
- self.graph = Graph()
- self.openfilename = None
-@@ -1537,13 +1537,13 @@ class DotWidget(Gtk.DrawingArea):
- self.set_can_focus(True)
-
- self.connect("draw", self.on_draw)
-- self.add_events(Gdk.EventMask.BUTTON_PRESS_MASK | Gdk.EventMask.BUTTON_RELEASE_MASK)
-+ self.add_events(gdk.EventMask.BUTTON_PRESS_MASK | gdk.EventMask.BUTTON_RELEASE_MASK)
- self.connect("button-press-event", self.on_area_button_press)
- self.connect("button-release-event", self.on_area_button_release)
-- self.add_events(Gdk.EventMask.POINTER_MOTION_MASK |
-- Gdk.EventMask.POINTER_MOTION_HINT_MASK |
-- Gdk.EventMask.BUTTON_RELEASE_MASK |
-- Gdk.EventMask.SCROLL_MASK)
-+ self.add_events(gdk.EventMask.POINTER_MOTION_MASK |
-+ gdk.EventMask.POINTER_MOTION_HINT_MASK |
-+ gdk.EventMask.BUTTON_RELEASE_MASK |
-+ gdk.EventMask.SCROLL_MASK)
- self.connect("motion-notify-event", self.on_area_motion_notify)
- self.connect("scroll-event", self.on_area_scroll_event)
- self.connect("size-allocate", self.on_area_size_allocate)
-@@ -1551,7 +1551,7 @@ class DotWidget(Gtk.DrawingArea):
- self.connect('key-press-event', self.on_key_press_event)
- self.last_mtime = None
-
-- GLib.timeout_add(1000, self.update)
-+ glib.timeout_add(1000, self.update)
-
- self.x, self.y = 0.0, 0.0
- self.zoom_ratio = 1.0
-@@ -1729,59 +1729,59 @@ class DotWidget(Gtk.DrawingArea):
- POS_INCREMENT = 100
-
- def on_key_press_event(self, widget, event):
-- if event.keyval == Gdk.KEY_Left:
-+ if event.keyval == gdk.KEY_Left:
- self.x -= self.POS_INCREMENT/self.zoom_ratio
- self.queue_draw()
- return True
-- if event.keyval == Gdk.KEY_Right:
-+ if event.keyval == gdk.KEY_Right:
- self.x += self.POS_INCREMENT/self.zoom_ratio
- self.queue_draw()
- return True
-- if event.keyval == Gdk.KEY_Up:
-+ if event.keyval == gdk.KEY_Up:
- self.y -= self.POS_INCREMENT/self.zoom_ratio
- self.queue_draw()
- return True
-- if event.keyval == Gdk.KEY_Down:
-+ if event.keyval == gdk.KEY_Down:
- self.y += self.POS_INCREMENT/self.zoom_ratio
- self.queue_draw()
- return True
-- if event.keyval in (Gdk.KEY_Page_Up,
-- Gdk.KEY_plus,
-- Gdk.KEY_equal,
-- Gdk.KEY_KP_Add):
-+ if event.keyval in (gdk.KEY_Page_Up,
-+ gdk.KEY_plus,
-+ gdk.KEY_equal,
-+ gdk.KEY_KP_Add):
- self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT)
- self.queue_draw()
- return True
-- if event.keyval in (Gdk.KEY_Page_Down,
-- Gdk.KEY_minus,
-- Gdk.KEY_KP_Subtract):
-+ if event.keyval in (gdk.KEY_Page_Down,
-+ gdk.KEY_minus,
-+ gdk.KEY_KP_Subtract):
- self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT)
- self.queue_draw()
- return True
-- if event.keyval == Gdk.KEY_Escape:
-+ if event.keyval == gdk.KEY_Escape:
- self.drag_action.abort()
- self.drag_action = NullAction(self)
- return True
-- if event.keyval == Gdk.KEY_r:
-+ if event.keyval == gdk.KEY_r:
- self.reload()
- return True
-- if event.keyval == Gdk.KEY_f:
-+ if event.keyval == gdk.KEY_f:
- win = widget.get_toplevel()
- find_toolitem = win.uimanager.get_widget('/ToolBar/Find')
- textentry = find_toolitem.get_children()
- win.set_focus(textentry[0])
- return True
-- if event.keyval == Gdk.KEY_q:
-- Gtk.main_quit()
-+ if event.keyval == gdk.KEY_q:
-+ gtk.main_quit()
- return True
-- if event.keyval == Gdk.KEY_p:
-+ if event.keyval == gdk.KEY_p:
- self.on_print()
- return True
- return False
-
- print_settings = None
- def on_print(self, action=None):
-- print_op = Gtk.PrintOperation()
-+ print_op = gtk.PrintOperation()
-
- if self.print_settings != None:
- print_op.set_print_settings(self.print_settings)
-@@ -1789,8 +1789,8 @@ class DotWidget(Gtk.DrawingArea):
- print_op.connect("begin_print", self.begin_print)
- print_op.connect("draw_page", self.draw_page)
-
-- res = print_op.run(Gtk.PrintOperationAction.PRINT_DIALOG, self.get_toplevel())
-- if res == Gtk.PrintOperationResult.APPLY:
-+ res = print_op.run(gtk.PrintOperationAction.PRINT_DIALOG, self.get_toplevel())
-+ if res == gtk.PrintOperationResult.APPLY:
- self.print_settings = print_op.get_print_settings()
-
- def begin_print(self, operation, context):
-@@ -1810,10 +1810,10 @@ class DotWidget(Gtk.DrawingArea):
- def get_drag_action(self, event):
- state = event.state
- if event.button in (1, 2): # left or middle button
-- modifiers = Gtk.accelerator_get_default_mod_mask()
-- if state & modifiers == Gdk.ModifierType.CONTROL_MASK:
-+ modifiers = gtk.accelerator_get_default_mod_mask()
-+ if state & modifiers == gdk.ModifierType.CONTROL_MASK:
- return ZoomAction
-- elif state & modifiers == Gdk.ModifierType.SHIFT_MASK:
-+ elif state & modifiers == gdk.ModifierType.SHIFT_MASK:
- return ZoomAreaAction
- else:
- return PanAction
-@@ -1831,7 +1831,7 @@ class DotWidget(Gtk.DrawingArea):
- return False
-
- def is_click(self, event, click_fuzz=4, click_timeout=1.0):
-- assert event.type == Gdk.EventType.BUTTON_RELEASE
-+ assert event.type == gdk.EventType.BUTTON_RELEASE
- if self.presstime is None:
- # got a button release without seeing the press?
- return False
-@@ -1873,11 +1873,11 @@ class DotWidget(Gtk.DrawingArea):
- return False
-
- def on_area_scroll_event(self, area, event):
-- if event.direction == Gdk.ScrollDirection.UP:
-+ if event.direction == gdk.ScrollDirection.UP:
- self.zoom_image(self.zoom_ratio * self.ZOOM_INCREMENT,
- pos=(event.x, event.y))
- return True
-- if event.direction == Gdk.ScrollDirection.DOWN:
-+ if event.direction == gdk.ScrollDirection.DOWN:
- self.zoom_image(self.zoom_ratio / self.ZOOM_INCREMENT,
- pos=(event.x, event.y))
- return True
-@@ -1918,14 +1918,14 @@ class DotWidget(Gtk.DrawingArea):
- return self.graph.get_jump(x, y)
-
-
--class FindMenuToolAction(Gtk.Action):
-+class FindMenuToolAction(gtk.Action):
- __gtype_name__ = "FindMenuToolAction"
-
- def do_create_tool_item(self):
-- return Gtk.ToolItem()
-+ return gtk.ToolItem()
-
-
--class DotWindow(Gtk.Window):
-+class DotWindow(gtk.Window):
-
- ui = '''
- <ui>
-@@ -1947,7 +1947,7 @@ class DotWindow(Gtk.Window):
- base_title = 'Dot Viewer'
-
- def __init__(self, widget=None):
-- Gtk.Window.__init__(self)
-+ gtk.Window.__init__(self)
-
- self.graph = Graph()
-
-@@ -1955,31 +1955,31 @@ class DotWindow(Gtk.Window):
-
- window.set_title(self.base_title)
- window.set_default_size(512, 512)
-- vbox = Gtk.VBox()
-+ vbox = gtk.VBox()
- window.add(vbox)
-
- self.dotwidget = widget or DotWidget()
-
- # Create a UIManager instance
-- uimanager = self.uimanager = Gtk.UIManager()
-+ uimanager = self.uimanager = gtk.UIManager()
-
- # Add the accelerator group to the toplevel window
- accelgroup = uimanager.get_accel_group()
- window.add_accel_group(accelgroup)
-
- # Create an ActionGroup
-- actiongroup = Gtk.ActionGroup('Actions')
-+ actiongroup = gtk.ActionGroup('Actions')
- self.actiongroup = actiongroup
-
- # Create actions
- actiongroup.add_actions((
-- ('Open', Gtk.STOCK_OPEN, None, None, None, self.on_open),
-- ('Reload', Gtk.STOCK_REFRESH, None, None, None, self.on_reload),
-- ('Print', Gtk.STOCK_PRINT, None, None, "Prints the currently visible part of the graph", self.dotwidget.on_print),
-- ('ZoomIn', Gtk.STOCK_ZOOM_IN, None, None, None, self.dotwidget.on_zoom_in),
-- ('ZoomOut', Gtk.STOCK_ZOOM_OUT, None, None, None, self.dotwidget.on_zoom_out),
-- ('ZoomFit', Gtk.STOCK_ZOOM_FIT, None, None, None, self.dotwidget.on_zoom_fit),
-- ('Zoom100', Gtk.STOCK_ZOOM_100, None, None, None, self.dotwidget.on_zoom_100),
-+ ('Open', gtk.STOCK_OPEN, None, None, None, self.on_open),
-+ ('Reload', gtk.STOCK_REFRESH, None, None, None, self.on_reload),
-+ ('Print', gtk.STOCK_PRINT, None, None, "Prints the currently visible part of the graph", self.dotwidget.on_print),
-+ ('ZoomIn', gtk.STOCK_ZOOM_IN, None, None, None, self.dotwidget.on_zoom_in),
-+ ('ZoomOut', gtk.STOCK_ZOOM_OUT, None, None, None, self.dotwidget.on_zoom_out),
-+ ('ZoomFit', gtk.STOCK_ZOOM_FIT, None, None, None, self.dotwidget.on_zoom_fit),
-+ ('Zoom100', gtk.STOCK_ZOOM_100, None, None, None, self.dotwidget.on_zoom_100),
- ))
-
- find_action = FindMenuToolAction("Find", None,
-@@ -2004,8 +2004,8 @@ class DotWindow(Gtk.Window):
-
- # Add Find text search
- find_toolitem = uimanager.get_widget('/ToolBar/Find')
-- self.textentry = Gtk.Entry(max_length=20)
-- self.textentry.set_icon_from_stock(0, Gtk.STOCK_FIND)
-+ self.textentry = gtk.Entry(max_length=20)
-+ self.textentry.set_icon_from_stock(0, gtk.STOCK_FIND)
- find_toolitem.add(self.textentry)
-
- self.textentry.set_activates_default(True)
-@@ -2073,23 +2073,23 @@ class DotWindow(Gtk.Window):
- self.error_dialog(str(ex))
-
- def on_open(self, action):
-- chooser = Gtk.FileChooserDialog(title="Open dot File",
-- action=Gtk.FileChooserAction.OPEN,
-- buttons=(Gtk.STOCK_CANCEL,
-- Gtk.ResponseType.CANCEL,
-- Gtk.STOCK_OPEN,
-- Gtk.ResponseType.OK))
-- chooser.set_default_response(Gtk.ResponseType.OK)
-+ chooser = gtk.FileChooserDialog(title="Open dot File",
-+ action=gtk.FileChooserAction.OPEN,
-+ buttons=(gtk.STOCK_CANCEL,
-+ gtk.ResponseType.CANCEL,
-+ gtk.STOCK_OPEN,
-+ gtk.ResponseType.OK))
-+ chooser.set_default_response(gtk.ResponseType.OK)
- chooser.set_current_folder(self.last_open_dir)
-- filter = Gtk.FileFilter()
-+ filter = gtk.FileFilter()
- filter.set_name("Graphviz dot files")
- filter.add_pattern("*.dot")
- chooser.add_filter(filter)
-- filter = Gtk.FileFilter()
-+ filter = gtk.FileFilter()
- filter.set_name("All files")
- filter.add_pattern("*")
- chooser.add_filter(filter)
-- if chooser.run() == Gtk.ResponseType.OK:
-+ if chooser.run() == gtk.ResponseType.OK:
- filename = chooser.get_filename()
- self.last_open_dir = chooser.get_current_folder()
- chooser.destroy()
-@@ -2101,9 +2101,9 @@ class DotWindow(Gtk.Window):
- self.dotwidget.reload()
-
- def error_dialog(self, message):
-- dlg = Gtk.MessageDialog(type=Gtk.MessageType.ERROR,
-+ dlg = gtk.MessageDialog(type=gtk.MessageType.ERROR,
- message_format=message,
-- buttons=Gtk.ButtonsType.OK)
-+ buttons=gtk.ButtonsType.OK)
- dlg.set_title(self.base_title)
- dlg.run()
- dlg.destroy()
-@@ -2150,14 +2150,14 @@ Shortcuts:
- parser.error('incorrect number of arguments')
-
- win = DotWindow()
-- win.connect('delete-event', Gtk.main_quit)
-+ win.connect('delete-event', gtk.main_quit)
- win.set_filter(options.filter)
- if len(args) >= 1:
- if args[0] == '-':
- win.set_dotcode(sys.stdin.read())
- else:
- win.open_file(args[0])
-- Gtk.main()
-+ gtk.main()
-
-
- # Apache-Style Software License for ColorBrewer software and ColorBrewer Color