--- /dev/null
+doted.tcl - Graph Editor based on dot
+
+Author: John Ellson <ellson@graphviz.org>
+
+Package requires: wish, tcldot, tkspline
+
+A graph editor with batch layout. This script is designed to exercise
+the graph layout package: tcldot
+
+The button in the lower-right corner triggers a relayout of the graph.
+
+To Do:
+ - complete Help feature
+ - add zooming
+ - make it easier to edit attributes
--- /dev/null
+#!/bin/sh
+# next line is a comment in tcl \
+exec tclsh "$0" ${1+"$@"}
+
+package require Tcldot
+
+# gcat f1 [f2 ... ]
+#
+# merge a number of digraphs into one and output to stdout
+#
+# John Ellson <ellson@graphviz.org>
+#
+
+# merge graph $g2 into $g
+proc merge {g g2} {
+ foreach i [$g2 listnodes] {
+ set n [$g addnode [$i showname]]
+ $n setattributes [$i queryattributevalues [$i listattributes]]
+ }
+ foreach i [$g2 listedges] {
+ foreach {t h} [$i listnodes] {break}
+ set e [$g addedge [$t showname] [$h showname]]
+ $e setattributes [$i queryattributevalues [$i listattributes]]
+ }
+}
+
+set g [dotnew digraph]
+if {$argc} {
+ foreach file $argv {
+ set f [open $file r]
+ if {[catch {dotread $f} g2]} {
+ puts stderr $g2
+ exit
+ }
+ merge $g $g2
+ close $f
+ }
+} {
+ while {![catch {dotread stdin} g2]} {
+ merge $g $g2
+ }
+ if {![eof stdin]} {
+ puts stderr $g2
+ exit
+ }
+}
+$g write stdout CANON
--- /dev/null
+gcat.tcl - simple graph filter using tcldot
+
+Author: John Ellson <ellson@graphviz.org>
+
+Package requires: tclsh, tcldot
+
+Usage: gcat.tcl f1 [f2 ... ]
+
+merge a number of digraphs into one and output to stdout