#!/usr/bin/env perl

# small hack around emacs' gdb argument passing:
# filter out gdb args


$pd_debug = $ENV{"PD_HOME"} . "/bin/pd.debug";


print "input args = " . join(" ", @ARGV) . "\n";

while ($arg = shift (@ARGV)){

    # one atom
    if ($arg eq "-fullname") {
	push @GDBARGV, $arg;
	push @GDBARGV, $pd_debug;
    }
    
    # two atoms
    elsif ($arg eq "-cd") {
	push @GDBARGV, $arg;
	push @GDBARGV, (shift (@ARGV));
    }
    
    # pd arg
    else {
	push @PDARGV, $arg;
    }
}

# debug


print "->pd  args = " . join(" ", @PDARGV) . "\n";
print "->gdb args = " . join(" ", @GDBARGV) . "\n";

# create command file
$cmd = "/tmp/pd.gdb.cmd";

open CMD, ">$cmd";
print CMD "file " . $pd_debug . "\n";
print CMD "set args " . join(" ", @PDARGV) . "\n";
print CMD "r\n";
close CMD;

# start gdb
exec "gdb" , "-x", $cmd, @GDBARGV;

    


