1#!/usr/bin/perl
2
3# Written by Marc Espie, 2001.
4# Public domain
5
6@cycle = ();
7
8sub show_cycle()
9{
10	return if @cycle == 0;
11	$min = 'zzzzz';
12	for ($i = 0; $i < @cycle; $i++) {
13		if ($cycle[$i] lt $min) {
14			$minindex = $i;
15			$min = $cycle[$i];
16		}
17	}
18	@ordered=();
19	for ($i = $minindex; $i <@cycle; $i++) {
20		push(@ordered, $cycle[$i]);
21	}
22	for ($i = 0; $i < $minindex; $i++) {
23		push(@ordered, $cycle[$i]);
24	}
25	print join(',', @ordered), "\n";
26}
27
28while (<>) {
29	chomp;
30	if ($_ eq 'tsort: cycle in data') {
31		show_cycle();
32		@cycle = ();
33	} else {
34		m/^tsort:\s+/ and push(@cycle, $');
35	}
36}
37show_cycle();
38