Mister Spy Say ="Hello Kids ... :D"
___ ____ _ _____
| \/ (_) | | / ___|
| . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _
| |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | |
| | | | \__ \ || __/ | /\__/ / |_) | |_| |
\_| |_/_|___/\__\___|_| \____/| .__/ \__, |
| | __/ |
|_| |___/
Bot Mister Spy V3
Mister Spy
Mister Spy
/* Looks for multiedges and loops, and output
* those found along with counts. If the -d flag
* is given, edge direction is taken into account.
*/
BEGIN{
char* ename;
char* n;
int doDir, cnt[];
int loopcnt[];
int nloops, nmulti;
if ((ARGC > 0) && (ARGV[0] == "-d"))
doDir = 1;
else
doDir = 0;
}
BEG_G{unset(cnt); unset(loopcnt); nloops = nmulti = 0;}
E{
if (doDir || (tail.name <= head.name)) ename=tail.name+"_"+head.name;
else ename = head.name+"_"+tail.name;
if (tail == head) {
loopcnt[ename] += 1;
if (loopcnt[ename] == 1) nloops += 1;
}
else {
cnt[ename] += 1;
if (cnt[ename] == 2) nmulti += 1;
}
}
END_G{
printf ("graph %s: %d loops %d multiedges\n", $.name, nloops, nmulti);
for (cnt[n]) {
if (cnt[n] > 1)
printf ("%s : %d\n", n, cnt[n]);
}
for (loopcnt[n]) {
if (loopcnt[n] > 0)
printf ("%s : %d\n", n, loopcnt[n]);
}
}
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat