[PD-cvs] externals/gridflow/bin backtrace, NONE, 1.1 demangle, NONE, 1.1 jmax2pd, NONE, 1.1 plusminus, NONE, 1.1

Mathieu Bouchard matju at users.sourceforge.net
Tue Oct 4 04:12:45 CEST 2005


Update of /cvsroot/pure-data/externals/gridflow/bin
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23360/bin

Added Files:
	backtrace demangle jmax2pd plusminus 
Log Message:
added the remainder of the files (or almost) from GF 0.8.0


--- NEW FILE: backtrace ---
#!/usr/bin/env ruby
if ARGV.length != 1
  puts "usage: core.rb <corefile>"
  exit 1
end
qfile=ARGV[0].gsub /'/, "\\\\'"
x=`gdb --batch -c '#{qfile}'`.split"\n"
m=/`([^']+)/.match x[0]
f=File.open("/tmp/backtrace_#{$$}.gdb","w")
f.puts"bt"
f.puts"quit"
f.close
cmd="gdb #{m[1]} #{qfile} --command=/tmp/backtrace_#{$$}.gdb"
x=`#{cmd}`.split("\n")
i=nil
x.each_with_index {|line,i| break if /^#0/ =~ line }
x[0..i]=[]
puts x

--- NEW FILE: plusminus ---
#!/usr/bin/env ruby
# NOTE: this works with diff -u only!!!

puts "-"*64

$plustot=0
$minustot=0

def show
  printf "%20s %+5d %+5d (net %+5d)\n", $file, $plus, -$minus, $plus-$minus
end

loop{
  line = gets
  break if not line
  if /^diff/.match line then
    x = line.split(/\s+/)
    $plustot+=$plus if $plus
    $minustot+=$minus if $minus
    show if $file
    $file = x[-1]
    $on=false
    $plus=0
    $minus=0
  elsif /^\@\@/ =~ line then $on=true
  elsif $on and /^\+/ =~ line then $plus+=1
  elsif $on and /^\-/ =~ line then $minus+=1
  end
}

$plustot+=$plus if $plus
$minustot+=$minus if $minus
show if $file

$file="total"
$plus=$plustot
$minus=$minustot
puts "-"*64
show

--- NEW FILE: demangle ---
#!/usr/bin/env ruby
f = File.popen "gdb", "r+"
f.puts "maintenance demangle #{ARGV[0]}", "quit"
puts f.read.split("\n")[-2].sub(/^\(gdb\) /,"")

--- NEW FILE: jmax2pd ---
#!/usr/bin/env ruby

require "gridflow"
require "gridflow/extra/jmax_format.rb"
require "gridflow/extra/puredata_format.rb"
include GridFlow
#GridFlow.verbose = true

iname,oname = ARGV
if not iname
  raise "usage: jmax2pd <input.jmax> [<output.pd>]"
end
if not oname
  oname = iname.sub(/\.jmax$/,".pd")
end
keep=["broken","jpatcher","button","slider","messbox"]
GridFlow.instance_eval{@fclasses_set.delete_if {|k,v|
  not keep.include? k
}}
#p GridFlow.instance_eval{@fclasses_set.keys.sort}
	
jfr = JMaxFileReader.new(File.open(iname),FObject)
FObject.broken_ok = true
FObject.do_loadbangs = false
my_patcher = jfr.parse
pfw = PureDataFileWriter.new(oname)
pfw.write_patcher my_patcher
pfw.close






More information about the Pd-cvs mailing list