Script started on Thu 22 Jul 2010 12:03:17 PM EDT
ijdavis@swag:~/src/acd$ make
g++ -c -O2 -I. -Wall -DNDEBUG acd.cpp
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
g++ -o acd -O2 -I. -Wall -DNDEBUG ../binutils-2.16.1/libiberty/xexit.o ../binutils-2.16.1/libiberty/xmalloc.o ../binutils-2.16.1/libiberty/xstrdup.o ../binutils-2.16.1/libiberty/safe-ctype.o ../binutils-2.16.1/libiberty/dyn-string.o ../binutils-2.16.1/libiberty/cp-demangle.o ../binutils-2.16.1/libiberty/cplus-dem.o  data.o object.o util.o xmalloc.o ta.o clics_output.o dwarf.o match.o detect.o file.o function.o fileref.o clone.o directory.o source.o label.o read_linux.o read_windows.o acd.o
ijdavis@swag:~/src/acd$ make clean
/bin/rm -f *.o *.s acd
ijdavis@swag:~/src/acd$ make
g++ -c -O2 -I. -Wall -DNDEBUG data.cpp
g++ -c -O2 -I. -Wall -DNDEBUG object.cpp
g++ -c -O2 -I. -Wall -DNDEBUG util.cpp
g++ -c -O2 -I. -Wall -DNDEBUG xmalloc.cpp
g++ -c -O2 -I. -Wall -DNDEBUG ta.cpp
g++ -c -O2 -I. -Wall -DNDEBUG clics_output.cpp
g++ -c -O2 -I. -Wall -DNDEBUG dwarf.cpp
dwarf.cpp: In member function ‘void Cdwarf::load_locations(char*, char*, locationT**, int)’:
dwarf.cpp:2032: warning: ‘nameP’ may be used uninitialized in this function
dwarf.cpp: In member function ‘int Cdwarf::load_node(char**, char**, dwarf_nodeT**)’:
dwarf.cpp:1499: warning: ‘lth’ may be used uninitialized in this function
g++ -c -O2 -I. -Wall -DNDEBUG match.cpp
g++ -c -O2 -I. -Wall -DNDEBUG detect.cpp
g++ -c -O2 -I. -Wall -DNDEBUG file.cpp
g++ -c -O2 -I. -Wall -DNDEBUG  -I../binutils-2.16.1/include function.cpp
function.cpp: In member function ‘Cclone* Cfunction::locate_clone(const codeT*, const codeT*)’:
function.cpp:406: warning: deprecated conversion from string constant to ‘char*’
function.cpp: In member function ‘void Cfunction::update_names(int, locationT*, codeT*)’:
function.cpp:131: warning: ‘frame_offset’ may be used uninitialized in this function
function.cpp:129: warning: ‘numberP’ may be used uninitialized in this function
g++ -c -O2 -I. -Wall -DNDEBUG fileref.cpp
g++ -c -O2 -I. -Wall -DNDEBUG  clone.cpp
g++ -c -O2 -I. -Wall -DNDEBUG directory.cpp
g++ -c -O2 -I. -Wall -DNDEBUG source.cpp
g++ -c -O2 -I. -Wall -DNDEBUG label.cpp
g++ -c -O2 -I. -Wall -DNDEBUG read_linux.cpp
read_linux.cpp: In function ‘int process_command(int, char**)’:
read_linux.cpp:951: warning: deprecated conversion from string constant to ‘char*’
read_linux.cpp:953: warning: deprecated conversion from string constant to ‘char*’
read_linux.cpp:955: warning: deprecated conversion from string constant to ‘char*’
read_linux.cpp:957: warning: deprecated conversion from string constant to ‘char*’
g++ -c -O2 -I. -Wall -DNDEBUG read_windows.cpp
g++ -c -O2 -I. -Wall -DNDEBUG acd.cpp
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
g++ -o acd -O2 -I. -Wall -DNDEBUG ../binutils-2.16.1/libiberty/xexit.o ../binutils-2.16.1/libiberty/xmalloc.o ../binutils-2.16.1/libiberty/xstrdup.o ../binutils-2.16.1/libiberty/safe-ctype.o ../binutils-2.16.1/libiberty/dyn-string.o ../binutils-2.16.1/libiberty/cp-demangle.o ../binutils-2.16.1/libiberty/cplus-dem.o  data.o object.o util.o xmalloc.o ta.o clics_output.o dwarf.o match.o detect.o file.o function.o fileref.o clone.o directory.o source.o label.o read_linux.o read_windows.o acd.o
ijdavis@swag:~/src/acd$ 
ijdavis@swag:~/src/acd$ ls
acd				      function.h		   object.h
acd.cpp				      function.o		   object.o
acd.o				      git-clones30		   read_assembler.h
acd.sln				      git_clones_30_bauhaus.clics  read_linux.cpp
acd.vcproj			      git-clones60		   read_linux.o
acd.vcproj.GENEVA.Administrator.user  git_clones_60_bauhaus.clics  README
a.out				      git-clones69		   read_windows.cpp
clics_output.cpp		      git-data30.h		   read_windows.o
clics_output.h			      git-data60.h		   run
clics_output.o			      git-data69.h		   run1
clone.cpp			      git-rcf30.h		   run2
clone.h				      git-rcf60.h		   run2a
clone.o				      history.acd		   run2b
code.h				      history.git		   runa
data.c.old			      history.git.1		   scsi
data.cpp			      history.junk		   scsi1
data.h				      history.linux		   scsi2
data.o				      history.linux1		   scsi.history
detect.cpp			      in-progress		   source.cpp
detect.h			      junk			   source.h
detect.o			      junk1			   source.o
directory.cpp			      junk2			   stringcache.cpp
directory.h			      junk2b			   stringcache.h
directory.o			      label.cpp			   ta.cpp
dwarf.cpp			      label.h			   ta.h
dwarf.h				      label.o			   ta.o
dwarf.o				      location.h		   test.cpp
file.cpp			      Makefile			   typescript
file.h				      match1.cpp		   util.cpp
file.o				      match1.h			   util.h
fileref.cpp			      match.cpp			   util.o
fileref.h			      match.h			   xmalloc.cpp
fileref.o			      match.o			   xmalloc.h
function.cpp			      object.cpp		   xmalloc.o
ijdavis@swag:~/src/acd$ vi run2a
[?1h=[1;24r[m[m[0m[H[J[24;1H"run2a" 
"run2a" 8L, 80C[1;1H./run2 12
./run2 16
./run2 20
./run2 24
./run2 28
./run2 32
./run2 36
./run2 40
[1m~
~
~
~
~
~
~
~
~
~
~
~
~
~
~[0m[24;73H1,1           All[1;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ vi run2
[?1h=[1;24r[m[m[0m[H[J[24;1H"run2" 
"run2" 4L, 227C[1;1Hmkdir /home/ijdavis/public_html/acd/git-clics60-$1
/bin/rm -r /home/ijdavis/public_html/acd/git-clics60-$1
echo Length $1
time ./acd -b -u 0 -l $1 -L $1 -k -S -R -r -h /home/ijdavis/public_html/acd/git-clics60-$11[5;1H < history.git
[1m~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~[0m[24;73H1,1           All[1;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ vi run2a
[?1h=[1;24r[m[m[0m[H[J[24;1H"run2a" 
"run2a" 8L, 80C[1;1H./run2 12
./run2 16
./run2 20
./run2 24
./run2 28
./run2 32
./run2 36
./run2 40
[1m~
~
~
~
~
~
~
~
~
~
~
~
~
~
~[0m[24;73H1,1           All[1;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ ./run2 40
Length 40


Read 224 Compiled 0 Failed 0
Done secs=7 clones=473 matches=24433 -u 0 extra=0 iterations=0


real	0m7.838s
user	0m7.624s
sys	0m0.072s
ijdavis@swag:~/src/acd$ vi run2
[?1h=[1;24r[m[m[0m[H[J[24;1H"run2" 
"run2" 4L, 227C[1;1Hmkdir /home/ijdavis/public_html/acd/git-clics60-$1
/bin/rm -r /home/ijdavis/public_html/acd/git-clics60-$1
echo Length $1
time ./acd -b -u 0 -l $1 -L $1 -k -S -R -r -h /home/ijdavis/public_html/acd/git-clics60-$11[5;1H < history.git
[1m~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~[0m[24;73H1,1           All[1;1H[24;73H2,1           All[2;1H[24;73H3,1           All[3;1H[24;73H4,1           All[4;1H[24;73H4,2           All[4;2H[24;73H4,3           All[4;3H[24;73H4,4           All[4;4H[24;73H4,5           All[4;5H[24;73H4,6           All[4;6H[24;73H4,7           All[4;7H[24;73H4,8           All[4;8H[24;73H4,9           All[4;9H[24;73H4,10          All[4;10H[24;73H4,11          All[4;11H[24;73H4,12          All[4;12H[24;73H4,13          All[4;13H[24;73H4,14          All[4;14H[24;73H4,15          All[4;15H[24;73H4,16          All[4;16H[24;73H4,17          All[4;17H[24;73H4,18          All[4;18H[24;73H4,19          All[4;19H[24;73H4,20          All[4;20H[24;73H4,21          All[4;21H[24;73H4,22          All[4;22H[24;73H4,23          All[4;23H[24;73H4,24          All[4;24H[24;73H4,25          All[4;25H[24;73H4,26          All[4;26H[24;73H4,27          All[4;27H[24;73H4,28          All[4;28H[24;73H4,29          All[4;29H[24;73H4,30          All[4;30H[24;73H4,31          All[4;31H[24;73H4,32          All[4;32H[24;73H4,33          All[4;33H[24;73H4,34          All[4;34H[24;73H4,35          All[4;35H[24;73H4,36          All[4;36H[24;73H4,37          All[4;37H[24;73H4,38          All[4;38H R -r -h /home/ijdavis/public_html/acd/git-clics60-$1  [5;1H< history.git[5;14H[K[4;38H  -r -h /home/ijdavis/public_html/acd/git-clics60-$1 <<[5;1H history.git[5;13H[K[4;38H -r -h /home/ijdavis/public_html/acd/git-clics60-$1 <  [5;1Hhistory.git[5;12H[K[4;38H r -h /home/ijdavis/public_html/acd/git-clics60-$1 < hh[5;1History.git[5;11H[K[4;38H  -h /home/ijdavis/public_html/acd/git-clics60-$1 < hii[5;1Hstory.git[5;10H[K[4;38H -h /home/ijdavis/public_html/acd/git-clics60-$1 < hiss[5;1Htory.git[5;9H[K[4;38H[24;1H[K[24;1H:w
:w
"run2" 
"run2" 4L, 221C written[49C4,38          All
"run2" 4L, 221C written[24;73H[K[24;73H4,38          All[4;38H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ cd ~/public_html
ijdavis@swag:~/public_html$ cd acd
ijdavis@swag:~/public_html/acd$ ls
git-clics60-13	git-clics60-14	git-clics60-40	git-clics60-45	git-clics60-46
ijdavis@swag:~/public_html/acd$ cd git-clics5[K60-40
ijdavis@swag:~/public_html/acd/git-clics60-40$ ls
index.html  s20.html  s31.html	s44.html  s56.html  s67.html  s7.html	s90.html
s10.html    s21.html  s32.html	s45.html  s57.html  s68.html  s80.html	s92.html
s11.html    s22.html  s34.html	s46.html  s58.html  s69.html  s81.html	s93.html
s12.html    s23.html  s35.html	s47.html  s59.html  s70.html  s82.html	s94.html
s13.html    s24.html  s36.html	s48.html  s5.html   s71.html  s83.html	s95.html
s14.html    s26.html  s37.html	s4.html   s60.html  s72.html  s84.html	s9.html
s16.html    s27.html  s38.html	s50.html  s61.html  s74.html  s85.html
s17.html    s28.html  s39.html	s51.html  s62.html  s75.html  s87.html
s18.html    s29.html  s40.html	s52.html  s64.html  s76.html  s88.html
s19.html    s2.html   s42.html	s54.html  s65.html  s77.html  s89.html
s1.html     s30.html  s43.html	s55.html  s66.html  s79.html  s8.html
ijdavis@swag:~/public_html/acd/git-clics60-40$ cd
ijdavis@swag:~$ cd src
ijdavis@swag:~/src$ vi run2
[?1h=[1;24r[m[m[0m[H[J[24;1H"run2" [New File][2;1H[1m~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~[0m[24;73H0,0-1         All[1;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src$ cd acd
ijdavis@swag:~/src/acd$ vi run2
[?1h=[1;24r[m[m[0m[H[J[24;1H"run2" 
"run2" 4L, 221C[1;1Hmkdir /home/ijdavis/public_html/acd/git-clics60-$1
/bin/rm -r /home/ijdavis/public_html/acd/git-clics60-$1
echo Length $1
time ./acd -b -u 0 -l $1 -L $1 -k -S -h /home/ijdavis/public_html/acd/git-clics60-$1 < hiss[5;1Htory.git
[1m~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~[0m[24;73H1,1           All[1;1H[24;73H2,1           All[2;1H[24;73H3,1           All[3;1H[24;73H4,1           All[4;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ run2 40
bash: run2: command not found
ijdavis@swag:~/src/acd$ ./run2 40
mkdir: cannot create directory `/home/ijdavis/public_html/acd/git-clics60-40': File exists
Length 40


Read 224 Compiled 0 Failed 0
Done secs=8 clones=473 matches=24433 -u 0 extra=0 iterations=0


real	0m7.815s
user	0m7.600s
sys	0m0.120s
ijdavis@swag:~/src/acd$ vi run2
[?1h=[1;24r[m[m[0m[H[J[24;1H"run2" 
"run2" 4L, 221C[1;1Hmkdir /home/ijdavis/public_html/acd/git-clics60-$1
/bin/rm -r /home/ijdavis/public_html/acd/git-clics60-$1
echo Length $1
time ./acd -b -u 0 -l $1 -L $1 -k -S -h /home/ijdavis/public_html/acd/git-clics60-$1 < hiss[5;1Htory.git
[1m~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~[0m[24;73H1,1           All[1;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ c [Kd ..
ijdavis@swag:~/src$ cd ../pul[Kblic_html
ijdavis@swag:~/public_html$ ls
acd  linux
ijdavis@swag:~/public_html$ cd acd
ijdavis@swag:~/public_html/acd$ ls
git-clics60-13	git-clics60-14	git-clics60-40	git-clics60-45	git-clics60-46
ijdavis@swag:~/public_html/acd$ cd git-clone[K[K[Kics50[K[K60-40
ijdavis@swag:~/public_html/acd/git-clics60-40$ ls
100.html  164.html  227.html  290.html	353.html  416.html  52.html	s27.html
101.html  165.html  228.html  291.html	354.html  417.html  53.html	s28.html
102.html  166.html  229.html  292.html	355.html  418.html  54.html	s29.html
103.html  167.html  22.html   293.html	356.html  419.html  55.html	s2.html
104.html  168.html  230.html  294.html	357.html  41.html   56.html	s30.html
105.html  169.html  231.html  295.html	358.html  420.html  57.html	s31.html
106.html  16.html   232.html  296.html	359.html  421.html  58.html	s32.html
107.html  170.html  233.html  297.html	35.html   422.html  59.html	s34.html
108.html  171.html  234.html  298.html	360.html  423.html  5.html	s35.html
109.html  172.html  235.html  299.html	361.html  424.html  60.html	s36.html
10.html   173.html  236.html  29.html	362.html  425.html  61.html	s37.html
110.html  174.html  237.html  2.html	363.html  426.html  62.html	s38.html
111.html  175.html  238.html  300.html	364.html  427.html  63.html	s39.html
112.html  176.html  239.html  301.html	365.html  428.html  64.html	s40.html
113.html  177.html  23.html   302.html	366.html  429.html  65.html	s42.html
114.html  178.html  240.html  303.html	367.html  42.html   66.html	s43.html
115.html  179.html  241.html  304.html	368.html  430.html  67.html	s44.html
116.html  17.html   242.html  305.html	369.html  431.html  68.html	s45.html
117.html  180.html  243.html  306.html	36.html   432.html  69.html	s46.html
118.html  181.html  244.html  307.html	370.html  433.html  6.html	s47.html
119.html  182.html  245.html  308.html	371.html  434.html  70.html	s48.html
11.html   183.html  246.html  309.html	372.html  435.html  71.html	s4.html
120.html  184.html  247.html  30.html	373.html  436.html  72.html	s50.html
121.html  185.html  248.html  310.html	374.html  437.html  73.html	s51.html
122.html  186.html  249.html  311.html	375.html  438.html  74.html	s52.html
123.html  187.html  24.html   312.html	376.html  439.html  75.html	s54.html
124.html  188.html  250.html  313.html	377.html  43.html   76.html	s55.html
125.html  189.html  251.html  314.html	378.html  440.html  77.html	s56.html
126.html  18.html   252.html  315.html	379.html  441.html  78.html	s57.html
127.html  190.html  253.html  316.html	37.html   442.html  79.html	s58.html
128.html  191.html  254.html  317.html	380.html  443.html  7.html	s59.html
129.html  192.html  255.html  318.html	381.html  444.html  80.html	s5.html
12.html   193.html  256.html  319.html	382.html  445.html  81.html	s60.html
130.html  194.html  257.html  31.html	383.html  446.html  82.html	s61.html
131.html  195.html  258.html  320.html	384.html  447.html  83.html	s62.html
132.html  196.html  259.html  321.html	385.html  448.html  84.html	s64.html
133.html  197.html  25.html   322.html	386.html  449.html  85.html	s65.html
134.html  198.html  260.html  323.html	387.html  44.html   86.html	s66.html
135.html  199.html  261.html  324.html	388.html  450.html  87.html	s67.html
136.html  19.html   262.html  325.html	389.html  451.html  88.html	s68.html
137.html  1.html    263.html  326.html	38.html   452.html  89.html	s69.html
138.html  200.html  264.html  327.html	390.html  453.html  8.html	s70.html
139.html  201.html  265.html  328.html	391.html  454.html  90.html	s71.html
13.html   202.html  266.html  329.html	392.html  455.html  91.html	s72.html
140.html  203.html  267.html  32.html	393.html  456.html  92.html	s74.html
141.html  204.html  268.html  330.html	394.html  457.html  93.html	s75.html
142.html  205.html  269.html  331.html	395.html  458.html  94.html	s76.html
143.html  206.html  26.html   332.html	396.html  459.html  95.html	s77.html
144.html  207.html  270.html  333.html	397.html  45.html   96.html	s79.html
145.html  208.html  271.html  334.html	398.html  460.html  97.html	s7.html
146.html  209.html  272.html  335.html	399.html  461.html  98.html	s80.html
147.html  20.html   273.html  336.html	39.html   462.html  99.html	s81.html
148.html  210.html  274.html  337.html	3.html	  463.html  9.html	s82.html
149.html  211.html  275.html  338.html	400.html  464.html  index.html	s83.html
14.html   212.html  276.html  339.html	401.html  465.html  s10.html	s84.html
150.html  213.html  277.html  33.html	402.html  466.html  s11.html	s85.html
151.html  214.html  278.html  340.html	403.html  467.html  s12.html	s87.html
152.html  215.html  279.html  341.html	404.html  468.html  s13.html	s88.html
153.html  216.html  27.html   342.html	405.html  469.html  s14.html	s89.html
154.html  217.html  280.html  343.html	406.html  46.html   s16.html	s8.html
155.html  218.html  281.html  344.html	407.html  470.html  s17.html	s90.html
156.html  219.html  282.html  345.html	408.html  471.html  s18.html	s92.html
157.html  21.html   283.html  346.html	409.html  472.html  s19.html	s93.html
158.html  220.html  284.html  347.html	40.html   473.html  s1.html	s94.html
159.html  221.html  285.html  348.html	410.html  47.html   s20.html	s95.html
15.html   222.html  286.html  349.html	411.html  48.html   s21.html	s9.html
160.html  223.html  287.html  34.html	412.html  49.html   s22.html	top.html
161.html  224.html  288.html  350.html	413.html  4.html    s23.html
162.html  225.html  289.html  351.html	414.html  50.html   s24.html
163.html  226.html  28.html   352.html	415.html  51.html   s26.html
ijdavis@swag:~/public_html/acd/git-clics60-40$ 
ijdavis@swag:~/public_html/acd/git-clics60-40$ cd
ijdavis@swag:~$ cd src/acd
ijdavis@swag:~/src/acd$ vi acd.cpp
[?1h=[1;24r[m[m[0m[H[J[24;1H"acd.cpp" 
"acd.cpp" 641L, 14334C[1;1H[4m#ifdef WIN32

#define _CRT_SECURE_NO_WARNINGS

#include <Windows.h>
#include <io.h>
#include <direct.h>

#endif

#include <assert.h>
#include <sys/types.h>
#include <sys/stat.h>
#ifndef WIN32
#include <sys/resource.h>
#include <sys/wait.h>
#endif
#include <ctype.h>
#include <signal.h>
#include <setjmp.h>
#include <fcntl.h>
#include <time.h>
#include <stdio.h>[m[24;73H1,1           Top[1;1H[24;1H[K[24;1H:5
:53
:536
:536
[m[m[0m[H[J[1;4H start_clock = time([4m0[m);[3;4H g_envPP = env;
    get_environment(argc, argv);
    initialise_detect();
    init_lookup_chars();[8;4H print_title(argc, argv);
    clics_header(argc, argv);
    ta_header(argc, argv);
    [1mif[0m (g_report) {[12;8H fprintf(indexF, [4m"<h3>Processing</h3>[m[1m\n[0m[4m"[m);
    }[15;4H stdin_buffer_lth = [4m256[m;
    stdin_bufferP    = [4m0[m;
    [1mwhile[0m (getline1(&stdin_bufferP, &stdin_buffer_lth, stdinF) >= [4m0[m) {[18;8H ++g_stdin_lineno;[19;8H [1m// fprintf(stderr, "%d: %s\n", g_stdin_lineno, stdin_bufferP);[0m[20;8H read_assembler(stdin_bufferP);
    }
    Xfree(stdin_bufferP);
    [1mif[0m (stdinF != [4mstdin[m) {[24;73H536,3-9       84%[12;9H[24;73H535,6-9       84%[11;9H[11;23r[23;1H
[1;24r[23;8H fclose(stdinF);[24;73H[K[24;73H535,3-9       84%[11;9H[24;73H535,2-8       84%[11;8H fprintf(indexF, [4m"<h3>Processing</h3>[m[1m\n[0m[4m"[m);[11;46H[K[24;73H535,2-5       84%[11;5H[24;73H536,2-5       84%[12;5H[12;23r[23;1H
[1;24r[23;8H stdinF = [4mstdin[m;[24;73H[K[24;73H536,0-1       85%[12;1H[24;73H[K[24;1H:w
:w
"acd.cpp" 
"acd.cpp" 639L, 14313C written[42C536,0-1       85%
"acd.cpp" 639L, 14313C written[24;73H[K[24;73H536,0-1       85%[12;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ grep segmentT *.cpp
data.cpp:} segmentT;
data.cpp:	segmentT	*headPP[3];
data.cpp:	segmentT		**headPP;
data.cpp:	segmentT		*segmentP, *segment1P;
data.cpp:	segmentP = (segmentT *) Xmalloc(sizeof(segmentT));
data.cpp:	segmentT		*segmentP;
ijdavis@swag:~/src/acd$ vi data.cpp
[?1h=[1;24r[m[m[0m[H[J[24;1H"data.cpp" 
"data.cpp" 685L, 19331C[1;1H[4m#ifdef CORRELATE[m

[1m/* This code exists purely for research purposes.  When the -z option is
 * enabled this code is invoked with the intent of comparing the behaviour
 * of ACD to some other clone detection tool.  It is of no general use
 * since the inputs are hard coded into it.  Only by changing this code
 * on a needs basis might it serve any useful purpose to the general
 * user.
 */[0m

[4m#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
#ifdef WIN32
#define snprintf _snprintf
#endif

#include "object.h"
#include "xmalloc.h"
#include "util.h"
#include "file.h"
#include "location.h"[m[24;73H1,1           Top[1;1H[24;1H[K[24;1H/s
/se
/seg
/segm
/segme
/segmen
/segment
/segmentT
/segmentT
/segmentT
[m[m[0m[H[J[1;1H[4m#include "data.h"

#define SOURCE_TYPE     0
#define ACD_TYPE        1
#define CLIC_TYPE       2
#define OUTSIDE_BUILD   4

typedef[m [4mstruct[m segmentS {
    [4mint[m[16C start;
    [4mint[m[16C end;    [1m// Lineno[0m
    [4mstruct[m segmentS     *nextP;
} segmentT;

[4mtypedef[m [4mstruct[m {
    [4mint[m[8C id;
    [4mint[m[8C lines;
    [4mchar[m[7C *nameP;
    [4mint[m[8C type;
    segmentT    *headPP[[4m3[m];

} source_dataT;

[4mtypedef[m [4mstruct[m {[24;73H38,3           3%[12;3H[24;1H/segmentT[24;73H[K[24;1H[72C45,2-5         3%[19;5H[24;1H/segmentT[24;73H[K[24;1H[m[m[0m[H[J[1;12H clone_dataP->clone2_file  = temp.clone1_file;[2;12H clone_dataP->start_clone2 = temp.start_clone1;[3;12H clone_dataP->end_clone2   = temp.end_clone1;[4;8H }
    }
}

[4mstatic[m [4mvoid[m
apply_segment1([4mint[m source, [4mint[m start, [4mint[m end, [4mint[m type)
{
    source_dataT    *sourceP;
    segmentT[7C **headPP;
    segmentT[7C *segmentP, *segment1P;[15;4H sourceP = source_data + source;
    headPP  = sourceP->headPP + type;
    assert (sourceP->lines >= end);
    [1mfor[0m (segmentP = *headPP; segmentP; segmentP = segmentP->nextP) {[19;8H [1mif[0m (end   < segmentP->start - [4m1[m ||[20;12H start > segmentP->end + [4m1[m) {[21;12H [1mcontinue[0m;[22;8H }[23;8H [1mif[0m (start < segmentP->start) {[24;73H183,2-5       25%[12;5H[24;73H184,2-5       25%[13;5H[24;73H185,0-1       25%[14;1H[24;73H186,2-5       25%[15;5H[24;73H187,2-5       25%[16;5H[24;73H188,2-5       25%[17;5H[24;73H189,2-5       25%[18;5H[24;73H190,3-9       25%[19;9H[24;73H191,4-13      25%[20;13H[24;73H192,4-13      25%[21;13H[24;73H193,3-9       25%[22;9H[24;73H194,3-9       25%[23;9H[1;23r[23;1H
[1;24r[23;12H segmentP->start = start;[24;73H[K[24;73H195,4-13      25%[23;13H[1;23r[23;1H
[1;24r[23;8H } [1melse[0m {[24;73H[K[24;73H196,3-9       26%[23;9H[1;23r[23;1H
[1;24r[23;12H start[10C = segmentP->start;[24;73H[K[24;73H197,4-13      26%[23;13H[1;23r[23;1H
[1;24r[23;8H }[24;73H[K[24;73H198,3-9       26%[23;9H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (end > segmentP->end) {[24;73H[K[24;73H199,3-9       26%[23;9H[1;23r[23;1H
[1;24r[23;12H segmentP->end = end;[24;73H[K[24;73H200,4-13      26%[23;13H[1;23r[23;1H
[1;24r[23;8H } [1melse[0m {[24;73H[K[24;73H201,3-9       26%[23;9H[1;23r[23;1H
[1;24r[23;12H end[10C = segmentP->end;[24;73H[K[24;73H202,4-13      27%[23;13H[1;23r[23;1H
[1;24r[23;8H }[24;73H[K[24;73H203,3-9       27%[23;9H[1;23r[23;1H
[1;24r[24;73H[K[24;73H204,0-1       27%[23;1H[1;23r[23;1H
[1;24r[23;8H [1mwhile[0m (segment1P = *headPP) {[24;73H[K[24;73H205,3-9       27%[23;9H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (segment1P == segmentP) {[24;73H[K[24;73H206,4-13      27%[23;13H[1;23r[23;1H
[1;24r[23;16H [1mgoto[0m advance;[24;73H[K[24;73H207,5-17      27%[23;17H[1;23r[23;1H
[1;24r[23;12H }[24;73H[K[24;73H208,4-13      27%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (end   < segment1P->start - [4m1[m ||[24;73H[K[24;73H209,4-13      28%[23;13H[1;23r[23;1H
[1;24r[23;16H start > segment1P->end + [4m1[m) {[24;73H[K[24;73H210,5-17      28%[23;17H[1;23r[23;1H
[1;24r[23;16H [1mgoto[0m advance;[24;73H[K[24;73H211,5-17      28%[23;17H[1;23r[23;1H
[1;24r[23;12H }[24;73H[K[24;73H212,4-13      28%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (start > segment1P->start) {[24;73H[K[24;73H213,4-13      28%[23;13H[1;23r[23;1H
[1;24r[23;16H segmentP->start = start = segment1P->start;[24;73H[K[24;73H214,5-17      28%[23;17H[1;23r[23;1H
[1;24r[23;12H }[24;73H[K[24;73H215,4-13      29%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (end < segment1P->end) {[24;73H[K[24;73H216,4-13      29%[23;13H[1;23r[23;1H
[1;24r[23;16H segmentP->end = end = segment1P->end;[24;73H[K[24;73H217,5-17      29%[23;17H[1;23r[23;1H
[1;24r[23;12H }[24;73H[K[24;73H218,4-13      29%[23;13H[1;23r[23;1H
[1;24r[23;12H *headPP = segment1P->nextP;[24;73H[K[24;73H219,4-13      29%[23;13H[1;23r[23;1H
[1;24r[23;12H Xfree(segment1P);[24;73H[K[24;73H220,4-13      29%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mcontinue[0m;[24;73H[K[24;73H221,4-13      29%[23;13H[1;23r[23;1H
[1;24r[23;1H[1madvance[0m:    headPP = &(segment1P->nextP);[24;73H[K[24;73H222,1         30%[23;1H[1;23r[23;1H
[1;24r[23;8H }[24;73H[K[24;73H223,3-9       30%[23;9H[1;23r[23;1H
[1;24r[23;8H [1mreturn[0m;[24;73H[K[24;73H224,3-9       30%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H225,2-5       30%[23;5H[1;23r[23;1H
[1;24r[23;4H segmentP = (segmentT *) Xmalloc([1msizeof[0m(segmentT));[24;73H[K[24;73H226,2-5       30%[23;5H[1;23r[23;1H
[1;24r[23;4H segmentP->start = start;[24;73H[K[24;73H227,2-5       30%[23;5H[1;23r[23;1H
[1;24r[23;4H segmentP->end   = end;[24;73H[K[24;73H228,2-5       30%[23;5H[1;23r[23;1H
[1;24r[23;4H segmentP->nextP = *headPP;[24;73H[K[24;73H229,2-5       31%[23;5H[1;23r[23;1H
[1;24r[23;4H *headPP[8C = segmentP;[24;73H[K[24;73H230,2-5       31%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H231,1         31%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H232,0-1       31%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mstatic[m [4mvoid[m[24;73H[K[24;73H233,1         31%[23;1H[1;23r[23;1H
[1;24r[23;1Happly_segment([4mint[m source, [4mint[m start, [4mint[m end, [4mint[m type)[24;73H[K[24;73H234,1         31%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H235,1         32%[23;1H[1;23r[23;1H
[1;24r[23;4H assert(type);[24;73H[K[24;73H236,2-5       32%[23;5H[1;23r[23;1H
[1;24r[23;4H apply_segment1(source, start, end, type);[24;73H[K[24;73H237,2-5       32%[23;5H[1;23r[23;1H
[1;24r[23;4H apply_segment1(source, start, end, [4m0[m);[24;73H[K[24;73H238,2-5       32%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H239,1         32%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H240,0-1       32%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mstatic[m [4mlong[m [4mlong[m g_acd_pairs   = [4m0[m;[24;73H[K[24;73H241,1         32%[23;1H[24;73H[K[24;1H/a
/ap
/app
/appl
/apply
/apply_
/apply_s
/apply_se
/apply_seg
/apply_segm
/apply_segme
/apply_segmen
/apply_segment
/apply_segment
/apply_segment
[m[m[0m[H[J[2;4H lth = end2 - start2 + [4m1[m;
    assert(lth > [4m0[m);
    [1mif[0m (lth > max_acd_lth) {[5;8H max_acd_lth = lth;
    }
    sum_acd_lth  += lth;
    sum_acd2_lth += lth*lth;[10;4H cnt_acd_lth  += [4m2[m;[12;4H apply_segment(i, start1, end1, ACD_TYPE);
    apply_segment(j, start2, end2, ACD_TYPE);
}

[4mstatic[m [4mvoid[m
correlate_clone_data([4mvoid[m)
{
    clone_dataT     *clone_dataP, *endP;
    [4mint[m[12C start1, start2, end1, end2;
    [4mint[m[12C i, j, lth;
    [4mchar[m[11C *name1P, *name2P;
    Cfile[10C *file1P, *file2P;[24;73H417,2-5       61%[12;5H[24;73H416,0-1       61%[11;1H[24;73H415,2-5       61%[10;5H[24;73H414,1-4       61%[9;4H[24;73H413,2-5       61%[8;5H[24;73H412,2-5       61%[7;5H[24;73H411,2-5       61%[6;5H[24;73H410,2-8       61%[5;8H[24;73H409,2-5       61%[4;5H[24;73H408,2-5       61%[3;5H[24;73H407,2-5       61%[2;5H[24;73H406,0-1       61%[1;1H[1;23r[1;1HM[1;24r[1;4H sum_acd2_lth += lth*lth;[24;73H[K[24;73H405,2-5       61%[1;5H[1;23r[1;1HM[1;24r[1;4H sum_acd_lth  += lth;[24;73H[K[24;73H404,2-5       60%[1;5H[1;23r[1;1HM[1;24r[1;4H }[24;73H[K[24;73H403,2-5       60%[1;5H[1;23r[1;1HM[1;24r[1;8H max_acd_lth = lth;[24;73H[K[24;73H402,2-8       60%[1;8H[1;23r[1;1HM[1;24r[1;4H [1mif[0m (lth > max_acd_lth) {[24;73H[K[24;73H401,2-5       60%[1;5H[1;23r[1;1HM[1;24r[1;4H assert(lth > [4m0[m);[24;73H[K[24;73H400,2-5       60%[1;5H[1;23r[1;1HM[1;24r[1;4H lth = end1 - start1 + [4m1[m;[24;73H[K[24;73H399,2-5       60%[1;5H[1;23r[1;1HM[1;24r[24;73H[K[24;73H398,0-1       59%[1;1H[1;23r[1;1HM[1;24r[1;4H assert (source_data[j].lines >= end2);[24;73H[K[24;73H397,2-5       59%[1;5H[1;23r[1;1HM[1;24r[1;4H assert (source_data[i].lines >= end1);[24;73H[K[24;73H396,2-5       59%[1;5H[1;23r[1;1HM[1;24r[24;73H[K[24;73H395,0-1       59%[1;1H[1;23r[1;1HM[1;24r[1;4H }[24;73H[K[24;73H394,2-5       59%[1;5H[1;23r[1;1HM[1;24r[1;8H ++g_acd_overlap;[24;73H[K[24;73H393,2-8       59%[1;8H[1;23r[1;1HM[1;24r[1;4H [1mif[0m (seen) {[24;73H[K[24;73H392,2-5       59%[1;5H[1;23r[1;1HM[1;24r[1;4H }[24;73H[K[24;73H391,2-5       58%[1;5H[1;23r[1;1HM[1;24r[1;8H }[24;73H[K[24;73H390,2-8       58%[1;8H[1;23r[1;1HM[1;24r[1;12H fputs([4m"</table>[m[1m\n[0m[4m"[m, cloneF);[24;73H[K[24;73H389,2-8       58%[1;8H[1;23r[1;1HM[1;24r[1;12H }[24;73H[K[24;73H388,2-8       58%[1;8H[1;23r[1;1HM[1;24r[1;16H fputs([4m"</td></tr>[m[1m\n[0m[4m"[m, cloneF);[24;73H[K[24;73H387,2-8       58%[1;8H[1;23r[1;1HM[1;24r[1;16H }[24;73H[K[24;73H386,2-8       58%[1;8H[1;23r[1;1HM[1;24r[1;20H ++lineno2;[24;73H[K[24;73H385,2-8       58%[1;8H[1;23r[1;1HM[1;24r[1;20H file2P->showline(cloneF, &default2P, lineno2);[24;73H[K[24;73H384,2-8       57%[1;8H[1;23r[1;1HM[1;24r[1;16H [1mif[0m (lineno2 <= end_lineno2) {[24;73H[K[24;73H383,2-8       57%[1;8H[1;23r[1;1HM[1;24r[1;16H fputs([4m"</td><td>"[m, cloneF);[24;73H[K[24;73H382,2-8       57%[1;8H[1;23r[1;1HM[1;24r[1;16H }[24;73H[K[24;73H381,2-8       57%[1;8H[1;23r[1;1HM[1;24r[1;20H ++lineno1;[24;73H[K[24;73H380,2-8       57%[1;8H[1;23r[1;1HM[1;24r[1;20H file1P->showline(cloneF, &default1P, lineno1);[24;73H[K[24;73H379,2-8       57%[1;8H[1;23r[1;1HM[1;24r[1;16H [1mif[0m (lineno1 <= end_lineno1) {[24;73H[K[24;73H378,2-8       56%[1;8H[1;23r[1;1HM[1;24r[1;16H fputs([4m"<tr><td>"[m, cloneF);[24;73H[K[24;73H377,2-8       56%[1;8H[1;23r[1;1HM[1;24r[1;12H [1mwhile[0m (lineno1 <= end_lineno1 || lineno2 <= end_lineno2) {[24;73H[K[24;73H376,2-8       56%[1;8H[1;23r[1;1HM[1;24r[1;12H default2P = file2P;[24;73H[K[24;73H375,2-8       56%[1;8H[1;23r[1;1HM[1;24r[1;12H default1P = file1P;[24;73H[K[24;73H374,2-8       56%[1;8H[1;23r[1;1HM[1;24r[24;73H[K[24;73H373,1-4       56%[1;4H[1;23r[1;1HM[1;24r[1;20H file1P->m_nameP, file2P->m_nameP);[24;73H[K[24;73H372,2-8       56%[1;8H[1;23r[1;1HM[1;24r[1;16H [4m"<table><tr><th>[m[1m%s[0m[4m</th><th>[m[1m%s[0m[4m</th></tr>[m[1m\n[0m[4m"[m,[24;73H[K[24;73H371,2-8       55%[1;8H[1;23r[1;1HM[1;24r[1;16H [4m"<h3>Correlates with CLIC clone pairs</h3>[m[1m\n[0m[4m<p>[m[1m\n[0m[4m"[m[24;73H[K[24;73H370,2-8       55%[1;8H[1;23r[1;1HM[1;24r[1;12H fprintf(cloneF,[24;73H[K[24;73H369,2-8       55%[1;8H[1;23r[1;1HM[1;24r[1;8H [1mif[0m (g_report) {[24;73H[K[24;73H368,2-8       55%[1;8H[1;23r[1;1HM[1;24r[24;73H[K[24;73H367,0-1       55%[1;1H[1;23r[1;1HM[1;24r[1;8H g_clic_in_area += (end2 - start2 + [4m1[m) * (end1 - start1 + [4m1[m);[24;73H[K[24;73H366,2-8       55%[1;8H[1;23r[1;1HM[1;24r[1;8H g_acd_in_area  += (end_lineno2 - lineno2 + [4m1[m) * (end_lineno1 - lineno1 + [4m1[m);[24;73H[K[24;73H365,2-8       54%[1;8H[1;23r[1;1HMM[1;24r[1;8H g_overlap_area += (shared_end2 - shared_start2 + [4m1[m) * (shared_end1 - shared_start11[2;1H + [4m1[m);[24;73H[K[24;73H364,2-8       54%[1;8H[1;23r[1;1HM[1;24r[1;8H }[24;73H[K[24;73H363,2-8       54%[1;8H[1;23r[1;1HM[1;24r[1;12H shared_end2   = end_lineno2;[24;73H[K[24;73H362,2-8       54%[1;8H[1;23r[1;1HM[1;24r[1;8H } [1melse[0m {[24;73H[K[24;73H361,2-8       54%[1;8H[1;23r[1;1HM[1;24r[1;12H shared_end2   = end2;[24;73H[K[24;73H360,2-8       54%[1;8H[1;23r[1;1HM[1;24r[1;8H [1mif[0m (end2 < end_lineno2) {[24;73H[K[24;73H359,2-8       53%[1;8H[1;23r[1;1HM[1;24r[1;8H }[24;73H[K[24;73H358,2-8       53%[1;8H[1;23r[1;1HM[1;24r[1;12H shared_start2 = start2;[24;73H[K[24;73H357,2-8       53%[1;8H[1;23r[1;1HM[1;24r[1;8H } [1melse[0m {[24;73H[K[24;73H356,2-8       53%[1;8H[1;23r[1;1HM[1;24r[1;12H shared_start2 = lineno2;[24;73H[K[24;73H355,2-8       53%[1;8H[1;23r[1;1HM[1;24r[1;8H [1mif[0m (start2 < lineno2) {[24;73H[K[24;73H354,2-8       53%[1;8H[1;23r[1;1HM[1;24r[1;8H }[24;73H[K[24;73H353,2-8       53%[1;8H[1;23r[1;1HM[1;24r[1;12H shared_end1 = end_lineno1;[24;73H[K[24;73H352,2-8       52%[1;8H[1;23r[1;1HM[1;24r[1;8H } [1melse[0m {[24;73H[K[24;73H351,2-8       52%[1;8H[1;23r[1;1HM[1;24r[1;12H shared_end1 = end1;[24;73H[K[24;73H350,2-8       52%[1;8H[1;23r[1;1HM[1;24r[1;8H [1mif[0m (end1 < end_lineno1) {[24;73H[K[24;73H349,2-8       52%[1;8H[1;23r[1;1HM[1;24r[1;8H }[24;73H[K[24;73H348,2-8       52%[1;8H[1;23r[1;1HM[1;24r[1;12H shared_start1 = start1;[24;73H[K[24;73H347,2-8       52%[1;8H[1;23r[1;1HM[1;24r[1;8H } [1melse[0m {[24;73H[K[24;73H346,2-8       52%[1;8H[1;23r[1;1HM[1;24r[1;12H shared_start1 = lineno1;[24;73H[K[24;73H345,2-8       51%[1;8H[1;23r[1;1HM[1;24r[1;8H [1mif[0m (start1 < lineno1) {[24;73H[K[24;73H344,2-8       51%[1;8H[1;23r[1;1HM[1;24r[24;73H[K[24;73H343,0-1       51%[1;1H[1;23r[1;1HM[1;24r[1;8H seen = [4m1[m;[23;9H[K[23;1H[1m@[0m[24;73H[K[24;73H342,2-8       51%[1;8H[1;23r[1;1HM[1;24r[1;8H ++(clone_dataP->overlap);[24;73H[K[24;73H341,2-8       51%[1;8H[1;23r[1;1HM[1;24r[1;8H }[24;73H[K[24;73H340,2-8       51%[1;8H[1;23r[1;1HM[1;24r[1;12H [1mcontinue[0m;[24;73H[K[24;73H339,2-8       51%[1;8H[1;23r[1;1HM[1;24r[1;12H [1m// No overlap[0m[24;73H[K[24;73H338,2-8       50%[1;8H[1;23r[1;1HM[1;24r[1;12H start2 > end_lineno2) {[24;73H[K[24;73H337,2-8       50%[1;8H[1;23r[1;1HM[1;24r[1;12H end2   < lineno2 ||[24;73H[K[24;73H336,2-8       50%[1;8H[1;23r[1;1HM[1;24r[1;12H start1 > end_lineno1 ||[24;73H[K[24;73H335,2-8       50%[1;8H[1;23r[1;1HM[1;24r[1;8H [1mif[0m (end1   < lineno1 ||[24;73H[K[24;73H334,2-8       50%[1;8H[1;23r[1;1HM[1;24r[24;73H[K[24;73H333,0-1       50%[1;1H[1;23r[1;1HM[1;24r[1;8H end_lineno2 = clone_dataP->end_clone2.lineno;[24;73H[K[24;73H332,2-8       50%[1;8H[1;23r[1;1HM[1;24r[1;8H end_lineno1 = clone_dataP->end_clone1.lineno;[24;73H[K[24;73H331,2-8       49%[1;8H[1;23r[1;1HM[1;24r[1;8H lineno2     = clone_dataP->start_clone2.lineno;[24;73H[K[24;73H330,2-8       49%[1;8H[1;23r[1;1HM[1;24r[1;8H lineno1     = clone_dataP->start_clone1.lineno;[24;73H[K[24;73H329,2-8       49%[1;8H[1;23r[1;1HM[1;24r[1;8H }[24;73H[K[24;73H328,2-8       49%[1;8H[1;23r[1;1HM[1;24r[1;12H [1mcontinue[0m;[24;73H[K[24;73H327,2-8       49%[1;8H[1;23r[1;1HM[1;24r[1;8H [1mif[0m (j != clone_dataP->clone2_file) {[24;73H[K[24;73H326,2-8       49%[1;8H[1;23r[1;1HM[1;24r[1;8H }[24;73H[K[24;73H325,2-8       48%[1;8H[1;23r[1;1HM[1;24r[1;12H [1mcontinue[0m;[24;73H[K[24;73H324,2-8       48%[1;8H[1;23r[1;1HM[1;24r[1;8H [1mif[0m (i != clone_dataP->clone1_file) {[24;73H[K[24;73H323,2-8       48%[1;8H[1;23r[1;1HM[1;24r[1;8H assert(clone_dataP->clone2_file >= clone_dataP->clone1_file);[24;73H[K[24;73H322,2-8       48%[1;8H[1;23r[1;1HM[1;24r[1;4H [1mfor[0m (; clone_dataP < endP; ++clone_dataP) {[24;73H[K[24;73H321,2-5       48%[1;5H[1;23r[1;1HM[1;24r[1;4H endP    = clone_data + ([1msizeof[0m(clone_data)/[1msizeof[0m(clone_data[[4m0[m]));[24;73H[K[24;73H320,2-5       48%[1;5H[1;23r[1;1HM[1;24r[1;4H clone_dataP = clone_data;[24;73H[K[24;73H319,2-5       48%[1;5H[1;23r[1;1HM[1;24r[1;4H seen[7C = [4m0[m;[24;73H[K[24;73H318,2-5       47%[1;5H[1;23r[1;1HM[1;24r[24;73H[K[24;73H317,0-1       47%[1;1H[1;23r[1;1HM[1;24r[1;4H ++g_acd_pairs;[24;73H[K[24;73H316,2-5       47%[1;5H[1;23r[1;1HM[1;24r[24;73H[K[24;73H315,0-1       47%[1;1H[24;73H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ vi detect.cpp
[?1h=[1;24r[m[m[0m[H[J[24;1H"detect.cpp" 
"detect.cpp" 1861L, 50430C[1;1H[4m#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif

#ifndef NDEBUG[m
[1m//#define DEBUG_DETECT
//#define DEBUG_HILLCLIMB
//#define TEST_HILLCLIMB
//#define PROOF[0m
[4m#endif

#include <assert.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
#define snprintf _snprintf
#else
#include <unistd.h>
#endif

#include "object.h"[m[24;73H1,1           Top[1;1H[24;1H[K[24;1H/n
/ne
/nex
/next
/next_
/next_f
/next_fi
/next_fil
/next_file
/next_file
/next_file
[m[m[0m[H[J[2;1H[4mextern[m [4mFILE[m *clicsF;
[4mextern[m [4mFILE[m *clics1F;

[4mstatic[m [4mvoid[m
report_clone([4mvoid[m)
{
    [4mextern[m  [4mFILE[m[11C *taF;
    [4mextern[m  [4mFILE[m[11C *tempF;[11;4H [4mstatic[m  [4mint[m[12C lineno1, lineno2, next_lineno1, next_lineno2;
    [4mstatic[m  Cfile[10C *file1P, *file2P, *next_file1P, *next_file2P;
    [4mstatic[m  [4mconst[m Cfile     *sourcefile1P, *sourcefile2P;
    [4mstatic[m  [4mint[m[12C different1, different2;[16;4H [4mstatic[m  [4mchar[m    *source_name1P, *source_name2P;
    [4mstatic[m  codeT   *at_code1P, *at_code2P;
    [4mstatic[m  [4mint[m     offset1, offset2;
    [4mstatic[m  [4munsigned[m [4mint[m    source_cnt;[21;4H [4mstatic[m  [4munsigned[m [4mint[m heap_index;
    [4mstatic[m  topT    *heapP, *leftP, *rightP;
    [4mstatic[m  [4munsigned[m [4mint[m    weight;[24;73H201,36-48     10%[12;48H[24;1H/next_file[24;73H[K[24;1H[72C201,50-62     10%[12;62H[24;1H/next_file[24;73H[K[24;1H[m[m[0m[H[J[1;12H } [1melse[0m {[2;16H ++at_code1P;[3;16H ++at_code2P;[4;8H }   }[6;8H [1mif[0m (g_report_c) {[8;12H lineno1      = next_lineno1;[9;12H lineno2      = next_lineno2;[10;12H [1mif[0m (at_code1P < best_end1P ) {[11;16H next_lineno1 = at_code1P->m_source_lineno;[12;16H next_file1P  = at_code1P->m_fileP;[13;12H } [1melse[0m {[14;16H next_lineno1 = -[4m1[m;[15;16H next_file1P  = [4m0[m;[16;12H }[17;12H [1mif[0m (at_code2P < best_end2P ) {[18;16H next_lineno2 = at_code2P->m_source_lineno;[19;16H next_file2P  = at_code2P->m_fileP;[20;12H } [1melse[0m {[21;16H next_lineno2 = -[4m1[m;[22;16H next_file2P  = [4m0[m;[23;12H }[24;73H524,5-17      27%[12;17H[24;1H/next_file[24;73H[K[24;1H[72C527,5-17      27%[15;17H[24;1H/next_file[24;73H[K[24;1H[72C531,5-17      27%[19;17H[24;1H/next_file[24;73H[K[24;1H[72C534,5-17      27%[22;17H

/next_file[24;73H[K[24;1H[1;23r[23;1H










[1;24r[14;1H[1mshow_next_sourceline[0m:[15;12H [1mif[0m (!file1P || lineno1 == next_lineno1) {[16;16H [1mif[0m (!file2P || lineno2 == next_lineno2) {[17;20H [1mcontinue[0m;[18;16H }[19;16H fputs([4m"<tr class=s><td></td>[m[1m\n[0m[4m    <td><font color=[m[1m\"[0m[4mblue[m[1m\"[0m[4m>"[m, cloneF);[20;16H file2P->showline(cloneF, &sourcefile2P, lineno2);[21;16H fputs([4m"</font></td>[m[1m\n[0m[4m</tr>[m[1m\n[0m[4m"[m, cloneF);[22;16H ++lineno2;[23;16H [1mif[0m (lineno2 < next_lineno2 && file2P == next_file2P) {[24;1H[K[24;73H546,45-57     28%[23;57H[1;23r[23;1H
[1;24r[23;20H [1mgoto[0m show_next_sourceline;[24;73H[K[24;73H547,6-21      28%[23;21H
/next_file[24;73H[K[24;1H[1;23r[23;1H






[1;24r[17;16H }[18;12H } [1melse[0m [1mif[0m (!file2P || lineno2 == next_lineno2) {[19;16H fputs([4m"<tr class=s><td><font color=[m[1m\"[0m[4mred[m[1m\"[0m[4m>"[m, cloneF);[20;16H file1P->showline(cloneF, &sourcefile1P, lineno1);[21;16H fputs([4m"</font></td>[m[1m\n[0m[4m    <td></td></tr>[m[1m\n[0m[4m"[m, cloneF);[22;16H ++lineno1;[23;16H [1mif[0m (lineno1 < next_lineno1 && file1P == next_file1P) {[24;1H[K[24;73H554,45-57     28%[23;57H[1;23r[23;1H
[1;24r[23;20H [1mgoto[0m show_next_sourceline;[24;73H[K[24;73H555,6-21      28%[23;21H
/next_file[24;73H[K[24;1H[m[m[0m[H[J[1;16H [1mif[0m (file2P) {[2;20H [1mif[0m (!different2) {[3;24H file2P->showline(cloneF, &sourcefile2P, lineno2);[4;24H ++lineno2;[5;20H } [1melse[0m {[6;24H fputs([4m"<font color=[m[1m\"[0m[4mblue[m[1m\"[0m[4m>"[m, cloneF);[7;24H file2P->showline(cloneF, &sourcefile2P, lineno2);[8;24H ++lineno2;[9;24H fputs([4m"</font>"[m, cloneF);[10;16H }   }[11;16H fputs([4m"</td></tr>[m[1m\n[0m[4m"[m, cloneF);[12;16H [1mif[0m ((lineno1 < next_lineno1 && file1P == next_file1P) ||[13;20H (lineno2 < next_lineno2 && file2P == next_file2P)) {[14;20H [1mgoto[0m show_next_sourceline;[15;12H }   }[16;12H file1P = next_file1P;[17;12H file2P = next_file2P;[18;12H different1 = [4m0[m;[19;12H different2 = [4m0[m;[20;8H }
    }
    fputs([4m"</table>[m[1m\n[0m[4m"[m, cloneF);[24;73H585,46-58     31%[12;58H[24;73H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ vi fry[K[K[Kdetect.cpp
[?1h=[1;24r[m[m[0m[H[J[24;1H"detect.cpp" 
"detect.cpp" 1861L, 50430C[1;1H[4m#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif

#ifndef NDEBUG[m
[1m//#define DEBUG_DETECT
//#define DEBUG_HILLCLIMB
//#define TEST_HILLCLIMB
//#define PROOF[0m
[4m#endif

#include <assert.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
#define snprintf _snprintf
#else
#include <unistd.h>
#endif

#include "object.h"[m[24;73H1,1           Top[1;1H[24;1H[K[24;1H/g
/g_
/g_t
/g_ta
/g_tai
/g_tail
/g_tailP
/g_tailPP
/g_tailPP
/g_tailPP
[7msearch hit BOTTOM, continuing at TOP
E486: Pattern not found: g_tailPP[m[24;34H[K[24;73H1,1           Top[1;1H[24;1H[K[24;1H/t
/ta
/tai
/tail
/tail
/tail
[m[m[0m[H[J[1;4H source_name1P = sourcefile1P->m_nameP;
    source_name2P = sourcefile2P->m_nameP;[4;4H [1mif[0m (!source1P->m_source_cnt) {[5;8H source1P->m_source_cnt = ++g_source_cnt;
    }
    source_cnt = source1P->m_source_cnt;
    [1mif[0m (!source2P->m_source_cnt) {[9;8H source2P->m_source_cnt = ++g_source_cnt;
    }[12;4H [1m// Increment the detail page number[0m
    ++g_clone_cnt;[15;4H [1mif[0m (taF) {[16;8H Cclone *clone1P, *clone2P;[18;8H clone1P = function1P->locate_clone(start_code1P, best_end1P);[19;8H clone2P = function2P->locate_clone(start_code2P, best_end2P);[21;8H fprintf(taF, [4m"R C[m[1m%p[0m[4m C[m[1m%p\n[0m[4m"[m, clone1P, clone2P);[22;8H [1mif[0m (g_report) {[23;12H fprintf(tempF, [4m"(R C[m[1m%p[0m[4m C[m[1m%p[0m[4m) { html=[m[1m%u[0m[4m }[m[1m\n[0m[4m"[m, clone1P, clone2P, g_clone_cnt);[24;73H231,21-24     11%[12;24H[24;1H/tail[24;73H[K[24;1H[7msearch hit BOTTOM, continuing at TOP[m[36C231,21-24     11%
[7msearch hit BOTTOM, continuing at TOP[m[24;73H[K[24;73H231,21-24     11%[12;24H[24;1H/tail[24;6H[K[24;1H[7msearch hit BOTTOM, continuing at TOP[m[36C231,21-24     11%
[7msearch hit BOTTOM, continuing at TOP[m[24;73H[K[24;73H231,21-24     11%[12;24H[24;1H[K[24;1H:1
:1
[m[m[0m[H[J[1;1H[4m#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif

#ifndef NDEBUG[m
[1m//#define DEBUG_DETECT
//#define DEBUG_HILLCLIMB
//#define TEST_HILLCLIMB
//#define PROOF[0m
[4m#endif

#include <assert.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
#define snprintf _snprintf
#else
#include <unistd.h>
#endif

#include "object.h"[m[24;73H1,1           Top[1;1H[24;73H[K[24;1H/m
/ma
/mat
/matc
/match
/matchP
/matchP
/matchP
[m[m[0m[H[J[1;1H[4mstatic[m [4mint[m      g_lth1, g_lth2;
[4mstatic[m [4mclock_t[m  start_clock, end_clock;

[4m#ifdef PROOF
static[m [4mvoid[m
proof([4mvoid[m)
{
    [4mstatic[m  codeT   *code1aP, *code2aP, *code1bP, *code2bP;
    [4mstatic[m  codeT   *code1a_jumpP, *code2a_jumpP;
    [4mstatic[m  codeT   *code1b_jumpP, *code2b_jumpP;[12;4H assert(start_code1P->m_matchP);
    [1mfor[0m (code1aP = start_code1P; code1aP < best_end1P; ++code1aP) {[14;8H [1mif[0m (!(code2aP = code1aP->m_matchP)) {[15;12H [1mcontinue[0m;[16;8H }[17;8H assert(code2aP->m_matchP == code1aP);[18;8H code1a_jumpP = code1aP->m_jumpP;[19;8H code2a_jumpP = code2aP->m_jumpP;[20;8H [1mif[0m (!code1a_jumpP) {[21;12H assert(!code2a_jumpP);[22;8H } [1melse[0m [1mif[0m (code1a_jumpP == code1aP) {[23;12H assert(code2a_jumpP == code2aP);[24;73H139,25-28      6%[12;28H[24;1H/matchP[24;73H[K[24;1H[72C141,30-36      6%[14;36H[24;1H/matchP[24;73H[K[24;1H[72C144,21-27      6%[17;27H[24;1H/matchP[24;73H[K[24;1H[1;23r[23;1H











[1;24r[12;8H } [1melse[0m [1mif[0m (code1a_jumpP > code1aP) {[13;12H assert(code2a_jumpP > code2aP);[14;8H } [1melse[0m {[15;12H assert(code2a_jumpP && code2a_jumpP < code2aP);[16;12H assert(code1a_jumpP >= start_code1P);[17;12H assert(code2a_jumpP >= start_code2P);[18;8H }[19;8H [1mfor[0m (code1bP = start_code1P; code1bP < best_end1P; ++code1bP) {[20;12H [1mif[0m (code1aP == code1bP) {[21;16H [1mcontinue[0m;[22;12H }[23;12H [1mif[0m (!(code2bP = code1bP->m_matchP)) {[24;1H[K[24;73H162,31-40      7%[23;40H
/matchP[24;73H[K[24;1H[m[m[0m[H[J[1;8H }[2;8H different1   = [4m0[m;[3;8H different2   = [4m0[m;
    }[6;4H offset1 = at_code1P - function_code1P;
    offset2 = at_code2P - function_code2P;
    [1mfor[0m (; at_code1P < best_end1P || at_code2P < best_end2P; ) {[10;8H [1mif[0m (g_report_assembler) {[11;12H [1mif[0m (best_end1P <= at_code1P || (at_code1P->m_matchP && at_code1P->m_matchP !=  [12;1Hat_code2P) ) {[13;16H fprintf(cloneF, [4m"<tr class=a><td></td>[m[1m\n[0m[4m    <td><font color=[m[1m\"[0m[4mblue[m[1m\"[0m[4m>[m[1m%d[0m[4m: ""[m[14;1H, offset2);[15;16H P = at_code2P->m_codeP;[16;16H [1mif[0m (!at_code2P->m_jumpP) {[17;20H put_html(P, cloneF);[18;16H } [1melse[0m {[19;20H put_opcode(P, cloneF);[20;20H fprintf(cloneF, [4m" -> [m[1m%d[0m[4m"[m, ([4mint[m) (at_code2P->m_jumpP - function_code2P))[21;1H);[22;16H }[23;16H ++at_code2P;[24;73H431,49-58     22%[11;58H[24;1H/matchP[24;73H[K[24;1H[72C431,72-81     22%[11;81H[24;73H432,5-17      22%[13;17H[24;73H433,5-17      22%[15;17H[24;73H434,5-17      22%[16;17H[24;73H435,6-21      22%[17;21H[24;73H436,5-17      22%[18;17H[24;73H437,6-21      22%[19;21H[24;73H438,6-21      22%[20;21H[24;73H439,5-17      22%[22;17H[24;73H440,5-17      22%[23;17H[1;23r[23;1H
[1;24r[23;16H ++offset2;[24;1H[K[24;73H441,5-17      22%[23;17H[1;23r[23;1H
[1;24r[23;16H fputs([4m"</font></td>[m[1m\n[0m[4m</tr>[m[1m\n[0m[4m"[m, cloneF);[24;73H[K[24;73H442,5-17      22%[23;17H[1;23r[23;1H
[1;24r[23;16H different2 = [4m1[m;[24;73H[K[24;73H443,5-17      22%[23;17H[1;23r[23;1H
[1;24r[23;12H } [1melse[0m [1mif[0m (!at_code1P->m_matchP) {[24;73H[K[24;73H444,4-13      23%[23;13H[1;23r[23;1H
[1;24r[23;16H fprintf(cloneF, [4m"<tr class=a><td><font color=[m[1m\"[0m[4mred[m[1m\"[0m[4m>[m[1m%d[0m[4m: "[m, offset1);[24;73H[K[24;73H445,5-17      23%[23;17H[1;23r[23;1H
[1;24r[23;16H P = at_code1P->m_codeP;[24;73H[K[24;73H446,5-17      23%[23;17H[1;23r[23;1H
[1;24r[23;16H [1mif[0m (!at_code1P->m_jumpP) {[24;73H[K[24;73H447,5-17      23%[23;17H[1;23r[23;1H
[1;24r[23;20H put_html(P, cloneF);[24;73H[K[24;73H448,6-21      23%[23;21H[1;23r[23;1H
[1;24r[23;16H } [1melse[0m {[24;73H[K[24;73H449,5-17      23%[23;17H[1;23r[23;1H
[1;24r[23;20H put_opcode(P, cloneF);[24;73H[K[24;73H450,6-21      23%[23;21H[1;23r[23;1H

[1;24r[22;20H fprintf(cloneF, [4m" -> [m[1m%d[0m[4m"[m, ([4mint[m) (at_code1P->m_jumpP - function_code1P))[23;1H);[24;73H[K[24;73H451,6-21      23%[22;21H[1;23r[23;1H

[1;24r[22;16H }[23;16H fputs([4m"</font></td>[m[1m\n[0m[4m    <td>"[m, cloneF);[24;73H[K[24;73H452,5-17      23%[22;17H[24;73H453,5-17      23%[23;17H[1;23r[23;1H
[1;24r[23;16H ++at_code1P;[24;73H[K[24;73H454,5-17      23%[23;17H[1;23r[23;1H
[1;24r[23;16H ++offset1;[24;73H[K[24;73H455,5-17      23%[23;17H[1;23r[23;1H
[1;24r[23;16H different1 = [4m1[m;[24;73H[K[24;73H456,5-17      23%[23;17H[1;23r[23;1H
[1;24r[24;73H[K[24;73H457,3-12      23%[23;12H[1;23r[23;1H
[1;24r[23;16H [1mif[0m (at_code2P < best_end2P && !at_code2P->m_matchP) {[24;73H[K[24;73H458,5-17      23%[23;17H[1;23r[23;1H

[1;24r[22;20H fprintf(cloneF, [4m"<font color=[m[1m\"[0m[4mblue[m[1m\"[0m[4m>[m[1m%d[0m[4m: "[m, offset2);[23;20H P = at_code2P->m_codeP;[24;73H[K[24;73H459,6-21      23%[22;21H[24;73H460,6-21      23%[23;21H[1;23r[23;1H
[1;24r[23;20H [1mif[0m (!at_code2P->m_jumpP) {[24;73H[K[24;73H461,6-21      23%[23;21H[1;23r[23;1H
[1;24r[23;24H put_html(P, cloneF);[24;73H[K[24;73H462,7-25      23%[23;25H[1;23r[23;1H
[1;24r[23;20H } [1melse[0m {[24;73H[K[24;73H463,6-21      23%[23;21H[1;23r[23;1H
[1;24r[23;24H put_opcode(P, cloneF);[24;73H[K[24;73H464,7-25      24%[23;25H[1;23r[23;1H

[1;24r[22;24H fprintf(cloneF, [4m" -> [m[1m%d[0m[4m"[m, ([4mint[m) (at_code2P->m_jumpP - function_codd[23;1He2P));[24;73H[K[24;73H465,7-25      24%[22;25H[1;23r[23;1H
[1;24r[23;20H }[24;73H[K[24;73H466,6-21      24%[23;21H[1;23r[23;1H
[1;24r[23;20H fputs([4m"</font>"[m, cloneF);[24;73H[K[24;73H467,6-21      24%[23;21H[1;23r[23;1H
[1;24r[23;20H ++at_code2P;[24;73H[K[24;73H468,6-21      24%[23;21H[1;23r[23;1H
[1;24r[23;20H ++offset2;[24;73H[K[24;73H469,6-21      24%[23;21H[1;23r[23;1H
[1;24r[23;20H different2 = [4m1[m;[24;73H[K[24;73H470,6-21      24%[23;21H[1;23r[23;1H
[1;24r[23;16H }[24;73H[K[24;73H471,5-17      24%[23;17H[1;23r[23;1H

[1;24r[22;16H fputs([4m"</td>[m[1m\n[0m[4m</tr>[m[1m\n[0m[4m"[m, cloneF);[23;12H } [1melse[0m {[24;73H[K[24;73H472,5-17      24%[22;17H[24;73H473,4-13      24%[23;13H[1;23r[23;1H
[1;24r[23;16H fprintf(cloneF, [4m"<tr class=a"[m);[24;73H[K[24;73H474,5-17      24%[23;17H[1;23r[23;1H

[1;24r[22;16H [1mif[0m (at_code1P->m_fileP == at_code2P->m_fileP && at_code1P->m_source_linenoo[23;1H == at_code2P->m_source_lineno) {[24;73H[K[24;73H475,5-17      24%[22;17H[1;23r[23;1H
[1;24r[23;20H fprintf(cloneF, [4m" bgColor=#D0D0D0"[m);[24;73H[K[24;73H476,6-21      24%[23;21H[1;23r[23;1H
[1;24r[23;16H }[24;73H[K[24;73H477,5-17      24%[23;17H[1;23r[23;1H
[1;24r[23;16H fprintf(cloneF, [4m"><td>[m[1m%d[0m[4m: "[m, offset1);[24;73H[K[24;73H478,5-17      24%[23;17H[1;23r[23;1H
[1;24r[23;16H P = at_code1P->m_codeP;[24;73H[K[24;73H479,5-17      24%[23;17H[1;23r[23;1H
[1;24r[23;16H [1mif[0m (!at_code1P->m_jumpP) {[24;73H[K[24;73H480,5-17      24%[23;17H[1;23r[23;1H
[1;24r[23;20H put_html(P, cloneF);[24;73H[K[24;73H481,6-21      25%[23;21H[24;73H[K[24;1H:1
:1
[m[m[0m[H[J[1;1H[4m#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif

#ifndef NDEBUG[m
[1m//#define DEBUG_DETECT
//#define DEBUG_HILLCLIMB
//#define TEST_HILLCLIMB
//#define PROOF[0m
[4m#endif

#include <assert.h>
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifdef WIN32
#define snprintf _snprintf
#else
#include <unistd.h>
#endif

#include "object.h"[m[24;73H1,1           Top[1;1H[24;73H[K[24;1H/g
/g_
/g_
/g_
[72C6,15          Top[6;15H[24;1H/g_[24;73H[K[24;1H[72C7,15          Top[7;15H[24;1H/g_[24;73H[K[24;1H[m[m[0m[H[J[1;1H[4m#include "function.h"
#include "source.h"
#include "data.h"
#include "clics_output.h"
#include "match.h"
#include "detect.h"

#ifdef WIN32
#define clock_t time_t
#endif

extern[m [4mint[m[9C g_source_cnt;
[4mextern[m [4mint[m[9C g_clone_cnt;
[4mextern[m [4mint[m[9C g_top_clones;
[4mextern[m [4mint[m[9C g_top_cols;
[4mextern[m [4mint[m[9C g_report_c;
[4mextern[m [4mint[m[9C g_report_assembler;
[4mextern[m [4mint[m[9C g_report;
[4mextern[m [4mint[m[9C g_verbose;
[4mextern[m [4mchar[m[8C *g_html_dirP;
[4mextern[m [4mint[m[9C g_ignore_macros;
[4mextern[m [4mint[m[9C g_min_match_sequence;
[4mextern[m [4mint[m[9C g_min_function_sequence;[24;73H40,14-21       1%[12;21H[24;1H/g_[24;73H[K[24;1H[72C41,14-21       1%[13;21H[24;1H/g_[24;73H[K[24;1H[72C42,14-21       1%[14;21H[24;1H/g_[24;73H[K[24;1H[72C43,14-21       1%[15;21H[24;1H/g_[24;73H[K[24;1H[72C44,14-21       1%[16;21H[24;1H/g_[24;73H[K[24;1H[72C45,14-21       1%[17;21H[24;1H/g_[24;73H[K[24;1H[72C46,14-21       1%[18;21H[24;1H/g_[24;73H[K[24;1H[72C47,14-21       1%[19;21H[24;1H/g_[24;73H[K[24;1H[72C48,16-22       1%[20;22H[24;1H/g_[24;73H[K[24;1H[72C49,14-21       1%[21;21H


/g_[24;73H[K[24;1H[72C50,14-21       1%[22;21H

/g_[24;73H[K[24;1H[72C51,14-21       1%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m[9C g_mismatch_cost;[24;1H[K[24;73H52,14-21       1%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m[9C g_same_cost;[24;1H[K[24;73H53,14-21       1%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m[9C g_match_macros;[24;1H[K[24;73H54,14-21       1%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m[9C g_match_lines;[24;1H[K[24;73H55,14-21       1%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mlong[m [4mlong[m    g_comparisons;[24;1H[K[24;73H56,18-21       1%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H

[1;24r[22;1H[4m#ifdef CORRELATE
extern[m [4mint[m[9C g_correlate;[24;1H[K[24;73H58,14-21       1%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H

[1;24r[22;1H[4m#endif
extern[m [4mint[m[9C g_hillclimb;[24;1H[K[24;73H60,14-21       2%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m[9C g_hillclimb_timeout;[24;1H[K[24;73H61,14-21       2%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m[9C g_iterations;[24;1H[K[24;73H62,14-21       2%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m[9C g_best_weight;[24;1H[K[24;73H63,14-21       2%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mtime_t[m       g_hillclimb_elapse;[24;1H[K[24;73H64,16-21       2%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H

[1;24r[23;1H[4mextern[m [4mlong[m [4mlong[m    g_original_matches;[24;1H[K[24;73H66,18-21       2%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mlong[m [4mlong[m    g_extra_matches;[24;1H[K[24;73H67,18-21       2%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mlong[m [4mlong[m    g_cancelled_matches;[24;1H[K[24;73H68,18-21       2%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m[9C g_max_blocks_seen;[24;1H[K[24;73H69,14-21       2%[23;21H
/g_[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m[9C g_max_iterations_seen;[24;1H[K[24;73H70,14-21       2%[23;21H
/g_[24;73H[K[24;1H[m[m[0m[H[J[1;4H [4munsigned[m [4mint[m    html;
} topT;

[4mstatic[m topT     *top_clonesP       = [4m0[m;
[4mstatic[m [4mint[m      top_clones_lth     = [4m0[m;
[4mstatic[m topT     *top_clones_endP   = [4m0[m;
[4mstatic[m [4mint[m      top_clones_cnt     = [4m0[m;

[4mvoid[m
initialise_detect([4mvoid[m)
{
    [1mif[0m (!g_html_dirP || !g_report) {[13;8H g_top_clones = [4m0[m;
    }
    [1mif[0m (g_top_clones > [4m0[m) {[16;8H top_clones_lth = g_top_clones * [1msizeof[0m(topT);[17;8H top_clonesP    = (topT *) Xmalloc(top_clones_lth);[18;8H [1mif[0m (!top_clonesP) {[19;12H outofmemory();[20;8H }[21;8H memset(top_clonesP, [4m0[m, top_clones_lth);[22;8H top_clones_endP = (topT *) ((([4mchar[m *) top_clonesP) + top_clones_lth);
    }[24;73H106,7-10       5%[12;10H[24;1H/g_[24;73H[K[24;1H[72C106,23-26      5%[12;26H[24;1H[K[24;1H/d
/de
/det
/dete
/detec
/detect
/detect(
/detect(
/detect(
[m[m[0m[H[J[1;12H at_code2P->m_matchP    = [4m0[m;[2;12H last_match1P->m_matchP = [4m0[m;
    }   }
    [1mreturn[0m(best_end2P);
[1mfail[0m:
    best_end2P = [4m0[m;
    [1mgoto[0m done;
}

[1m/*
void
trap_detect(void)
{
}
*/[0m

[4mvoid[m
detect([4mvoid[m)
{
    [4mstatic[m  [4mint[m[12C function_start_code, function_end_code;
    [4mstatic[m  Cfunction       *function3P;
    [4mstatic[m  Cfile[10C *fileP;
    [4mstatic[m  codeT[10C *codes1P, *codes2P, *skipP, *lastP;[24;73H1708,6        92%[12;6H[24;73H1709,1        92%[13;1H[24;73H1710,1        92%[14;1H[24;73H1711,1        92%[15;1H[24;73H1712,0-1      92%[16;1H[24;73H1713,1        92%[17;1H[24;73H1714,1        92%[18;1H[24;73H1715,1        92%[19;1H[24;73H1716,2-5      92%[20;5H[24;73H1717,2-5      92%[21;5H[24;73H1718,2-5      92%[22;5H[24;73H1719,2-5      92%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4mtime_t[m[9C clock_now;[24;73H[K[24;73H1720,2-5      92%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4mchar[m[11C *P;[24;73H[K[24;73H1721,2-5      92%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4mint[m[12C source_cnt = [4m0[m;[24;73H[K[24;73H1722,2-5      92%[23;5H[1;23r[23;1H
[1;24r[23;1H[4m#ifdef EXPLORE_SPEED[m[24;73H[K[24;73H1723,1        92%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4mlong[m [4mlong[m       last_match_comparisons, last_comparisons;[24;73H[K[24;73H1724,2-5      92%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4mlong[m [4mlong[m       last_match_comparisons1, last_comparisons1;[24;73H[K[24;73H1725,2-5      92%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4mint[m[12C clones_matched, codes_matched, rejected;[24;73H[K[24;73H1726,2-5      92%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4mtime_t[m[9C clock_now1;[24;73H[K[24;73H1727,2-5      92%[23;5H[1;23r[23;1H
[1;24r[23;1H[4m#endif[m[24;73H[K[24;73H1728,1        92%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1729,0-1      92%[23;1H[1;23r[23;1H
[1;24r[23;4H Cmatch::init();[24;73H[K[24;73H1730,2-5      92%[23;5H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1731,0-1      92%[23;1H[1;23r[23;1H
[1;24r[23;4H [1mfor[0m (source1P = Csource::g_headP; source1P; source1P = source1P->m_nextP) {[24;73H[K[24;73H1732,2-5      92%[23;5H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (g_verbose) {[24;73H[K[24;73H1733,3-9      93%[23;9H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1734,3-12     93%[23;12H[1;23r[23;1H
[1;24r[23;12H clock_now = time([4m0[m);[24;73H[K[24;73H1735,4-13     93%[23;13H[1;23r[23;1H
[1;24r[23;12H P[8C = ctime(&clock_now);[24;73H[K[24;73H1736,4-13     93%[23;13H[1;23r[23;1H
[1;24r[23;12H P[[4m19[m]     = [4m0[m;[24;73H[K[24;73H1737,4-13     93%[23;13H[1;23r[23;1H

[1;24r[22;12H fprintf([4mstderr[m, [4m"[m[1m%d[0m[4m) [m[1m%s[0m[4m [m[1m%s\n[0m[4m"[m, ++source_cnt, P+[4m11[m, source1P->m_fileP->m_nameP))[23;1H;[24;73H[K[24;73H1738,4-13     93%[22;13H[1;23r[23;1H
[1;24r[23;1H[4m#ifdef EXPLORE_SPEED[m[24;73H[K[24;73H1739,1        93%[23;1H[1;23r[23;1H
[1;24r[23;12H last_match_comparisons = Cmatch::m_comparisons;[24;73H[K[24;73H1740,4-13     93%[23;13H[1;23r[23;1H
[1;24r[23;12H last_comparisons       = g_comparisons;[24;73H[K[24;73H1741,4-13     93%[23;13H[1;23r[23;1H
[1;24r[23;1H[4m#endif[m[24;73H[K[24;73H1742,1        93%[23;1H[1;23r[23;1H
[1;24r[23;8H }[24;73H[K[24;73H1743,3-9      93%[23;9H[1;23r[23;1H
[1;24r[23;8H codes1P = source1P->m_codesP;[24;73H[K[24;73H1744,3-9      93%[23;9H[1;23r[23;1H

[1;24r[22;8H [1mfor[0m (function1P = source1P->m_functionsP; function1P; function1P = function1P->m_nn[23;1HextP) {[24;73H[K[24;73H1745,3-9      93%[22;9H[1;23r[23;1H
[1;24r[23;1H[4m#ifdef EXPLORE_SPEED[m[24;73H[K[24;73H1746,1        93%[23;1H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (source_cnt == [4m28[m) {[24;73H[K[24;73H1747,4-13     93%[23;13H[1;23r[23;1H
[1;24r[23;16H fprintf([4mstderr[m, [4m"**function [m[1m%s\n[0m[4m"[m, function1P->m_nameP);[24;73H[K[24;73H1748,5-17     93%[23;17H[1;23r[23;1H
[1;24r[23;12H }[24;73H[K[24;73H1749,4-13     93%[23;13H[1;23r[23;1H
[1;24r[23;1H[4m#endif[m[24;73H[K[24;73H1750,1        93%[23;1H[1;23r[23;1H
[1;24r[23;12H function_start_code = function1P->m_start_code;[24;73H[K[24;73H1751,4-13     94%[23;13H[1;23r[23;1H
[1;24r[23;12H function_end_code   = function1P->m_end_code;[24;73H[K[24;73H1752,4-13     94%[23;13H[1;23r[23;1H
[1;24r[23;12H start_code1P[7C = function_code1P = codes1P + function_start_code;[24;73H[K[24;73H1753,4-13     94%[23;13H[1;23r[23;1H
[1;24r[23;12H function_end1P      = codes1P + function_end_code;[24;73H[K[24;73H1754,4-13     94%[23;13H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1755,0-1      94%[23;1H[1;23r[23;1H
[1;24r[23;12H Cmatch::setup(function_end_code - function_start_code);[24;73H[K[24;73H1756,4-13     94%[23;13H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1757,3-12     94%[23;12H[1;23r[23;1H
[1;24r[23;12H [1mfor[0m ( ; start_code1P < function_end1P; ++start_code1P) {[24;73H[K[24;73H1758,4-13     94%[23;13H[1;23r[23;1H

[1;24r[22;16H [1mif[0m (g_match_lines) {[23;20H [1mif[0m (start_code1P != function_code1P && (fileP = start_code1P->m_fileP)[23;21H[K[23;1H[1m@[0m[24;73H[K[24;73H1759,5-17     94%[22;17H[1;23r[23;1H
[1;24r[22;1H [18C [1mif[0m (start_code1P != function_code1P && (fileP = start_code1P->m_fileP))[23;1H) {[24;73H[K[24;73H1760,6-21     94%[22;21H[1;23r[23;1H
[1;24r[23;24H lastP = start_code1P - [4m1[m;[24;73H[K[24;73H1761,7-25     94%[23;25H[1;23r[23;1H

[1;24r[22;24H [1mif[0m (lastP->m_fileP == fileP && lastP->m_source_lineno == start_codd[23;1He1P->m_source_lineno) {[24;73H[K[24;73H1762,7-25     94%[22;25H[1;23r[23;1H
[1;24r[23;28H [1mcontinue[0m;[24;73H[K[24;73H1763,8-29     94%[23;29H[1;23r[23;1H
[1;24r[23;16H }   }   }[24;73H[K[24;73H1764,5-17     94%[23;17H[1;23r[23;1H

[1;24r[22;1H[4m#ifdef EXPLORE_SPEED[m[23;16H [1mif[0m (source_cnt == [4m28[m) {[24;73H[K[24;73H1765,1        94%[22;1H[24;73H1766,5-17     94%[23;17H[1;23r[23;1H
[1;24r[23;20H last_match_comparisons1 = Cmatch::m_comparisons;[24;73H[K[24;73H1767,6-21     94%[23;21H[1;23r[23;1H
[1;24r[23;20H last_comparisons1       = g_comparisons;[24;73H[K[24;73H1768,6-21     94%[23;21H[1;23r[23;1H
[1;24r[23;20H clock_now1[13C = time([4m0[m);[24;73H[K[24;73H1769,6-21     95%[23;21H[1;23r[23;1H
[1;24r[23;20H clones_matched[9C = [4m0[m;[24;73H[K[24;73H1770,6-21     95%[23;21H[1;23r[23;1H
[1;24r[23;20H codes_matched[10C = [4m0[m;[24;73H[K[24;73H1771,6-21     95%[23;21H[1;23r[23;1H
[1;24r[23;20H rejected[15C = [4m0[m;[24;73H[K[24;73H1772,6-21     95%[23;21H[1;23r[23;1H
[1;24r[23;16H }[24;73H[K[24;73H1773,5-17     95%[23;17H[1;23r[23;1H
[1;24r[23;1H[4m#endif[m[24;73H[K[24;73H1774,1        95%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1775,0-1      95%[23;1H[1;23r[23;1H
[1;24r[23;16H [1mfor[0m (start_code2P = start_code1P->m_hashP; start_code2P; ) {[24;73H[K[24;73H1776,5-17     95%[23;17H[1;23r[23;1H
[1;24r[23;20H [1mif[0m (!g_match_macros &&[24;73H[K[24;73H1777,6-21     95%[23;21H[1;23r[23;1H
[1;24r[23;24H start_code1P->m_fileP &&[24;73H[K[24;73H1778,7-25     95%[23;25H[1;23r[23;1H
[1;24r[23;24H start_code2P->m_fileP == start_code1P->m_fileP &&[24;73H[K[24;73H1779,7-25     95%[23;25H[1;23r[23;1H
[1;24r[23;24H start_code2P->m_source_lineno == start_code1P->m_source_lineno) {[24;73H[K[24;73H1780,7-25     95%[23;25H[1;23r[23;1H

[1;24r[22;24H [1m// Obviously same lines will match trivially[0m[23;24H [1mgoto[0m advance;[24;73H[K[24;73H1781,7-25     95%[22;25H[24;73H1782,7-25     95%[23;25H[1;23r[23;1H
[1;24r[23;20H }[24;73H[K[24;73H1783,6-21     95%[23;21H[1;23r[23;1H

[1;24r[22;20H function2P      = start_code2P->m_functionP;[23;20H source2P[7C = function2P->m_sourceP;[24;73H[K[24;73H1784,6-21     95%[22;21H[24;73H1785,6-21     95%[23;21H[1;23r[23;1H
[1;24r[23;20H codes2P[8C = source2P->m_codesP;[24;73H[K[24;73H1786,6-21     95%[23;21H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1787,0-1      95%[23;1H[1;23r[23;1H
[1;24r[23;20H [1m// Detect subsequence within larger sequences already matched[0m[24;73H[K[24;73H1788,6-21     96%[23;21H[1;23r[23;1H
[1;24r[23;20H [1mif[0m (Cmatch::test(start_code1P - function_code1P, start_code2P)) {[24;73H[K[24;73H1789,6-21     96%[23;21H[1;23r[23;1H
[1;24r[23;1H[4m#ifdef EXPLORE_SPEED[m[24;73H[K[24;73H1790,1        96%[23;1H[1;23r[23;1H
[1;24r[23;24H ++rejected;[24;73H[K[24;73H1791,7-25     96%[23;25H[1;23r[23;1H
[1;24r[23;1H[4m#endif[m[24;73H[K[24;73H1792,1        96%[23;1H[1;23r[23;1H
[1;24r[23;24H [1mgoto[0m advance;[24;73H[K[24;73H1793,7-25     96%[23;25H[1;23r[23;1H
[1;24r[23;20H }[24;73H[K[24;73H1794,6-21     96%[23;21H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1795,0-1      96%[23;1H[1;23r[23;1H
[1;24r[23;20H function_code2P = codes2P + function2P->m_start_code;[24;73H[K[24;73H1796,6-21     96%[23;21H[1;23r[23;1H
[1;24r[23;20H function_end2P  = codes2P + function2P->m_end_code;[24;73H[K[24;73H1797,6-21     96%[23;21H[1;23r[23;1H
[1;24r[23;20H [1mif[0m (function2P == function1P) {[24;73H[K[24;73H1798,6-21     96%[23;21H[1;23r[23;1H
[1;24r[23;24H end_code2P = function_end1P;[24;73H[K[24;73H1799,7-25     96%[23;25H[1;23r[23;1H
[1;24r[23;24H end_code1P = start_code2P;[24;73H[K[24;73H1800,7-25     96%[23;25H[1;23r[23;1H
[1;24r[23;20H } [1melse[0m {[24;73H[K[24;73H1801,6-21     96%[23;21H[1;23r[23;1H
[1;24r[23;24H end_code1P = function_end1P;[24;73H[K[24;73H1802,7-25     96%[23;25H[1;23r[23;1H
[1;24r[23;24H end_code2P = function_end2P;[24;73H[K[24;73H1803,7-25     96%[23;25H[1;23r[23;1H
[1;24r[23;20H }[24;73H[K[24;73H1804,6-21     96%[23;21H[1;23r[23;1H
[1;24r[23;20H g_lth1 = end_code1P - start_code1P;[24;73H[K[24;73H1805,6-21     96%[23;21H[1;23r[23;1H
[1;24r[23;20H g_lth2 = end_code2P - start_code2P;[24;73H[K[24;73H1806,6-21     97%[23;21H[1;23r[23;1H
[1;24r[23;20H [1mif[0m (!permitted_clone()) {[24;73H[K[24;73H1807,6-21     97%[23;21H[1;23r[23;1H
[1;24r[23;24H [1mgoto[0m advance;[24;73H[K[24;73H1808,7-25     97%[23;25H[1;23r[23;1H
[1;24r[23;20H }[24;73H[K[24;73H1809,6-21     97%[23;21H[1;23r[23;1H
[1;24r[23;20H ++g_comparisons;[24;73H[K[24;73H1810,6-21     97%[23;21H[1;23r[23;1H
[1;24r[23;20H skipP[8C = detect_clone();[24;73H[K[24;73H1811,6-21     97%[23;21H[1;23r[23;1H
[1;24r[23;1H[4m#ifdef EXPLORE_SPEED[m[24;73H[K[24;73H1812,1        97%[23;1H[1;23r[23;1H
[1;24r[23;20H [1mif[0m (skipP) {[24;73H[K[24;73H1813,6-21     97%[23;21H[1;23r[23;1H
[1;24r[23;24H ++clones_matched;[24;73H[K[24;73H1814,7-25     97%[23;25H[1;23r[23;1H
[1;24r[23;24H codes_matched += skipP - start_code2P + [4m1[m;[24;73H[K[24;73H1815,7-25     97%[23;25H[1;23r[23;1H
[1;24r[23;20H }[24;73H[K[24;73H1816,6-21     97%[23;21H[1;23r[23;1H
[1;24r[23;1H[4m#endif[m[24;73H[K[24;73H1817,1        97%[23;1H[1;23r[23;1H
[1;24r[23;20H start_code2P  = start_code2P->m_hashP;[24;73H[K[24;73H1818,6-21     97%[23;21H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1819,0-1      97%[23;1H[1;23r[23;1H
[1;24r[23;20H [1mif[0m (skipP) {[24;73H[K[24;73H1820,6-21     97%[23;21H[1;23r[23;1H
[1;24r[23;24H [1mfor[0m (; start_code2P; start_code2P = start_code2P->m_hashP) {[24;73H[K[24;73H1821,7-25     97%[23;25H[1;23r[23;1H
[1;24r[23;28H function3P = start_code2P->m_functionP;[24;73H[K[24;73H1822,8-29     97%[23;29H[1;23r[23;1H
[1;24r[23;28H [1mif[0m (function3P != function2P || start_code2P >= skipP) {[24;73H[K[24;73H1823,8-29     97%[23;29H[1;23r[23;1H
[1;24r[23;32H [1mbreak[0m;[24;73H[K[24;73H1824,9-33     97%[23;33H[1;23r[23;1H
[1;24r[23;20H }   }   }[24;73H[K[24;73H1825,6-21     98%[23;21H[1;23r[23;1H
[1;24r[23;20H [1mcontinue[0m;[24;73H[K[24;73H1826,6-21     98%[23;21H[1;23r[23;1H
[1;24r[23;1H[1madvance[0m:[11C start_code2P = start_code2P->m_hashP;[24;73H[K[24;73H1827,1        98%[23;1H[1;23r[23;1H
[1;24r[23;16H }[24;73H[K[24;73H1828,5-17     98%[23;17H[1;23r[23;1H
[1;24r[23;1H[4m#ifdef EXPLORE_SPEED[m[24;73H[K[24;73H1829,1        98%[23;1H[1;23r[23;1H
[1;24r[23;16H [1mif[0m (source_cnt == [4m28[m) {[24;73H[K[24;73H1830,5-17     98%[23;17H[1;23r[23;1H
[1;24r[23;20H fprintf([4mstderr[m, [4m"[m[1m%d[0m[4m [m[1m%s[0m[4m [m[1m%d[0m[4m [m[1m%lld[0m[4m/[m[1m%d[0m[4m [m[1m%lld[0m[4m [m[1m%d[0m[4m/[m[1m%d\n[0m[4m"[m,[24;73H[K[24;73H1831,6-21     98%[23;21H[1;23r[23;1H
[1;24r[23;24H start_code1P->m_source_lineno,[24;73H[K[24;73H1832,7-25     98%[23;25H[1;23r[23;1H
[1;24r[23;24H start_code1P->m_codeP,[24;73H[K[24;73H1833,7-25     98%[23;25H[1;23r[23;1H
[1;24r[23;24H time([4m0[m) - clock_now1,[24;73H[K[24;73H1834,7-25     98%[23;25H[1;23r[23;1H
[1;24r[23;24H Cmatch::m_comparisons - last_match_comparisons1,[24;73H[K[24;73H1835,7-25     98%[23;25H[1;23r[23;1H
[1;24r[23;24H rejected,[24;73H[K[24;73H1836,7-25     98%[23;25H[1;23r[23;1H
[1;24r[23;24H g_comparisons - last_comparisons1,[24;73H[K[24;73H1837,7-25     98%[23;25H[1;23r[23;1H
[1;24r[23;24H clones_matched,[24;73H[K[24;73H1838,7-25     98%[23;25H[1;23r[23;1H
[1;24r[23;24H codes_matched[24;73H[K[24;73H1839,7-25     98%[23;25H[1;23r[23;1H
[1;24r[23;20H );[24;73H[K[24;73H1840,6-21     98%[23;21H[1;23r[23;1H
[1;24r[23;16H }[24;73H[K[24;73H1841,5-17     98%[23;17H[1;23r[23;1H
[1;24r[23;1H[4m#endif[m[24;73H[K[24;73H1842,1        98%[23;1H[1;23r[23;1H
[1;24r[23;12H }[24;73H[K[24;73H1843,4-13     99%[23;13H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1844,0-1      99%[23;1H[1;23r[23;1H
[1;24r[23;12H Cmatch::clear();[24;73H[K[24;73H1845,4-13     99%[23;13H[1;23r[23;1H
[1;24r[23;8H }[24;73H[K[24;73H1846,3-9      99%[23;9H[1;23r[23;1H
[1;24r[23;1H[4m#ifdef EXPLORE_SPEED[m[24;73H[K[24;73H1847,1        99%[23;1H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (g_verbose) {[24;73H[K[24;73H1848,3-9      99%[23;9H[1;23r[23;1H
[1;24r[23;12H clock_now = time([4m0[m) - clock_now;[24;73H[K[24;73H1849,4-13     99%[23;13H[1;23r[23;1H

[1;24r[22;12H fprintf([4mstderr[m, [4m"Elapse=[m[1m%d[0m[4m Codes=[m[1m%d[0m[4m Match=[m[1m%lld[0m[4m/[m[1m%lld[0m[4m Comparisons=[m[1m%lld[0m[4m/[m[1m%lld[0m[4m/[m[1m%lldd[23;1H\n[0m[4m"[m,[24;73H[K[24;73H1850,4-13     99%[22;13H[1;23r[23;1H
[1;24r[23;20H clock_now,[24;73H[K[24;73H1851,6-21     99%[23;21H[1;23r[23;1H
[1;24r[23;20H source1P->m_codes,[24;73H[K[24;73H1852,6-21     99%[23;21H[1;23r[23;1H
[1;24r[23;20H Cmatch::m_comparisons - last_match_comparisons,[24;73H[K[24;73H1853,6-21     99%[23;21H[1;23r[23;1H
[1;24r[23;20H Cmatch::m_comparisons,[24;73H[K[24;73H1854,6-21     99%[23;21H[1;23r[23;1H
[1;24r[23;20H g_comparisons - last_comparisons,[24;73H[K[24;73H1855,6-21     99%[23;21H[1;23r[23;1H
[1;24r[23;20H g_comparisons,[24;73H[K[24;73H1856,6-21     99%[23;21H[1;23r[23;1H

[1;24r[22;20H (clock_now ? (g_comparisons - last_comparisons) / (([4mlong[m [4mlong[m) clock_nn[23;1How) : [4m0[m));[24;73H[K[24;73H1857,6-21     99%[22;21H[1;23r[23;1H
[1;24r[23;8H }[24;73H[K[24;73H1858,3-9      99%[23;9H[1;23r[23;1H
[1;24r[23;1H[4m#endif[m[24;73H[K[24;73H1859,1        99%[23;1H[1;23r[23;1H
[1;24r[23;1H}   }[24;73H[K[24;73H1860,1        99%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H1861,0-1      Bot[23;1H[24;73H1860,1        Bot[22;1H[24;73H1859,1        Bot[21;1H[24;73H1858,1-4      Bot[20;4H[24;73H1857,1-4      Bot[18;4H[24;73H1856,1-4      Bot[17;4H[24;73H1855,1-4      Bot[16;4H[24;73H1854,1-4      Bot[15;4H[24;73H1853,1-4      Bot[14;4H[24;73H1852,1-4      Bot[13;4H[24;73H1851,1-4      Bot[12;4H[24;73H1850,1-4      Bot[10;4H[24;73H1849,1-4      Bot[9;4H[24;73H1848,1-4      Bot[8;4H[24;73H1847,1        Bot[7;1H[24;73H1846,1-4      Bot[6;4H[24;73H1845,1-4      Bot[5;4H[24;73H1844,0-1      Bot[4;1H[24;73H1843,1-4      Bot[3;4H[24;73H1842,1        Bot[2;1H[24;73H1841,1-4      Bot[1;4H[1;23r[1;1HM[1;24r[1;20H );[24;73H[K[24;73H1840,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;24H codes_matched[24;73H[K[24;73H1839,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;24H clones_matched,[24;73H[K[24;73H1838,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;24H g_comparisons - last_comparisons1,[24;73H[K[24;73H1837,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;24H rejected,[23;21H[K[23;1H[1m@[0m[24;73H[K[24;73H1836,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;24H Cmatch::m_comparisons - last_match_comparisons1,[24;73H[K[24;73H1835,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;24H time([4m0[m) - clock_now1,[24;73H[K[24;73H1834,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;24H start_code1P->m_codeP,[24;73H[K[24;73H1833,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;24H start_code1P->m_source_lineno,[24;73H[K[24;73H1832,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;20H fprintf([4mstderr[m, [4m"[m[1m%d[0m[4m [m[1m%s[0m[4m [m[1m%d[0m[4m [m[1m%lld[0m[4m/[m[1m%d[0m[4m [m[1m%lld[0m[4m [m[1m%d[0m[4m/[m[1m%d\n[0m[4m"[m,[24;73H[K[24;73H1831,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;16H [1mif[0m (source_cnt == [4m28[m) {[24;73H[K[24;73H1830,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;1H[4m#ifdef EXPLORE_SPEED[m[24;73H[K[24;73H1829,1        99%[1;1H[1;23r[1;1HM[1;24r[1;16H }[23;13H[K[23;1H[1m@[0m[24;73H[K[24;73H1828,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;1H[1madvance[0m:[11C start_code2P = start_code2P->m_hashP;[24;73H[K[24;73H1827,1        99%[1;1H[1;23r[1;1HM[1;24r[1;20H [1mcontinue[0m;[24;73H[K[24;73H1826,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;20H }   }   }[24;73H[K[24;73H1825,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;32H [1mbreak[0m;[24;73H[K[24;73H1824,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;28H [1mif[0m (function3P != function2P || start_code2P >= skipP) {[24;73H[K[24;73H1823,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;28H function3P = start_code2P->m_functionP;[24;73H[K[24;73H1822,1-4      99%[1;4H[1;23r[1;1HM[1;24r[1;24H [1mfor[0m (; start_code2P; start_code2P = start_code2P->m_hashP) {[24;73H[K[24;73H1821,1-4      99%[1;4H[24;73H[K[24;1H:e
:e 
:e m
:e ma
:e mat
:e matc
:e match
:e match.
:e match.c
:e match.cp
:e match.cpp
:e match.cpp
"match.cpp" 
"match.cpp" 105L, 2544C[1;1H[4m#ifdef WIN32[m[1;25H[K[2;1H[4m#define _CRT_SECURE_NO_WARNINGS[m[2;32H[K[3;1H[4m#endif[m[3;29H[K[4;33H[K[5;1H[4m#include <assert.h>[m[5;21H[K[6;1H[4m#include <string.h>[m[6;21H[K[7;1H[K[8;1H[4m#include "object.h"
#include "xmalloc.h"
#include "match.h"[m[10;20H[K[11;21H[K[12;25H[K[13;1H[4mint[m[16C Cmatch::m_matches_lth         = [4m0[m;
matchesT **[8C Cmatch::m_matchesPP           = [4m0[m;
matchesT ***[7C Cmatch::m_tail_matchesPPP     = [4m0[m;[15;55H[K[16;1Hblock_matchesT *    Cmatch::m_head_block_matchesP = [4m0[m;
block_matchesT *    Cmatch::m_block_matchesP      = [4m0[m;[17;55H[K[18;1HmatchesT *[9C Cmatch::m_matches_cacheP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_endP[7C = [4m0[m;
[4mlong[m [4mlong[m[10C Cmatch::m_comparisons[8C = [4m0[m;[21;17H[K[22;1H[4mextern[m [4mint[m  g_max_function_lth;[23;13H[K[24;73H1,1           Top[1;1H[24;73H2,1           Top[2;1H[24;73H3,1           Top[3;1H[24;73H4,0-1         Top[4;1H[24;73H5,1           Top[5;1H[24;73H6,1           Top[6;1H[24;73H7,0-1         Top[7;1H[24;73H8,1           Top[8;1H[24;73H9,1           Top[9;1H[24;73H10,1          Top[10;1H[24;73H11,0-1        Top[11;1H[24;73H12,0-1        Top[12;1H[24;73H13,1          Top[13;1H[24;73H14,1          Top[14;1H[24;73H15,1          Top[15;1H[24;73H16,1          Top[16;1H[24;73H17,1          Top[17;1H[24;73H18,1          Top[18;1H[24;73H19,1          Top[19;1H[24;73H20,1          Top[20;1H[24;73H21,0-1        Top[21;1H[24;73H22,1          Top[22;1H[24;73H23,0-1        Top[23;1H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;1H[K[24;73H24,1           1%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::init([4mvoid[m)[24;73H[K[24;73H25,1           2%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H26,1           3%[23;1H[1;23r[23;1H
[1;24r[23;4H m_matches_lth     = [1msizeof[0m(matchesT *) * g_max_function_lth;[24;73H[K[24;73H27,2-5         4%[23;5H[1;23r[23;1H
[1;24r[23;4H m_matchesPP       = (matchesT **)  Xmalloc(m_matches_lth);[24;73H[K[24;73H28,2-5         6%[23;5H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (!m_matchesPP) {[24;73H[K[24;73H29,2-5         7%[23;5H[1;23r[23;1H
[1;24r[23;8H outofmemory();[24;73H[K[24;73H30,3-9         8%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H31,2-5         9%[23;5H[1;23r[23;1H
[1;24r[23;4H m_tail_matchesPPP = (matchesT ***) Xmalloc(m_matches_lth);[24;73H[K[24;73H32,2-5        10%[23;5H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (!m_tail_matchesPPP) {[24;73H[K[24;73H33,2-5        12%[23;5H[1;23r[23;1H
[1;24r[23;8H outofmemory();[24;73H[K[24;73H34,3-9        13%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H35,2-5        14%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H36,1          15%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H37,0-1        17%[23;1H[24;73H[K[24;1H/m
/m_
/m_t
/m_ta
/m_tai
/m_tail
/m_tail_
/m_tail_m
/m_tail_ma
/m_tail_mat
/m_tail_matc
/m_tail_match
/m_tail_matche
/m_tail_matches
/m_tail_matchesP
/m_tail_matchesPP
/m_tail_matchesPPP
/m_tail_matchesPPP
/m_tail_matchesPPP
[1;23r[23;1H






[1;24r[17;1H[4mvoid[m
Cmatch::setup([4mint[m lth)
{
    assert(lth <= g_max_function_lth);
    memset(m_matchesPP, [4m0[m, lth * [1msizeof[0m(matchesT *));
    [1mwhile[0m (--lth >= [4m0[m) {[23;8H m_tail_matchesPPP[lth] = m_matchesPP + lth;[24;1H[K[24;73H44,3-9        25%[23;9H[1;23r[23;1H
[1;24r[23;1H}   }[24;73H[K[24;73H45,1          26%[23;1H
/m_tail_matchesPPP[24;73H[K[24;1H[m[m[0m[H[J[1;12H next_blockP->m_nextP = [4m0[m;[2;12H [1mif[0m (m_block_matchesP) {[3;16H m_block_matchesP->m_nextP = next_blockP;[4;12H } [1melse[0m {[5;16H m_head_block_matchesP = next_blockP;[6;8H }   }[7;8H m_block_matchesP = next_blockP;[9;8H m_matches_cacheP = m_block_matchesP->m_cache;[10;8H m_matches_endP   = m_matches_cacheP + [4m8192[m;
    }
    tailPPP  = m_tail_matchesPPP + offset;
    Xcheck(m_tail_matchesPPP, m_matches_lth, tailPPP);
    tailPP   = *tailPPP;
    m_matches_cacheP->m_codeP = code2P;
    m_matches_cacheP->m_nextP = [4m0[m;
    *tailPPP = &m_matches_cacheP->m_nextP;
    *tailPP  = m_matches_cacheP++;
}

[4mint[m
Cmatch::test([4mint[m offset, [4mvoid[m *code2P)
{[24;73H75,13-16      76%[12;16H[24;1H/m_tail_matchesPPP[24;73H[K[24;1H[72C76,9-12       76%[13;12H[24;1H/m_tail_matchesPPP[24;73H[K[24;1H[7msearch hit BOTTOM, continuing at TOP[m[m[0m[H[J[2;1H[4m#include <assert.h>
#include <string.h>

#include "object.h"
#include "xmalloc.h"
#include "match.h"


int[m[16C Cmatch::m_matches_lth[8C = [4m0[m;
matchesT **[8C Cmatch::m_matchesPP[10C = [4m0[m;
matchesT ***[7C Cmatch::m_tail_matchesPPP     = [4m0[m;
block_matchesT *    Cmatch::m_head_block_matchesP = [4m0[m;
block_matchesT *    Cmatch::m_block_matchesP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_cacheP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_endP[7C = [4m0[m;
[4mlong[m [4mlong[m[10C Cmatch::m_comparisons[8C = [4m0[m;

[4mextern[m [4mint[m  g_max_function_lth;

[4mvoid[m
Cmatch::init([4mvoid[m)
{[24;73H15,23-29       3%
[7msearch hit BOTTOM, continuing at TOP[m[24;73H[K[24;73H15,23-29       3%[12;29H[24;1H/m_tail_matchesPPP[24;19H[K[24;1H[1;23r[23;1H





[1;24r[18;4H m_matches_lth     = [1msizeof[0m(matchesT *) * g_max_function_lth;
    m_matchesPP       = (matchesT **)  Xmalloc(m_matches_lth);
    [1mif[0m (!m_matchesPP) {[21;8H outofmemory();
    }
    m_tail_matchesPPP = (matchesT ***) Xmalloc(m_matches_lth);[24;1H[K[24;73H32,2-5        10%[23;5H[24;73H31,2-5        10%[22;5H[24;73H30,2-8        10%[21;8H[24;73H29,2-5        10%[20;5H[24;73H28,2-5        10%[19;5H[24;73H27,2-5        10%[18;5H[24;73H26,1          10%[17;1H[24;73H25,5          10%[16;5H[24;73H24,4          10%[15;4H[24;73H23,0-1        10%[14;1H[24;73H22,5          10%[13;5H[24;73H21,0-1        10%[12;1H[24;73H20,5          10%[11;5H[24;73H19,5          10%[10;5H[24;73H18,5          10%[9;5H[24;73H17,5          10%[8;5H[24;73H16,5          10%[7;5H[24;73H15,5          10%[6;5H[24;1H/m_tail_matchesPPP[24;73H[K[24;1H[72C15,23-29      10%[6;29H[24;1H/m_tail_matchesPPP[24;73H[K[24;1H[72C32,2-5        10%[23;5H
/m_tail_matchesPPP[24;73H[K[24;1H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (!m_tail_matchesPPP) {[24;1H[K[24;73H33,7-10       12%[23;10H
/m_tail_matchesPPP[24;73H[K[24;1H[1;23r[23;1H










[1;24r[13;8H outofmemory();
    }
}

[4mvoid[m
Cmatch::setup([4mint[m lth)
{
    assert(lth <= g_max_function_lth);
    memset(m_matchesPP, [4m0[m, lth * [1msizeof[0m(matchesT *));
    [1mwhile[0m (--lth >= [4m0[m) {[23;8H m_tail_matchesPPP[lth] = m_matchesPP + lth;[24;1H[K[24;73H44,3-9        25%[23;9H
/m_tail_matchesPPP[24;73H[K[24;1H[m[m[0m[H[J[1;12H next_blockP->m_nextP = [4m0[m;[2;12H [1mif[0m (m_block_matchesP) {[3;16H m_block_matchesP->m_nextP = next_blockP;[4;12H } [1melse[0m {[5;16H m_head_block_matchesP = next_blockP;[6;8H }   }[7;8H m_block_matchesP = next_blockP;[9;8H m_matches_cacheP = m_block_matchesP->m_cache;[10;8H m_matches_endP   = m_matches_cacheP + [4m8192[m;
    }
    tailPPP  = m_tail_matchesPPP + offset;
    Xcheck(m_tail_matchesPPP, m_matches_lth, tailPPP);
    tailPP   = *tailPPP;
    m_matches_cacheP->m_codeP = code2P;
    m_matches_cacheP->m_nextP = [4m0[m;
    *tailPPP = &m_matches_cacheP->m_nextP;
    *tailPP  = m_matches_cacheP++;
}

[4mint[m
Cmatch::test([4mint[m offset, [4mvoid[m *code2P)
{[24;73H75,13-16      76%[12;16H[24;73H76,2-5        76%[13;5H[24;73H77,2-5        76%[14;5H[24;73H78,2-5        76%[15;5H[24;73H79,2-5        76%[16;5H[24;73H[K[24;1H:1
:1
[m[m[0m[H[J[1;1H[4m#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif

#include <assert.h>
#include <string.h>

#include "object.h"
#include "xmalloc.h"
#include "match.h"


int[m[16C Cmatch::m_matches_lth[8C = [4m0[m;
matchesT **[8C Cmatch::m_matchesPP[10C = [4m0[m;
matchesT ***[7C Cmatch::m_tail_matchesPPP     = [4m0[m;
block_matchesT *    Cmatch::m_head_block_matchesP = [4m0[m;
block_matchesT *    Cmatch::m_block_matchesP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_cacheP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_endP[7C = [4m0[m;
[4mlong[m [4mlong[m[10C Cmatch::m_comparisons[8C = [4m0[m;

[4mextern[m [4mint[m  g_max_function_lth;[24;73H1,1           Top[1;1H[24;73H[K[24;1H??m_tail_matchesPPP
[7msearch hit TOP, continuing at BOTTOM[m[m[0m[H[J[1;12H [1mif[0m (m_block_matchesP) {[2;16H m_block_matchesP->m_nextP = next_blockP;[3;12H } [1melse[0m {[4;16H m_head_block_matchesP = next_blockP;[5;8H }   }[6;8H m_block_matchesP = next_blockP;[8;8H m_matches_cacheP = m_block_matchesP->m_cache;[9;8H m_matches_endP   = m_matches_cacheP + [4m8192[m;
    }
    tailPPP  = m_tail_matchesPPP + offset;
    Xcheck(m_tail_matchesPPP, m_matches_lth, tailPPP);
    tailPP   = *tailPPP;
    m_matches_cacheP->m_codeP = code2P;
    m_matches_cacheP->m_nextP = [4m0[m;
    *tailPPP = &m_matches_cacheP->m_nextP;
    *tailPP  = m_matches_cacheP++;
}

[4mint[m
Cmatch::test([4mint[m offset, [4mvoid[m *code2P)
{
    [4mstatic[m  matchesT[7C *matchesP, **matchesPP;[24;73H76,9-12       78%
[7msearch hit TOP, continuing at BOTTOM[m[24;73H[K[24;73H76,9-12       78%[12;12H[24;73H77,2-5        78%[13;5H[24;73H78,2-5        78%[14;5H[24;73H78,3-6        78%[14;6H[24;73H78,4-7        78%[14;7H[24;73H78,5-8        78%[14;8H[24;73H78,6-9        78%[14;9H[24;73H78,7-10       78%[14;10H[24;73H78,8-11       78%[14;11H[24;73H78,9-12       78%[14;12H[24;73H78,10-13      78%[14;13H[24;73H78,11-14      78%[14;14H[24;73H78,12-15      78%[14;15H[24;73H78,13-16      78%[14;16H[24;73H78,14-17      78%[14;17H[24;73H78,15-18      78%[14;18H[24;73H78,16-19      78%[14;19H[24;73H78,17-20      78%[14;20H[24;73H78,18-21      78%[14;21H[24;73H78,19-22      78%[14;22H[24;73H78,20-23      78%[14;23H[24;73H78,21-24      78%[14;24H[24;73H78,22-25      78%[14;25H[24;73H78,23-26      78%[14;26H[24;73H78,24-27      78%[14;27H[24;73H78,25-28      78%[14;28H[24;73H78,26-29      78%[14;29H[24;73H78,27-30      78%[14;30H[24;73H78,28-31      78%[14;31H[24;73H78,29-32      78%[14;32H[24;73H78,30-33      78%[14;33H[24;73H79,2-5        78%[15;5H[24;73H79,3-6        78%[15;6H[24;73H79,4-7        78%[15;7H[24;73H79,5-8        78%[15;8H[24;73H79,6-9        78%[15;9H[24;73H79,7-10       78%[15;10H[24;73H79,8-11       78%[15;11H[24;73H79,9-12       78%[15;12H[24;73H79,10-13      78%[15;13H[24;73H79,11-14      78%[15;14H[24;73H79,12-15      78%[15;15H[24;73H79,13-16      78%[15;16H[24;73H79,14-17      78%[15;17H[24;73H79,15-18      78%[15;18H[24;73H79,16-19      78%[15;19H[24;73H79,17-20      78%[15;20H[24;73H79,18-21      78%[15;21H[24;73H79,19-22      78%[15;22H[24;73H79,20-23      78%[15;23H[24;73H79,21-24      78%[15;24H[24;73H79,22-25      78%[15;25H[24;73H79,23-26      78%[15;26H[24;73H79,24-27      78%[15;27H[24;73H79,25-28      78%[15;28H[24;73H79,26-29      78%[15;29H[24;73H79,27-30      78%[15;30H[24;73H79,28-31      78%[15;31H[24;73H79,29-32      78%[15;32H[24;73H79,30-33      78%[15;33H ;[15;34H[K[15;33H[24;1H[1m-- INSERT --[0m[24;13H[K[24;73H79,30-33      78%[15;33H m;[24;73H79,31-34      78%[15;34Hm_;[24;73H79,32-35      78%[15;35H_m;[24;73H79,33-36      78%[15;36Hma;[24;73H79,34-37      78%[15;37Hat;[24;73H79,35-38      78%[15;38Htc;[24;73H79,36-39      78%[15;39Hch;[24;73H79,37-40      78%[15;40Hhe;[24;73H79,38-41      78%[15;41Hes;[24;73H79,39-42      78%[15;42HsP;[24;73H79,40-43      78%[15;43HPP;[24;73H79,41-44      78%[15;44HP[[7m;[16;42H;[17;34H;
}[22;1H{[23;51H;[0m[24;73H79,42-45      78%[15;45H[o[7m;[0m[24;73H79,43-46      78%[15;46Hof[7m;[0m[24;73H79,44-47      78%[15;47Hff[7m;[0m[24;73H79,45-48      78%[15;48Hfs[7m;[0m[24;73H79,46-49      78%[15;49Hse[7m;[0m[24;73H79,47-50      78%[15;50Het[7m;[0m[24;73H79,48-51      78%[15;51Ht];[16;42H;[17;34H;
}[22;1H{[23;51H;[24;73H79,49-52      78%[15;52H[24;1H[K[15;51H[24;73H79,48-51      78%[15;51H[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H80,1          77%[16;23r[16;1HM[1;24r[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H80,1          77%[16;1H[24;73H80,2-5        77%[16;5H m[24;73H80,3-6        77%[16;6Hm_[24;73H80,4-7        77%[16;7H_m[24;73H80,5-8        77%[16;8Hma[24;73H80,6-9        77%[16;9Hat[24;73H80,7-10       77%[16;10Htc[24;73H80,8-11       77%[16;11Hch[24;73H80,9-12       77%[16;12Hhe[24;73H80,10-13      77%[16;13Hes[24;73H80,11-14      77%[16;14HsP[24;73H80,12-15      77%[16;15HPP[24;73H80,13-16      77%[16;16HP[[17;42H[7m;[18;34H;
}[23;1H{[0m[24;73H80,14-17      77%[16;17H[o[24;73H80,15-18      77%[16;18Hof[24;73H80,16-19      77%[16;19Hff[24;73H80,17-20      77%[16;20Hfs[24;73H80,18-21      77%[16;21Hse[24;73H80,19-22      77%[16;22Het[24;73H80,20-23      77%[16;23Ht[[24;73H80,21-24      77%[16;24H[16;23H[K[24;73H80,20-23      77%[16;23Ht][17;42H;[18;34H;
}[23;1H{[24;73H80,21-24      77%[16;24H[24;73H80,22-25      77%[16;25H[24;73H80,23-26      77%[16;26H[24;73H80,24-27      77%[16;27H[24;73H80,25-28      77%[16;28H[24;73H80,26-29      77%[16;29H[24;73H80,27-30      77%[16;30H[24;73H80,28-31      77%[16;31H =[24;73H80,29-32      77%[16;32H[24;73H80,30-33      77%[16;33H m[24;73H80,31-34      77%[16;34Hmm[24;73H80,32-35      77%[16;35H[16;34H[K[24;73H80,31-34      77%[16;34Hm_[24;73H80,32-35      77%[16;35H_m[24;73H80,33-36      77%[16;36Hma[24;73H80,34-37      77%[16;37Hat[24;73H80,35-38      77%[16;38Htc[24;73H80,36-39      77%[16;39Hch[24;73H80,37-40      77%[16;40Hhe[24;73H80,38-41      77%[16;41Hes[24;73H80,39-42      77%[16;42Hs_[24;73H80,40-43      77%[16;43H_c[24;73H80,41-44      77%[16;44Hca[24;73H80,42-45      77%[16;45Hah[24;73H80,43-46      77%[16;46H[16;45H[K[24;73H80,42-45      77%[16;45Hac[24;73H80,43-46      77%[16;46Hch[24;73H80,44-47      77%[16;47Hhe[24;73H80,45-48      77%[16;48HeP[24;73H80,46-49      77%[16;49HP;[24;73H80,47-50      77%[16;50H[24;1H[K[16;49H[24;73H80,46-49      77%[16;49H[24;73H81,2-5        77%[17;5H[24;73H80,2-5        77%[16;5H[24;73H80,46-49      77%[16;49H[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H80,46-49      77%[16;49HP+;[24;73H80,47-50      77%[16;50H++;[24;73H80,48-51      77%[16;51H[24;1H[K[16;50H[24;73H80,47-50      77%[16;50H[24;73H81,2-5        77%[17;5H[24;73H82,2-5        77%[18;5H[18;23r[23;1H
[1;24r[23;4H [4mstatic[m  matchesT[7C *matchesP, **matchesPP;[24;73H[K[24;73H82,1          78%[18;1H[24;73H81,1-4        78%[17;4H[17;23r[23;1H
[1;24r[24;73H[K[24;73H81,1          79%[17;1H[24;73H80,1-4        79%[16;4H[24;73H79,1-4        79%[15;4H[24;73H78,1-4        79%[14;4H[24;73H77,1-4        79%[13;4H[13;23r[23;1H
[1;24r[23;4H [1mfor[0m (matchesPP = m_matchesPP + offset; (matchesP = *matchesPP); matchesPP = &(matchesP[23;5H[K[23;1H[1m@[0m[24;73H[K[24;73H77,2-5        79%[13;5H[24;73H76,2-5        79%[12;5H[12;23r[23;1H
[1;24r[22;1H    [1mfor[0m (matchesPP = m_matchesPP + offset; (matchesP = *matchesPP); matchesPP = &(matchesPP[23;1H->m_nextP)) {[24;73H[K[24;73H76,2-5        80%[12;5H[24;73H75,2-5        80%[11;5H[11;23r[23;1H
[1;24r[23;8H ++m_comparisons;[24;73H[K[24;73H75,2-5        81%[11;5H[24;73H[K[24;1H:1
:1
[m[m[0m[H[J[1;1H[4m#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif

#include <assert.h>
#include <string.h>

#include "object.h"
#include "xmalloc.h"
#include "match.h"


int[m[16C Cmatch::m_matches_lth[8C = [4m0[m;
matchesT **[8C Cmatch::m_matchesPP[10C = [4m0[m;
matchesT ***[7C Cmatch::m_tail_matchesPPP     = [4m0[m;
block_matchesT *    Cmatch::m_head_block_matchesP = [4m0[m;
block_matchesT *    Cmatch::m_block_matchesP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_cacheP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_endP[7C = [4m0[m;
[4mlong[m [4mlong[m[10C Cmatch::m_comparisons[8C = [4m0[m;

[4mextern[m [4mint[m  g_max_function_lth;[24;73H1,1           Top[1;1H[24;73H[K[24;1H/r
/r
/[24;2H[K[24;1H/t
/ta
/tai
/tail
/tail
/tail
[72C15,25-31      Top[15;31H[15;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;1H[K[24;73H15,1          Top[15;1H[24;1H/tail[24;73H[K[24;1H[1;23r[23;1H







[1;24r[16;1HCmatch::init([4mvoid[m)
{
    m_matches_lth     = [1msizeof[0m(matchesT *) * g_max_function_lth;
    m_matchesPP       = (matchesT **)  Xmalloc(m_matches_lth);
    [1mif[0m (!m_matchesPP) {[21;8H outofmemory();
    }
    m_tail_matchesPPP = (matchesT ***) Xmalloc(m_matches_lth);[24;1H[K[24;73H31,4-7        10%[23;7H [1mif[0m (!m_tail_matchesPPP) {[23;30H[K[24;73H31,2-5        10%[23;5H     outofmemory();[23;23H[K[24;73H31,3-9        10%[23;9H
    }[23;9H[K[24;73H31,2-5        10%[23;5H
}[23;5H[K[24;73H31,1          10%[23;1H
/tail[24;73H[K[24;1H[1;23r[23;1H







[1;24r[17;1H[4mvoid[m
Cmatch::setup([4mint[m lth)
{
    assert(lth <= g_max_function_lth);
    memset(m_matchesPP, [4m0[m, lth * [1msizeof[0m(matchesT *));
    [1mwhile[0m (--lth >= [4m0[m) {[23;8H m_tail_matchesPPP[lth] = m_matchesPP + lth;[24;1H[K[24;73H39,5-11       21%[23;11H[24;73H38,8-11       21%[22;11H
        m_tail_matchesPPP[lth] = m_matchesPP + lth;
}   }[23;9H[K[24;73H38,3-9        22%[22;9H
}   }[22;9H[K[23;1H     [24;73H38,1          22%[22;1H[24;73H38,2-4        22%[22;4H[22;5H[K[24;73H38,1          22%[22;1H

/tail[24;73H[K[24;1H[1;23r[23;1H




[1;24r[19;1H[4mvoid[m
Cmatch::add([4mint[m offset, [4mvoid[m *code2P)
{
    [4mstatic[m  block_matchesT  *next_blockP;
    [4mstatic[m  matchesT[7C **tailPP, ***tailPPP;[24;1H[K[24;73H44,21-31      29%[23;31H[23;5H[K[24;73H44,0-1        30%[23;1H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (m_matches_cacheP == m_matches_endP) {[24;73H[K[24;73H45,2-5        31%[23;5H
/tail[24;73H[K[24;1H[7msearch hit BOTTOM, continuing at TOP
E486: Pattern not found: tail[m[24;30H[K[24;73H45,2-5        31%[23;5H[24;1H[K[24;1H:w
:w
"match.cpp" 
"match.cpp" 93L, 2159C written[42C45,2-5        31%
"match.cpp" 93L, 2159C written[24;73H[K[24;73H45,2-5        31%[23;5H[24;1H[K[24;1H:e
:e 
:e m
:e ma
:e mat
:e matc
:e match
:e match.
:e match.h
:e match.h
"match.h" 
"match.h" 29L, 716C[1;1H[K[2;1H[4mtypedef[m [4mstruct[m matchesS {
    [4mstruct[m matchesS *m_nextP;
    [4mvoid[m            *m_codeP;[4;30H[K[5;1H} matchesT;[5;12H[K[6;5H[K[7;1H[4mtypedef[m [4mstruct[m block_matchesS {
    [4mstruct[m block_matchesS   *m_nextP;
    matchesT[15C m_cache[[4m8192[m];
} block_matchesT;[11;1H[K[12;1H[4mclass[m Cmatch {[12;15H[K[13;1H[1mprivate[0m:
    [4mstatic[m [4mint[m              m_matches_lth;
    [4mstatic[m matchesT         **m_matchesPP;[15;43H[K[16;1H    [4mstatic[m matchesT[8C ***m_tail_matchesPPP;
    [4mstatic[m block_matchesT   *m_head_block_matchesP;
    [4mstatic[m block_matchesT   *m_block_matchesP;
    [4mstatic[m matchesT         *m_matches_cacheP;
    [4mstatic[m matchesT[8C *m_matches_endP;
[1mpublic[0m:[21;8H[K[22;4H [4mstatic[m [4mlong[m [4mlong[m[7C m_comparisons;[23;5H[K[24;73H1,0-1         Top[1;1H[24;73H2,1           Top[2;1H[24;73H3,2-5         Top[3;5H[24;73H4,2-5         Top[4;5H[24;73H5,1           Top[5;1H[24;73H6,0-1         Top[6;1H[24;73H7,1           Top[7;1H[24;73H8,2-5         Top[8;5H[24;73H9,2-5         Top[9;5H[24;73H10,1          Top[10;1H[24;73H11,0-1        Top[11;1H[24;73H12,1          Top[12;1H[24;73H13,1          Top[13;1H[24;73H14,2-5        Top[14;5H[24;73H15,2-5        Top[15;5H[24;73H16,2-5        Top[16;5H[24;73H17,2-5        Top[17;5H[24;73H18,2-5        Top[18;5H[24;73H19,2-5        Top[19;5H[24;73H20,2-5        Top[20;5H[24;73H21,1          Top[21;1H[24;73H22,2-5        Top[22;5H[24;73H23,0-1        Top[23;1H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m [4mvoid[m init([4mvoid[m);[24;1H[K[24;73H24,2-5        16%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m [4mvoid[m setup([4mint[m lth);[24;73H[K[24;73H25,2-5        33%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m [4mvoid[m add([4mint[m offset, [4mvoid[m *code2P);[24;73H[K[24;73H26,2-5        50%[23;5H[24;73H25,2-5        50%[22;5H[24;73H24,2-5        50%[21;5H[24;73H23,0-1        50%[20;1H[24;73H22,2-5        50%[19;5H[24;73H21,5          50%[18;5H[24;73H20,2-5        50%[17;5H[24;73H19,2-5        50%[16;5H[24;73H18,2-5        50%[15;5H[24;73H17,2-5        50%[14;5H[24;73H16,2-5        50%[13;5H[13;23r[23;1H
[1;24r[23;4H [4mstatic[m [4mint[m  test([4mint[m offset, [4mvoid[m *code2P);[24;73H[K[24;73H16,2-5        60%[13;5H[24;73H[K[24;1H:w
:w
"match.h" 
"match.h" 28L, 675C written[45C16,2-5        60%
"match.h" 28L, 675C written[24;73H[K[24;73H16,2-5        60%[13;5H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ make
g++ -c -O2 -I. -Wall -DNDEBUG match.cpp
g++ -c -O2 -I. -Wall -DNDEBUG acd.cpp
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
g++ -o acd -O2 -I. -Wall -DNDEBUG ../binutils-2.16.1/libiberty/xexit.o ../binutils-2.16.1/libiberty/xmalloc.o ../binutils-2.16.1/libiberty/xstrdup.o ../binutils-2.16.1/libiberty/safe-ctype.o ../binutils-2.16.1/libiberty/dyn-string.o ../binutils-2.16.1/libiberty/cp-demangle.o ../binutils-2.16.1/libiberty/cplus-dem.o  data.o object.o util.o xmalloc.o ta.o clics_output.o dwarf.o match.o detect.o file.o function.o fileref.o clone.o directory.o source.o label.o read_linux.o read_windows.o acd.o
ijdavis@swag:~/src/acd$ vi match.cpp
[?1h=[1;24r[m[m[0m[H[J[24;1H"match.cpp" 
"match.cpp" 93L, 2159C[1;1H[4m#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif

#include <assert.h>
#include <string.h>

#include "object.h"
#include "xmalloc.h"
#include "match.h"


int[m[16C Cmatch::m_matches_lth[8C = [4m0[m;
matchesT **[8C Cmatch::m_matchesPP[10C = [4m0[m;
block_matchesT *    Cmatch::m_head_block_matchesP = [4m0[m;
block_matchesT *    Cmatch::m_block_matchesP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_cacheP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_endP[7C = [4m0[m;
[4mlong[m [4mlong[m[10C Cmatch::m_comparisons[8C = [4m0[m;

[4mextern[m [4mint[m  g_max_function_lth;

[4mvoid[m[24;73H1,1           Top[1;1H[24;73H2,1           Top[2;1H[24;73H3,1           Top[3;1H[24;73H4,0-1         Top[4;1H[24;73H5,1           Top[5;1H[24;73H6,1           Top[6;1H[24;73H7,0-1         Top[7;1H[24;73H8,1           Top[8;1H[24;73H9,1           Top[9;1H[24;73H10,1          Top[10;1H[24;73H11,0-1        Top[11;1H[24;73H12,0-1        Top[12;1H[24;73H13,1          Top[13;1H[24;73H14,1          Top[14;1H[24;73H15,1          Top[15;1H[24;73H16,1          Top[16;1H[24;73H17,1          Top[17;1H[24;73H18,1          Top[18;1H[24;73H19,1          Top[19;1H[24;73H20,0-1        Top[20;1H[24;73H21,1          Top[21;1H[24;73H22,0-1        Top[22;1H[24;73H23,1          Top[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::init([4mvoid[m)[24;1H[K[24;73H24,1           1%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H25,1           2%[23;1H[1;23r[23;1H
[1;24r[23;4H m_matches_lth     = [1msizeof[0m(matchesT *) * g_max_function_lth;[24;73H[K[24;73H26,2-5         4%[23;5H[1;23r[23;1H
[1;24r[23;4H m_matchesPP       = (matchesT **)  Xmalloc(m_matches_lth);[24;73H[K[24;73H27,2-5         5%[23;5H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (!m_matchesPP) {[24;73H[K[24;73H28,2-5         7%[23;5H[1;23r[23;1H
[1;24r[23;8H outofmemory();[24;73H[K[24;73H29,3-9         8%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H30,2-5        10%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H31,1          11%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H32,0-1        12%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H33,1          14%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::setup([4mint[m lth)[24;73H[K[24;73H34,1          15%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H35,1          17%[23;1H[1;23r[23;1H
[1;24r[23;4H assert(lth <= g_max_function_lth);[24;73H[K[24;73H36,2-5        18%[23;5H[1;23r[23;1H
[1;24r[23;4H memset(m_matchesPP, [4m0[m, lth * [1msizeof[0m(matchesT *));[24;73H[K[24;73H37,2-5        20%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H38,1          21%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H39,3-12       22%[23;12H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H40,1          24%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::add([4mint[m offset, [4mvoid[m *code2P)[24;73H[K[24;73H41,1          25%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H42,1          27%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  block_matchesT  *next_blockP;[24;73H[K[24;73H43,2-5        28%[23;5H[1;23r[23;1H
[1;24r[24;73H[K[24;73H44,0-1        30%[23;1H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (m_matches_cacheP == m_matches_endP) {[24;73H[K[24;73H45,2-5        31%[23;5H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (m_block_matchesP) {[24;73H[K[24;73H46,3-9        32%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = m_block_matchesP->m_nextP;[24;73H[K[24;73H47,4-13       34%[23;13H[24;73H46,7-13       34%[22;13H[24;73H45,10-13      34%[21;13H[24;73H44,0-1        34%[20;1H[24;73H43,9-13       34%[19;13H[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H44,1          33%[20;23r[20;1HM[1;24r[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H44,1          33%[20;1H[24;73H44,2-5        33%[20;5H s[24;73H44,3-6        33%[20;6Hst[24;73H44,4-7        33%[20;7Hta[24;73H44,5-8        33%[20;8Hat[24;73H44,6-9        33%[20;9Hti[24;73H44,7-10       33%[20;10H[4mstatic[m[24;73H44,8-11       33%[20;11H[24;73H44,9-13       33%[20;13H m[24;73H44,10-14      33%[20;14Hma[24;73H44,11-15      33%[20;15Hat[24;73H44,12-16      33%[20;16Htc[24;73H44,13-17      33%[20;17Hch[24;73H44,14-18      33%[20;18Hhe[24;73H44,15-19      33%[20;19Hes[24;73H44,16-20      33%[20;20HsT[24;73H44,17-21      33%[20;21H[24;73H44,18-25      33%[20;25H[24;73H44,19-29      33%[20;29H *[24;73H44,20-30      33%[20;30H**[24;73H44,21-31      33%[20;31H*m[24;73H44,22-32      33%[20;32Hma[24;73H44,23-33      33%[20;33Hat[24;73H44,24-34      33%[20;34Htc[24;73H44,25-35      33%[20;35Hch[24;73H44,26-36      33%[20;36Hhe[24;73H44,27-37      33%[20;37Hes[24;73H44,28-38      33%[20;38HsP[24;73H44,29-39      33%[20;39HPP[24;73H44,30-40      33%[20;40HP;[24;73H44,31-41      33%[20;41H[24;1H[K[20;40H[24;73H44,30-40      33%[20;40H[24;73H44,29-39      33%[20;39H[24;73H44,28-38      33%[20;38H[24;73H44,27-37      33%[20;37H[24;73H44,26-36      33%[20;36HhsPP;[20;40H[K[20;36HhPP;[20;39H[K[20;36H[24;73H45,0-1        33%[21;1H[24;73H46,2-5        33%[22;5H[24;73H47,3-9        33%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = m_block_matchesP->m_nextP;[24;73H[K[24;73H48,4-13       35%[23;13H[1;23r[23;1H
[1;24r[23;8H } [1melse[0m {[24;73H[K[24;73H49,3-9        36%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = [4m0[m;[24;73H[K[24;73H50,4-13       38%[23;13H[1;23r[23;1H
[1;24r[23;8H }[24;73H[K[24;73H51,3-9        39%[23;9H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (!next_blockP) {[24;73H[K[24;73H52,3-9        40%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = (block_matchesT *) Xmalloc([1msizeof[0m(block_matchesT));[24;73H[K[24;73H53,4-13       42%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (!next_blockP) {[24;73H[K[24;73H54,4-13       43%[23;13H[1;23r[23;1H
[1;24r[23;16H outofmemory();[24;73H[K[24;73H55,5-17       45%[23;17H[1;23r[23;1H
[1;24r[23;12H }[24;73H[K[24;73H56,4-13       46%[23;13H[1;23r[23;1H
[1;24r[23;12H next_blockP->m_nextP = [4m0[m;[24;73H[K[24;73H57,4-13       47%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (m_block_matchesP) {[24;73H[K[24;73H58,4-13       49%[23;13H[1;23r[23;1H
[1;24r[23;16H m_block_matchesP->m_nextP = next_blockP;[24;73H[K[24;73H59,5-17       50%[23;17H[1;23r[23;1H
[1;24r[23;12H } [1melse[0m {[24;73H[K[24;73H60,4-13       52%[23;13H[1;23r[23;1H
[1;24r[23;16H m_head_block_matchesP = next_blockP;[24;73H[K[24;73H61,5-17       53%[23;17H[1;23r[23;1H
[1;24r[23;8H }   }[24;73H[K[24;73H62,3-9        54%[23;9H[1;23r[23;1H
[1;24r[23;8H m_block_matchesP = next_blockP;[24;73H[K[24;73H63,3-9        56%[23;9H[1;23r[23;1H
[1;24r[24;73H[K[24;73H64,0-1        57%[23;1H[1;23r[23;1H
[1;24r[23;8H m_matches_cacheP = m_block_matchesP->m_cache;[24;73H[K[24;73H65,3-9        59%[23;9H[1;23r[23;1H
[1;24r[23;8H m_matches_endP   = m_matches_cacheP + [4m8192[m;[24;73H[K[24;73H66,3-9        60%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H67,2-5        61%[23;5H[1;23r[23;1H
[1;24r[23;4H m_matches_cacheP->m_codeP = code2P;[24;73H[K[24;73H68,2-5        63%[23;5H[1;23r[23;1H
[1;24r[23;4H m_matches_cacheP->m_nextP = m_matchesPP[offset];[24;73H[K[24;73H69,2-5        64%[23;5H[1;23r[23;1H
[1;24r[23;4H m_matchesPP[offset]       = m_matches_cacheP++;[24;73H[K[24;73H70,2-5        66%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H71,1          67%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H72,0-1        69%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mint[m[24;73H[K[24;73H73,1          70%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::test([4mint[m offset, [4mvoid[m *code2P)[24;73H[K[24;73H74,1          71%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H75,1          73%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  matchesT[7C *matchesP, **matchesPP;[24;73H[K[24;73H76,2-5        74%[23;5H[1;23r[23;1H
[1;24r[24;73H[K[24;73H77,0-1        76%[23;1H[1;23r[23;1H

[1;24r[22;4H [1mfor[0m (matchesPP = m_matchesPP + offset; (matchesP = *matchesPP); matchesPP = &(matchesPP[23;1H->m_nextP)) {[24;73H[K[24;73H78,2-5        77%[22;5H[1;23r[23;1H
[1;24r[23;8H ++m_comparisons;[24;73H[K[24;73H79,3-9        79%[23;9H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (matchesP->m_codeP == code2P) {[24;73H[K[24;73H80,3-9        80%[23;9H[24;73H79,3-9        80%[22;9H[24;73H78,6-9        80%[20;9H[24;73H77,0-1        80%[19;1H[24;73H76,6-9        80%[18;9H[24;73H75,1          80%[17;1H[24;73H74,9          80%[16;9H[24;73H73,3          80%[15;3H[24;73H72,0-1        80%[14;1H[24;73H71,1          80%[13;1H[24;73H70,6-9        80%[12;9H[24;73H69,6-9        80%[11;9H[24;73H68,6-9        80%[10;9H[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H69,1          79%[11;23r[11;1HM[1;24r[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H69,1          79%[11;1H[24;73H69,2-5        79%[11;5H m[24;73H69,3-6        79%[11;6Hma[24;73H69,4-7        79%[11;7Hat[24;73H69,5-8        79%[11;8Htc[24;73H69,6-9        79%[11;9Hch[24;73H69,7-10       79%[11;10HhP[24;73H69,8-11       79%[11;11HPP[24;73H69,9-12       79%[11;12H[24;73H69,10-13      79%[11;13H[24;73H69,11-14      79%[11;14H[24;73H69,12-15      79%[11;15H[24;73H69,14-17      79%[11;17H[24;73H69,17-20      79%[11;20H[24;73H69,19-22      79%[11;22H[24;73H69,21-24      79%[11;24H[24;73H69,23-26      79%[11;26H[24;73H69,25-28      79%[11;28H[24;73H69,27-30      79%[11;30H[24;73H69,29-32      79%[11;32H[24;73H69,28-31      79%[11;31H =[24;73H69,29-32      79%[11;32H[24;73H69,30-33      79%[11;33H m[24;73H69,31-34      79%[11;34Hm_[24;73H69,32-35      79%[11;35H_m[24;73H69,33-36      79%[11;36Hma[24;73H69,34-37      79%[11;37Hat[24;73H69,35-38      79%[11;38Htc[24;73H69,36-39      79%[11;39Hch[24;73H69,37-40      79%[11;40Hhe[24;73H69,38-41      79%[11;41Hes[24;73H69,39-42      79%[11;42HsP[24;73H69,40-43      79%[11;43HPP[24;73H69,41-44      79%[11;44H[24;73H69,42-45      79%[11;45H +[24;73H69,43-46      79%[11;46H[24;73H69,44-47      79%[11;47H o[24;73H69,45-48      79%[11;48Hof[24;73H69,46-49      79%[11;49Hff[24;73H69,47-50      79%[11;50Hfs[24;73H69,48-51      79%[11;51Hse[24;73H69,49-52      79%[11;52Het[24;73H69,50-53      79%[11;53Ht;[24;73H69,51-54      79%[11;54H[24;1H[K[11;53H[24;73H69,50-53      79%[11;53H[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H70,1          78%[12;23r[12;1HM[1;24r[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H70,1          78%[12;1H[24;73H70,2-5        78%[12;5H X[24;73H70,3-6        78%[12;6HXc[24;73H70,4-7        78%[12;7Hch[24;73H70,5-8        78%[12;8Hhe[24;73H70,6-9        78%[12;9Hec[24;73H70,7-10       78%[12;10Hck[24;73H70,8-11       78%[12;11Hk(


[7m}[19;1H{[23;13H{[0m[24;73H70,9-12       78%[12;12H(m[24;73H70,10-13      78%[12;13Hm_[24;73H70,11-14      78%[12;14H_m[24;73H70,12-15      78%[12;15Hma[24;73H70,13-16      78%[12;16Hat[24;73H70,14-17      78%[12;17Htc[24;73H70,15-18      78%[12;18Hch[24;73H70,16-19      78%[12;19Hhe[24;73H70,17-20      78%[12;20Hes[24;73H70,18-21      78%[12;21HsP[24;73H70,19-22      78%[12;22HPP[24;73H70,20-23      78%[12;23HP,[24;73H70,21-24      78%[12;24H[24;73H70,22-25      78%[12;25H m[24;73H70,23-26      78%[12;26Hm_[24;73H70,24-27      78%[12;27H_m[24;73H70,25-28      78%[12;28Hma[24;73H70,26-29      78%[12;29Hat[24;73H70,27-30      78%[12;30Htc[24;73H70,28-31      78%[12;31Hch[24;73H70,29-32      78%[12;32Hhe[24;73H70,30-33      78%[12;33Hes[24;73H70,31-34      78%[12;34Hs_[24;73H70,32-35      78%[12;35H_l[24;73H70,33-36      78%[12;36Hlt[24;73H70,34-37      78%[12;37Hth[24;73H70,35-38      78%[12;38Hh,[24;73H70,36-39      78%[12;39H[24;73H70,37-40      78%[12;40H m[24;73H70,38-41      78%[12;41Hma[24;73H70,39-42      78%[12;42Hat[24;73H70,40-43      78%[12;43Htc[24;73H70,41-44      78%[12;44Hch[24;73H70,42-45      78%[12;45HhP[24;73H70,43-46      78%[12;46HPP[24;73H70,44-47      78%[12;47HP)


}[19;1H{[23;13H{[24;73H70,45-48      78%[12;48H);[24;73H70,46-49      78%[12;49H[24;1H[K[12;48H[24;73H70,45-48      78%[12;48H[24;73H71,2-5        78%[13;5H[24;73H72,2-5        78%[14;5H[24;73H71,2-5        78%[13;5H[24;73H71,3-6        78%[13;6H[24;73H71,4-7        78%[13;7H[24;73H71,5-8        78%[13;8H[24;73H71,6-9        78%[13;9H[24;73H71,7-10       78%[13;10H[24;73H71,8-11       78%[13;11H[24;73H71,9-12       78%[13;12H[24;73H71,10-13      78%[13;13H[24;73H71,11-14      78%[13;14H[24;73H71,12-15      78%[13;15H[24;73H71,13-16      78%[13;16H[24;73H71,14-17      78%[13;17H[24;73H71,15-18      78%[13;18H[24;73H71,16-19      78%[13;19H[24;73H71,17-20      78%[13;20H[24;73H71,18-21      78%[13;21H[24;73H71,19-22      78%[13;22H[24;73H71,20-23      78%[13;23H[24;73H71,21-24      78%[13;24H[24;73H71,22-25      78%[13;25H[24;73H71,23-26      78%[13;26H[24;73H71,24-27      78%[13;27H[24;73H71,25-28      78%[13;28H[24;73H71,26-29      78%[13;29H[24;73H71,27-30      78%[13;30H[24;73H71,28-31      78%[13;31H[24;73H71,29-32      78%[13;32H[24;73H71,30-33      78%[13;33H[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H71,30-33      78%[13;33H (m_matchesPP[offset];

[7m}[19;1H{[23;13H{[0m[24;73H71,31-34      78%[13;34H[24;1H[K[13;33H[24;73H71,30-33      78%[13;33H[24;73H71,31-34      78%[13;34H[24;73H71,30-33      78%[13;33H[24;1H[1m-- REPLACE --[0m[24;73H[K[24;73H71,30-33      78%[13;33H *

}[19;1H{[23;13H{[24;73H71,31-34      78%[13;34H[24;1H[K[13;33H[24;73H71,30-33      78%[13;33H[24;73H71,31-34      78%[13;34H*_matchesPP[offset];[13;53H[K[13;34H*matchesPP[offset];[13;52H[K[13;34H[24;73H71,32-35      78%[13;35H[24;73H71,33-36      78%[13;36H[24;73H71,34-37      78%[13;37H[24;73H71,35-38      78%[13;38H[24;73H71,36-39      78%[13;39H[24;73H71,37-40      78%[13;40H[24;73H71,38-41      78%[13;41H[24;73H71,39-42      78%[13;42H[24;73H71,40-43      78%[13;43HPoffset[7m][0m;[13;51H[K[13;43HPffset[7m][0m;[13;50H[K[13;43Hfset[7m][0m;[13;49H[K[13;43HPset[7m][0m;[13;48H[K[13;43HPet[7m][0m;[13;47H[K[13;43HPt[7m][0m;[13;46H[K[13;43HP[7m][0m;[13;45H[K[13;43HP;[13;44H[K[13;43H[24;73H72,2-5        78%[14;5H[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H72,2-5        78%[14;5H *m_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,3-6        78%[14;6Hmm_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,4-7        78%[14;7Hmam_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,5-8        78%[14;8Hatm_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,6-9        78%[14;9Htcm_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,7-10       78%[14;10Hchm_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,8-11       78%[14;11Hhem_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,9-12       78%[14;12Hesm_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,10-13      78%[14;13Hem_matchesPP[offset]       = m_matches_cacheP++;[14;59H[K[24;73H72,9-12       78%[14;12Hhm_matchesPP[offset]       = m_matches_cacheP++;[14;58H[K[24;73H72,8-11       78%[14;11HhPm_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,9-12       78%[14;12HPPm_matchesPP[offset]       = m_matches_cacheP++;[24;73H72,10-13      78%[14;13H[24;1H[K[14;12H[24;73H72,9-12       78%[14;12H[24;73H71,9-12       78%[13;12H[24;73H71,10-13      78%[13;13H[24;73H71,11-14      78%[13;14H[24;73H71,12-15      78%[13;15H[24;73H71,13-16      78%[13;16H[24;73H71,14-17      78%[13;17H[24;73H71,15-18      78%[13;18H[24;73H71,16-19      78%[13;19H[24;73H71,17-20      78%[13;20H[24;73H71,18-21      78%[13;21H[24;73H71,19-22      78%[13;22H[24;73H71,20-23      78%[13;23H[24;73H71,21-24      78%[13;24H[24;73H71,22-25      78%[13;25H[24;73H71,23-26      78%[13;26H[24;73H71,24-27      78%[13;27H[24;73H71,25-28      78%[13;28H[24;73H71,26-29      78%[13;29H[24;73H71,27-30      78%[13;30H[24;73H71,28-31      78%[13;31H[24;73H71,29-32      78%[13;32H[24;73H71,30-33      78%[13;33H[24;73H71,31-34      78%[13;34H[24;73H71,32-35      78%[13;35H[24;73H71,33-36      78%[13;36H[24;73H71,34-37      78%[13;37H[24;73H71,35-38      78%[13;38H[24;73H71,36-39      78%[13;39HhsPP;[13;43H[K[13;39HhPP;[13;42H[K[13;39H[24;73H72,2-5        78%[14;5H[24;73H72,3-6        78%[14;6H[24;73H72,4-7        78%[14;7H[24;73H72,5-8        78%[14;8H[24;73H72,6-9        78%[14;9H[24;73H72,7-10       78%[14;10H[24;73H72,8-11       78%[14;11H[24;73H72,9-12       78%[14;12H[24;73H72,10-13      78%[14;13HP_matchesPP[offset]       = m_matches_cacheP++;[14;59H[K[14;13HPmatchesPP[offset]       = m_matches_cacheP++;[14;58H[K[14;13HPatchesPP[offset]       = m_matches_cacheP++;[14;57H[K[14;13HPtchesPP[offset]       = m_matches_cacheP++;[14;56H[K[14;13HPchesPP[offset]       = m_matches_cacheP++;[14;55H[K[14;13HPhesPP[offset]       = m_matches_cacheP++;[14;54H[K[14;13HPesPP[offset]       = m_matches_cacheP++;[14;53H[K[14;13HPsPP[offset]       = m_matches_cacheP++;[14;52H[K[14;13HPPP[offset]       = m_matches_cacheP++;[14;51H[K[14;13HP[offset]       = m_matches_cacheP++;[14;50H[K[14;13HP[offset]       = m_matches_cacheP++;[14;49H[K[14;13HPoffset[7m][0m       = m_matches_cacheP++;[14;48H[K[14;13HPffset[7m][0m       = m_matches_cacheP++;[14;47H[K[14;13Hfset[7m][0m       = m_matches_cacheP++;[14;46H[K[14;13HPset[7m][0m       = m_matches_cacheP++;[14;45H[K[14;13HPet[7m][0m       = m_matches_cacheP++;[14;44H[K[14;13HPt[7m][0m       = m_matches_cacheP++;[14;43H[K[14;13HP[7m][0m       = m_matches_cacheP++;[14;42H[K[14;13HP       = m_matches_cacheP++;[14;41H[K[14;13H[24;1H[1m-- INSERT --[0m[24;73H[K[24;73H72,10-13      78%[14;13H        = m_matches_cacheP++;[24;73H72,11-14      78%[14;14H        = m_matches_cacheP++;[24;73H72,12-15      78%[14;15H        = m_matches_cacheP++;[24;73H72,13-16      78%[14;16H        = m_matches_cacheP++;[24;73H72,14-17      78%[14;17H        = m_matches_cacheP++;[24;73H72,15-18      78%[14;18H        = m_matches_cacheP++;[24;73H72,16-19      78%[14;19H        = m_matches_cacheP++;[24;73H72,17-20      78%[14;20H        = m_matches_cacheP++;[24;73H72,18-21      78%[14;21H        = m_matches_cacheP++;[24;73H72,19-22      78%[14;22H        = m_matches_cacheP++;[24;73H72,20-23      78%[14;23H        = m_matches_cacheP++;[24;73H72,21-24      78%[14;24H[24;1H[K[14;23H[24;73H72,20-23      78%[14;23H[24;73H[K[24;1H:w
:w
"match.cpp" 
"match.cpp" 96L, 2274C written[42C72,20-23      78%
"match.cpp" 96L, 2274C written[24;73H[K[24;73H72,20-23      78%[14;23H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ make
g++ -c -O2 -I. -Wall -DNDEBUG match.cpp
g++ -o acd -O2 -I. -Wall -DNDEBUG ../binutils-2.16.1/libiberty/xexit.o ../binutils-2.16.1/libiberty/xmalloc.o ../binutils-2.16.1/libiberty/xstrdup.o ../binutils-2.16.1/libiberty/safe-ctype.o ../binutils-2.16.1/libiberty/dyn-string.o ../binutils-2.16.1/libiberty/cp-demangle.o ../binutils-2.16.1/libiberty/cplus-dem.o  data.o object.o util.o xmalloc.o ta.o clics_output.o dwarf.o match.o detect.o file.o function.o fileref.o clone.o directory.o source.o label.o read_linux.o read_windows.o acd.o
ijdavis@swag:~/src/acd$ vi M*
[?1h=[1;24r[m[m[0m[H[J[24;1H"Makefile" 
"Makefile" 166L, 3830C[1;1H[4mBINUTILS  [m= ../binutils-2.16.1
[4mLIBIBERTY [m= [4m$(BINUTILS)[m/libiberty
[4mBINUTIL   [m= [4m$(BINUTILS)[m/binutils
[4mBIN       [m= ~/bin

[1m#CFLAGS  = -g -I. -Wall -DDWARF64
#CFLAGS  = -g -I. -Wall -DCORRELATE 
#CFLAGS  = -g -I. -Wall[0m
[4mCFLAGS   [m= -O2 -I. -Wall -DNDEBUG
[4mBIN     [m=~/bin

[4mDEMANGLE_SRC [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.c [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.c [1m\
 [0m[4m$(LIBIBERTY)[m/xstrdup.c [1m\
 [0m[4m$(LIBIBERTY)[m/safe-ctype.c [1m\
 [0m[4m$(LIBIBERTY)[m/dyn-string.c [1m\
 [0m[4m$(LIBIBERTY)[m/cp-demangle.c [1m\
 [0m[4m$(LIBIBERTY)[m/cplus-dem.c

[4mDEMANGLE_OBJECTS [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.o [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.o [1m\[0m[24;73H1,1           Top[1;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ 
ijdavis@swag:~/src/acd$ 
ijdavis@swag:~/src/acd$ 
ijdavis@swag:~/src/acd$ k[Kvi M*
[?1h=[1;24r[m[m[0m[H[J[24;1H"Makefile" 
"Makefile" 166L, 3830C[1;1H[4mBINUTILS  [m= ../binutils-2.16.1
[4mLIBIBERTY [m= [4m$(BINUTILS)[m/libiberty
[4mBINUTIL   [m= [4m$(BINUTILS)[m/binutils
[4mBIN       [m= ~/bin

[1m#CFLAGS  = -g -I. -Wall -DDWARF64
#CFLAGS  = -g -I. -Wall -DCORRELATE 
#CFLAGS  = -g -I. -Wall[0m
[4mCFLAGS   [m= -O2 -I. -Wall -DNDEBUG
[4mBIN     [m=~/bin

[4mDEMANGLE_SRC [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.c [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.c [1m\
 [0m[4m$(LIBIBERTY)[m/xstrdup.c [1m\
 [0m[4m$(LIBIBERTY)[m/safe-ctype.c [1m\
 [0m[4m$(LIBIBERTY)[m/dyn-string.c [1m\
 [0m[4m$(LIBIBERTY)[m/cp-demangle.c [1m\
 [0m[4m$(LIBIBERTY)[m/cplus-dem.c

[4mDEMANGLE_OBJECTS [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.o [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.o [1m\[0m[24;73H1,1           Top[1;1H[24;73H1,2           Top[1;2H[24;73H1,3           Top[1;3H[24;73H1,4           Top[1;4H[24;73H1,5           Top[1;5H[24;73H1,6           Top[1;6H[24;73H1,7           Top[1;7H[24;73H1,8           Top[1;8H[24;73H1,9           Top[1;9H[24;73H1,10          Top[1;10H[24;73H1,11          Top[1;11H[24;73H1,12          Top[1;12H[24;73H1,13          Top[1;13H[24;73H1,14          Top[1;14H[24;73H1,15          Top[1;15H[24;73H1,16          Top[1;16H[24;73H1,17          Top[1;17H[24;73H1,18          Top[1;18H[24;73H1,19          Top[1;19H[24;73H1,20          Top[1;20H[24;73H1,21          Top[1;21H[24;1H[K[24;1H:!
:!l
:!ls
:!ls 
:!ls .
:!ls ..
:!ls ..
:!ls ..[?1l>[24;1H
acd  asx.zip	      binutils-2.20.1	   binutils.zip  dexcd	   zlib-1.2.5
asx  binutils-2.16.1  binutils-2.20.1.tar  cppx		 echoargs  zlib-1.2.5.tar.tar
[?1h=[24;1H
[7mPress ENTER or type command to continue[m[m[0m[H[J[1;1H[4mBINUTILS  [m= ../binutils-2.16.1
[4mLIBIBERTY [m= [4m$(BINUTILS)[m/libiberty
[4mBINUTIL   [m= [4m$(BINUTILS)[m/binutils
[4mBIN       [m= ~/bin

[1m#CFLAGS  = -g -I. -Wall -DDWARF64
#CFLAGS  = -g -I. -Wall -DCORRELATE 
#CFLAGS  = -g -I. -Wall[0m
[4mCFLAGS   [m= -O2 -I. -Wall -DNDEBUG
[4mBIN     [m=~/bin

[4mDEMANGLE_SRC [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.c [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.c [1m\
 [0m[4m$(LIBIBERTY)[m/xstrdup.c [1m\
 [0m[4m$(LIBIBERTY)[m/safe-ctype.c [1m\
 [0m[4m$(LIBIBERTY)[m/dyn-string.c [1m\
 [0m[4m$(LIBIBERTY)[m/cp-demangle.c [1m\
 [0m[4m$(LIBIBERTY)[m/cplus-dem.c

[4mDEMANGLE_OBJECTS [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.o [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.o [1m\[0m[24;73H1,21          Top[1;21H[24;73H1,22          Top[1;22H[24;73H1,23          Top[1;23H[24;73H1,24          Top[1;24H[24;73H1,25          Top[1;25H[24;73H1,26          Top[1;26H[24;73H1,27          Top[1;27H[24;1H[1m-- REPLACE --[0m[24;73H[K[24;73H1,27          Top[1;27H.2[24;73H1,28          Top[1;28H20[24;73H1,29          Top[1;29H[24;1H[K[1;28H[24;73H1,28          Top[1;28H[24;73H[K[24;1H:w
:w
"Makefile" 
"Makefile" 166L, 3830C written[42C1,28          Top
"Makefile" 166L, 3830C written[24;73H[K[24;73H1,28          Top[1;28H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ make clean
/bin/rm -f *.o *.s acd
ijdavis@swag:~/src/acd$ make
g++ -c -O2 -I. -Wall -DNDEBUG data.cpp
g++ -c -O2 -I. -Wall -DNDEBUG object.cpp
g++ -c -O2 -I. -Wall -DNDEBUG util.cpp
g++ -c -O2 -I. -Wall -DNDEBUG xmalloc.cpp
g++ -c -O2 -I. -Wall -DNDEBUG ta.cpp
g++ -c -O2 -I. -Wall -DNDEBUG clics_output.cpp
g++ -c -O2 -I. -Wall -DNDEBUG dwarf.cpp
dwarf.cpp: In member function ‘void Cdwarf::load_locations(char*, char*, locationT**, int)’:
dwarf.cpp:2032: warning: ‘nameP’ may be used uninitialized in this function
dwarf.cpp: In member function ‘int Cdwarf::load_node(char**, char**, dwarf_nodeT**)’:
dwarf.cpp:1499: warning: ‘lth’ may be used uninitialized in this function
g++ -c -O2 -I. -Wall -DNDEBUG match.cpp
g++ -c -O2 -I. -Wall -DNDEBUG detect.cpp
g++ -c -O2 -I. -Wall -DNDEBUG file.cpp
g++ -c -O2 -I. -Wall -DNDEBUG  -I../binutils-2.20.1/include function.cpp
function.cpp: In member function ‘Cclone* Cfunction::locate_clone(const codeT*, const codeT*)’:
function.cpp:406: warning: deprecated conversion from string constant to ‘char*’
function.cpp: In member function ‘void Cfunction::update_names(int, locationT*, codeT*)’:
function.cpp:131: warning: ‘frame_offset’ may be used uninitialized in this function
function.cpp:129: warning: ‘numberP’ may be used uninitialized in this function
g++ -c -O2 -I. -Wall -DNDEBUG fileref.cpp
g++ -c -O2 -I. -Wall -DNDEBUG  clone.cpp
g++ -c -O2 -I. -Wall -DNDEBUG directory.cpp
g++ -c -O2 -I. -Wall -DNDEBUG source.cpp
g++ -c -O2 -I. -Wall -DNDEBUG label.cpp
g++ -c -O2 -I. -Wall -DNDEBUG read_linux.cpp
read_linux.cpp: In function ‘int process_command(int, char**)’:
read_linux.cpp:951: warning: deprecated conversion from string constant to ‘char*’
read_linux.cpp:953: warning: deprecated conversion from string constant to ‘char*’
read_linux.cpp:955: warning: deprecated conversion from string constant to ‘char*’
read_linux.cpp:957: warning: deprecated conversion from string constant to ‘char*’
g++ -c -O2 -I. -Wall -DNDEBUG read_windows.cpp
g++ -c -O2 -I. -Wall -DNDEBUG acd.cpp
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
acd.cpp:125: warning: deprecated conversion from string constant to ‘char*’
g++ -o acd -O2 -I. -Wall -DNDEBUG ../binutils-2.20.1/libiberty/xexit.o ../binutils-2.20.1/libiberty/xmalloc.o ../binutils-2.20.1/libiberty/xstrdup.o ../binutils-2.20.1/libiberty/safe-ctype.o ../binutils-2.20.1/libiberty/dyn-string.o ../binutils-2.20.1/libiberty/cp-demangle.o ../binutils-2.20.1/libiberty/cplus-dem.o  data.o object.o util.o xmalloc.o ta.o clics_output.o dwarf.o match.o detect.o file.o function.o fileref.o clone.o directory.o source.o label.o read_linux.o read_windows.o acd.o
ijdavis@swag:~/src/acd$ 
ijdavis@swag:~/src/acd$ vi util.h
[?1h=[1;24r[m[m[0m[H[J[24;1H"util.h" 
"util.h" 35L, 812C[1;1H[4m#define VERSION "1.0.11"

#define HTML_HEADER \
"<html>[m[1m\n[0m[4m" \
"<style>[m[1m\n[0m[4m" \
"body{background-color:#e0ffff; font-family: Verdana, Arial,sans-serif; font-size:10pt; coo[7;1Hlor:#8b0000}[m[1m\n[0m[4m" \
"A{color:#000066; text-decoration:none}[m[1m\n[0m[4m" \
"A:hover{color:blue}[m[1m\n[0m[4m" \
"A:visited:{color:#000066}[m[1m\n[0m[4m" \
"</style>[m[1m\n[0m[4m"

#ifndef SSIZE_MAX
#define SSIZE_MAX 0x7FFFFFFF
#endif

void[m error_exit([4mint[m code);

[4mextern[m [4mchar[m label_char[[4m256[m];
[4mextern[m [4mchar[m function_char[[4m256[m];

[4mvoid[m init_lookup_chars([4mvoid[m);
[4mchar[m *end_symbol_name([4mchar[m *P);[24;73H1,1           Top[1;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ pwd
/home/ijdavis/src/acd
ijdavis@swag:~/src/acd$ cd ..
ijdavis@swag:~/src$ ls
acd  asx.zip	      binutils-2.20.1	   binutils.zip  dexcd	   zlib-1.2.5
asx  binutils-2.16.1  binutils-2.20.1.tar  cppx		 echoargs  zlib-1.2.5.tar.tar
ijdavis@swag:~/src$ cd acd
ijdavis@swag:~/src/acd$ make
make: `acd' is up to date.
ijdavis@swag:~/src/acd$ make install
cp acd ~/bin/acd
chmod 755 ~/bin/acd
ijdavis@swag:~/src/acd$ make clean
/bin/rm -f *.o *.s acd
ijdavis@swag:~/src/acd$ ls
acd.cpp				      git_clones_60_bauhaus.clics  read_assembler.h
acd.sln				      git-clones69		   read_linux.cpp
acd.vcproj			      git-data30.h		   README
acd.vcproj.GENEVA.Administrator.user  git-data60.h		   read_windows.cpp
a.out				      git-data69.h		   run
clics_output.cpp		      git-rcf30.h		   run1
clics_output.h			      git-rcf60.h		   run2
clone.cpp			      history.acd		   run2a
clone.h				      history.git		   run2b
code.h				      history.git.1		   runa
data.c.old			      history.junk		   scsi
data.cpp			      history.linux		   scsi1
data.h				      history.linux1		   scsi2
detect.cpp			      in-progress		   scsi.history
detect.h			      junk			   source.cpp
directory.cpp			      junk1			   source.h
directory.h			      junk2			   stringcache.cpp
dwarf.cpp			      junk2b			   stringcache.h
dwarf.h				      label.cpp			   ta.cpp
file.cpp			      label.h			   ta.h
file.h				      location.h		   test.cpp
fileref.cpp			      Makefile			   typescript
fileref.h			      match1.cpp		   util.cpp
function.cpp			      match1.h			   util.h
function.h			      match.cpp			   xmalloc.cpp
git-clones30			      match.h			   xmalloc.h
git_clones_30_bauhaus.clics	      object.cpp
git-clones60			      object.h
ijdavis@swag:~/src/acd$ vi junk*
4 files to edit
[?1h=[1;24r[m[m[0m[H[J[24;1H"junk" 
"junk" [dos] 21L, 466C[1;1H5628: pushl $"merge "
5629: pushl command_buf+8
5630: call prefixcmp
5631: addl $16,%esp
5632: testl %eax,%eax
5633: jne L5633: -> 5757
5634: subl $8,%esp
5635: pushl $32
5636: pushl command_buf+8
5637: call strchr
5638: addl $16,%esp
5639: incl %eax
5640: movl %eax,from(%ebp)
5641: subl $12,%esp
5642: pushl $24
5643: call xmalloc
5644: addl $16,%esp
5645: movl %eax,n(%ebp)
5646: subl $12,%esp
5647: pushl from(%ebp)
5648: call lookup_branch
[1m~
~[0m[24;73H1,1           All[1;1H[24;1H[K[24;1H:n
:n
"junk1" 
"junk1" 1L, 3C[1;1H};[1;3H[K[2;2H[K[2;1H[1m~[0m[3;2H[K[3;1H[1m~[0m[4;2H[K[4;1H[1m~[0m[5;2H[K[5;1H[1m~[0m[6;2H[K[6;1H[1m~[0m[7;2H[K[7;1H[1m~[0m[8;2H[K[8;1H[1m~[0m[9;2H[K[9;1H[1m~[0m[10;2H[K[10;1H[1m~[0m[11;2H[K[11;1H[1m~[0m[12;2H[K[12;1H[1m~[0m[13;2H[K[13;1H[1m~[0m[14;2H[K[14;1H[1m~[0m[15;2H[K[15;1H[1m~[0m[16;2H[K[16;1H[1m~[0m[17;2H[K[17;1H[1m~[0m[18;2H[K[18;1H[1m~[0m[19;2H[K[19;1H[1m~[0m[20;2H[K[20;1H[1m~[0m[21;2H[K[21;1H[1m~[0m[24;73H1,1           All[1;1H[24;1H[K[24;1H:n
:n
"junk2" 
"junk2" 1L, 24C[1;1H    {0, 0, 0, 0, 0, 0, 0},[24;73H1,2-5         All[1;5H[24;1H[K[24;1H:m
:m
[7mE14: Invalid address[m[52C1,2-5         All[1;5H[24;1H[K[24;1H:n
:n
"junk2b" 
"junk2b" 4L, 241C[1;1Hmkdir /home/ijdavis/public_html/acd/git-clones60-$1
/bin/rm -r /home/ijdavis/public_html/acd/git-clones60-$1
echo Length $1
./acd -b -z -u 24 -l $1 -L $1 -k -S -T 1024 -h /home/ijdavis/public_html/acd/git-clones60--[5;1H$1 -t git.ta < history.git[24;73H1,1           All[1;1H[24;1H[K[24;1H:n
:n
[7mE165: Cannot go beyond last file[m[40C1,1           All[1;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ v[Krm junk*
ijdavis@swag:~/src/acd$ ls
acd.cpp				      git_clones_30_bauhaus.clics  read_assembler.h
acd.sln				      git-clones60		   read_linux.cpp
acd.vcproj			      git_clones_60_bauhaus.clics  README
acd.vcproj.GENEVA.Administrator.user  git-clones69		   read_windows.cpp
a.out				      git-data30.h		   run
clics_output.cpp		      git-data60.h		   run1
clics_output.h			      git-data69.h		   run2
clone.cpp			      git-rcf30.h		   run2a
clone.h				      git-rcf60.h		   run2b
code.h				      history.acd		   runa
data.c.old			      history.git		   scsi
data.cpp			      history.git.1		   scsi1
data.h				      history.junk		   scsi2
detect.cpp			      history.linux		   scsi.history
detect.h			      history.linux1		   source.cpp
directory.cpp			      in-progress		   source.h
directory.h			      label.cpp			   stringcache.cpp
dwarf.cpp			      label.h			   stringcache.h
dwarf.h				      location.h		   ta.cpp
file.cpp			      Makefile			   ta.h
file.h				      match1.cpp		   test.cpp
fileref.cpp			      match1.h			   typescript
fileref.h			      match.cpp			   util.cpp
function.cpp			      match.h			   util.h
function.h			      object.cpp		   xmalloc.cpp
git-clones30			      object.h			   xmalloc.h
ijdavis@swag:~/src/acd$ vi sci[Ksi*
4 files to edit
[?1h=[1;24r[m[m[0m[H[J[24;1H"scsi" 
"scsi" 2L, 172C[1;1H/bin/rm -r /home/ijdavis/public_html/scsi
./acd -v -u 256 -l 48 -L 48 -k -S -M -T 2048 -h /home/ijdavis/public_html/scsi -G clicks_ss[3;1Hrc.txt -g clicks_asm.txt < scsi.history
[1m~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~[0m[24;73H1,1           All[1;1H[24;1H[K[24;1H:n
:n
"scsi1" 
"scsi1" 2L, 128C[2;7H-u 0 -l 24 -L 24 -k -S -M -T 0 -h /home/ijdavis/public_html/scsi < scsi.history[2;86H[K[3;2H[K[3;1H[1m~[0m[24;73H1,1           All[1;1H[24;1H[K[24;1H:n
:n
"scsi2" 
"scsi2" 2L, 149C[2;7H-v -u 0 -l 24 -L 24 -k -S -M -T 0 -h /home/ijdavis/public_html/scsi -G clicks_src.txx[3;1Ht < scsi.history[24;73H1,1           All[1;1H[24;1H[K[24;1H:n
:n
"scsi.history" 
"scsi.history" 2076L, 1856905C[1;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wundef" "-Wstrii[2;1Hct-prototypes" "-Wno-trigraphs" "-fno-strict-aliasing" "-fno-common" "-Werror-implicit-funn[3;1Hction-declaration" "-m64" "-mno-red-zone" "-mcmodel=kernel" "-funit-at-a-time" "-S" "-xc"  [4;1H"/dev/null" "-o" ".20085.tmp"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-S" "-xc" "-c" "-O0" "-mm[6;1Hcmodel=kernel" "-fstack-protector" "-" "-o" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-S" "-xc" "-c" "-O0" "-mm[8;1Hcmodel=kernel" "-fstack-protector" "-" "-o" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-D__ASSEMBLY__" "-m64" ""[10;1H-c" "-xassembler" "-o" ".20105.tmp" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-D__ASSEMBLY__" "-m64" ""[12;1H-c" "-xassembler" "-o" ".20113.tmp" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wundef" "-Wstrii[14;1Hct-prototypes" "-Wno-trigraphs" "-fno-strict-aliasing" "-fno-common" "-Werror-implicit-funn[15;1Hction-declaration" "-m64" "-mno-red-zone" "-mcmodel=kernel" "-maccumulate-outgoing-args" ""[16;1H-DCONFIG_AS_CFI_SIGNAL_FRAME=1" "-pipe" "-Wno-sign-compare" "-fno-asynchronous-unwind-tabll[17;1Hes" "-mno-sse" "-mno-mmx" "-mno-sse2" "-mno-3dnow" "-S" "-xc" "/dev/null" "-o" ".20121.tmpp[18;1H"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wp,-MD,scripts/basic/.ff[20;1Hixdep.d" "-Wall" "-Wstrict-prototypes" "-O2" "-fomit-frame-pointer" "-o" "scripts/basic/fii[21;1Hxdep" "scripts/basic/fixdep.c"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wp,-MD,scripts/basic/.dd[23;1Hocproc.d" "-Wall" "-Wstrict-prototypes" "-O2" "-fomit-frame-pointer" "-o" "scripts/basic/d[22;2H[K[22;1H[1m@[0m[23;2H[K[23;1H[1m@[0m[24;73H1,1           Top[1;1H[24;73H2,1           Top[5;1H[24;73H3,1           Top[7;1H[24;73H4,1           Top[9;1H[24;73H5,1           Top[11;1H[24;73H6,1           Top[13;1H[24;73H7,1           Top[19;1H[1;23r[23;1H



[1;24r[18;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wp,-MD,scripts/basic/.dd[19;1Hocproc.d" "-Wall" "-Wstrict-prototypes" "-O2" "-fomit-frame-pointer" "-o" "scripts/basic/dd[20;1Hocproc" "scripts/basic/docproc.c"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[22;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototy[23;2H[K[23;1H[1m@[0m[24;1H[K[24;73H8,1            0%[18;1H[24;73H9,1            0%[21;1H[1;23r[23;1H

[1;24r[21;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[22;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototy[23;2H[K[23;1H[1m@[0m[24;73H[K[24;73H10,1           0%[21;1H[1;23r[23;1H

[1;24r[21;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[22;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototy[23;2H[K[23;1H[1m@[0m[24;73H[K[24;73H11,1           0%[21;1H[1;23r[23;1H

[1;24r[21;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[22;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wp,-MD,scripts/kconfig/[23;2H[K[23;1H[1m@[0m[24;73H[K[24;73H12,1           0%[21;1H[1;23r[23;1H







[1;24r[15;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wp,-MD,scripts/kconfig//[16;1H.conf.o.d" "-Wall" "-Wstrict-prototypes" "-O2" "-fomit-frame-pointer" "-I/usr/include/ncurr[17;1Hses" "-DCURSES_LOC=<ncurses.h>" "-DLOCALE" "-c" "-o" "scripts/kconfig/conf.o" "scripts/kcoo[18;1Hnfig/conf.c"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[20;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[22;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototy[23;2H[K[23;1H[1m@[0m[24;73H[K[24;73H13,1           0%[15;1H[24;73H14,1           0%[19;1H[24;73H15,1           0%[21;1H[1;23r[23;1H


[1;24r[20;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[21;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[23;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"[24;73H[K[24;73H16,1           0%[20;1H[24;73H17,1           0%[22;1H[1;23r[23;1H




[1;24r[19;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wp,-MD,scripts/kconfig//[20;1H.kxgettext.o.d" "-Wall" "-Wstrict-prototypes" "-O2" "-fomit-frame-pointer" "-I/usr/includee[21;1H/ncurses" "-DCURSES_LOC=<ncurses.h>" "-DLOCALE" "-c" "-o" "scripts/kconfig/kxgettext.o" "ss[22;1Hcripts/kconfig/kxgettext.c"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototy[23;2H[K[23;1H[1m@[0m[24;73H[K[24;73H18,1           0%[19;1H[1;23r[23;1H

[1;24r[21;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[22;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-print-file-name=libncur[23;2H[K[23;1H[1m@[0m[24;73H[K[24;73H19,1           0%[21;1H[1;23r[23;1H

[1;24r[21;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-print-file-name=libncurr[22;1Hsesw.so"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-I/usr/include/ncurses"[23;2H[K[23;1H[1m@[0m[24;73H[K[24;73H20,1           0%[21;1H[1;23r[23;1H

[1;24r[21;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-I/usr/include/ncurses"  [22;1H"-DCURSES_LOC=<ncurses.h>" "-DLOCALE" "-lncursesw" "-xc" "-" "-o" ".lxdialog.tmp"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototy[23;2H[K[23;1H[1m@[0m[24;73H[K[24;73H21,1           0%[21;1H[1;23r[23;1H



[1;24r[19;1H"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[20;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototyy[22;1Hpes" "-O2" "-fomit-frame-pointer" "-xc" "-o" "/dev/null" "-"
"/home/ijdavis/home/w65wang/Linux/linux-2.6.26.6" "/usr/bin/gcc" "-Wall" "-Wstrict-prototy[23;2H[K[23;1H[1m@[0m[24;73H[K[24;73H22,1           0%[19;1H[24;73H23,1           0%[21;1H[24;73H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ rm [K[K[Kls scsi*
scsi  scsi1  scsi2  scsi.history
ijdavis@swag:~/src/acd$ rm scsi*
ijdavis@swag:~/src/acd$ ls
acd.cpp				      git-clones30		   object.cpp
acd.sln				      git_clones_30_bauhaus.clics  object.h
acd.vcproj			      git-clones60		   read_assembler.h
acd.vcproj.GENEVA.Administrator.user  git_clones_60_bauhaus.clics  read_linux.cpp
a.out				      git-clones69		   README
clics_output.cpp		      git-data30.h		   read_windows.cpp
clics_output.h			      git-data60.h		   run
clone.cpp			      git-data69.h		   run1
clone.h				      git-rcf30.h		   run2
code.h				      git-rcf60.h		   run2a
data.c.old			      history.acd		   run2b
data.cpp			      history.git		   runa
data.h				      history.git.1		   source.cpp
detect.cpp			      history.junk		   source.h
detect.h			      history.linux		   stringcache.cpp
directory.cpp			      history.linux1		   stringcache.h
directory.h			      in-progress		   ta.cpp
dwarf.cpp			      label.cpp			   ta.h
dwarf.h				      label.h			   test.cpp
file.cpp			      location.h		   typescript
file.h				      Makefile			   util.cpp
fileref.cpp			      match1.cpp		   util.h
fileref.h			      match1.h			   xmalloc.cpp
function.cpp			      match.cpp			   xmalloc.h
function.h			      match.h
ijdavis@swag:~/src/acd$ vi M*
[?1h=[1;24r[m[m[0m[H[J[24;1H"Makefile" 
"Makefile" 166L, 3830C[1;1H[4mBINUTILS  [m= ../binutils-2.20.1
[4mLIBIBERTY [m= [4m$(BINUTILS)[m/libiberty
[4mBINUTIL   [m= [4m$(BINUTILS)[m/binutils
[4mBIN       [m= ~/bin

[1m#CFLAGS  = -g -I. -Wall -DDWARF64
#CFLAGS  = -g -I. -Wall -DCORRELATE 
#CFLAGS  = -g -I. -Wall[0m
[4mCFLAGS   [m= -O2 -I. -Wall -DNDEBUG
[4mBIN     [m=~/bin

[4mDEMANGLE_SRC [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.c [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.c [1m\
 [0m[4m$(LIBIBERTY)[m/xstrdup.c [1m\
 [0m[4m$(LIBIBERTY)[m/safe-ctype.c [1m\
 [0m[4m$(LIBIBERTY)[m/dyn-string.c [1m\
 [0m[4m$(LIBIBERTY)[m/cp-demangle.c [1m\
 [0m[4m$(LIBIBERTY)[m/cplus-dem.c

[4mDEMANGLE_OBJECTS [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.o [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.o [1m\[0m[24;73H1,1           Top[1;1H[24;1H[K[24;1H/a
/at
/atc
/atch
/atch
/atc[24;5H[K[24;1H/atc
/at[24;4H[K[24;1H/at
/a[24;3H[K[24;1H/a
/[24;2H[K[24;1H/m
/ma
/mat
/matc
/match
/match1
/match1
/match1
[m[m[0m[H[J[1;1H[4m    g++ -c $(CFLAGS) fileref.cpp

source.o :[m source.cpp
[4m    g++ -c $(CFLAGS) source.cpp

directory.o :[m directory.cpp
[4m    g++ -c $(CFLAGS) directory.cpp

match.o :[m match.cpp
[4m    g++ -c $(CFLAGS) match.cpp

match1.o :[m match1.cpp
[4m    g++ -c $(CFLAGS) match1.cpp

detect.o :[m detect.cpp
[4m    g++ -c $(CFLAGS) detect.cpp

dwarf.o :[m dwarf.cpp
[4m    g++ -c $(CFLAGS) dwarf.cpp

util.o :[m util.cpp
[4m    g++ -c $(CFLAGS) util.cpp[m[24;73H79,1          46%[12;1H[24;1H/match1[24;73H[K[24;1H[72C79,12         46%[12;12H[24;1H/match1[24;73H[K[24;1H[72C80,19-22      46%[13;22H[24;1H/match1[24;73H[K[24;1H[7msearch hit BOTTOM, continuing at TOP[m[36C79,1          46%
[7msearch hit BOTTOM, continuing at TOP[m[24;73H[K[24;73H79,1          46%[12;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ vi match1.cpp
[?1h=[1;24r[m[m[0m[H[J[24;1H"match1.cpp" 
"match1.cpp" 102L, 2369C[1;1H[4m#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif

#include <assert.h>
#include <string.h>

#include "object.h"
#include "xmalloc.h"
#include "match1.h"


int[m[16C Cmatch::m_matches_lth = [4m0[m;
matchesT *[9C Cmatch::m_hash[[4m1[m<<[4m16[m] = {[4m0[m};
[4munsigned[m [4mshort[m      Cmatch::m_next[[4m1[m<<[4m16[m] = {[4m0[m};
[4munsigned[m [4mshort[m      Cmatch::m_first       = [4m0[m;

block_matchesT *    Cmatch::m_head_block_matchesP = [4m0[m;
block_matchesT *    Cmatch::m_block_matchesP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_cacheP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_endP[7C = [4m0[m;
[4mlong[m [4mlong[m[10C Cmatch::m_comparisons[8C = [4m0[m;[24;73H1,1           Top[1;1H[24;73H2,1           Top[2;1H[24;73H3,1           Top[3;1H[24;73H4,0-1         Top[4;1H[24;73H5,1           Top[5;1H[24;73H6,1           Top[6;1H[24;73H7,0-1         Top[7;1H[24;73H8,1           Top[8;1H[24;73H9,1           Top[9;1H[24;73H10,1          Top[10;1H[24;73H11,0-1        Top[11;1H[24;73H12,0-1        Top[12;1H[24;73H13,1          Top[13;1H[24;73H14,1          Top[14;1H[24;73H15,1          Top[15;1H[24;73H16,1          Top[16;1H[24;73H17,0-1        Top[17;1H[24;73H18,1          Top[18;1H[24;73H19,1          Top[19;1H[24;73H20,1          Top[20;1H[24;73H21,1          Top[21;1H[24;73H22,1          Top[22;1H[24;73H23,0-1        Top[23;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m  g_max_function_lth;[24;1H[K[24;73H24,1           1%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H25,0-1         2%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H26,1           3%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::init([4mvoid[m)[24;73H[K[24;73H27,1           5%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H28,1           6%[23;1H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H29,1           7%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H30,0-1         8%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H31,1          10%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::setup([4mint[m lth)[24;73H[K[24;73H32,1          11%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H33,1          12%[23;1H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H34,1          13%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H35,3-12       15%[23;12H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H36,1          16%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::add([4mint[m offset, [4mvoid[m *code2P)[24;73H[K[24;73H37,1          17%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H38,1          18%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  block_matchesT  *next_blockP;[24;73H[K[24;73H39,2-5        20%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4munsigned[m [4mshort[m  hash;[24;73H[K[24;73H40,2-5        21%[23;5H[1;23r[23;1H
[1;24r[24;73H[K[24;73H41,0-1        22%[23;1H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (m_matches_cacheP == m_matches_endP) {[24;73H[K[24;73H42,2-5        24%[23;5H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (m_block_matchesP) {[24;73H[K[24;73H43,3-9        25%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = m_block_matchesP->m_nextP;[24;73H[K[24;73H44,4-13       26%[23;13H[1;23r[23;1H
[1;24r[23;8H } [1melse[0m {[24;73H[K[24;73H45,3-9        27%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = [4m0[m;[24;73H[K[24;73H46,4-13       29%[23;13H[1;23r[23;1H
[1;24r[23;8H }[24;73H[K[24;73H47,3-9        30%[23;9H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (!next_blockP) {[24;73H[K[24;73H48,3-9        31%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = (block_matchesT *) Xmalloc([1msizeof[0m(block_matchesT));[24;73H[K[24;73H49,4-13       32%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (!next_blockP) {[24;73H[K[24;73H50,4-13       34%[23;13H[1;23r[23;1H
[1;24r[23;16H outofmemory();[24;73H[K[24;73H51,5-17       35%[23;17H[1;23r[23;1H
[1;24r[23;12H }[24;73H[K[24;73H52,4-13       36%[23;13H[1;23r[23;1H
[1;24r[23;12H next_blockP->m_nextP = [4m0[m;[24;73H[K[24;73H53,4-13       37%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (m_block_matchesP) {[24;73H[K[24;73H54,4-13       39%[23;13H[1;23r[23;1H
[1;24r[23;16H m_block_matchesP->m_nextP = next_blockP;[24;73H[K[24;73H55,5-17       40%[23;17H[1;23r[23;1H
[1;24r[23;12H } [1melse[0m {[24;73H[K[24;73H56,4-13       41%[23;13H[1;23r[23;1H
[1;24r[23;16H m_head_block_matchesP = next_blockP;[24;73H[K[24;73H57,5-17       43%[23;17H[1;23r[23;1H
[1;24r[23;8H }   }[24;73H[K[24;73H58,3-9        44%[23;9H[1;23r[23;1H
[1;24r[23;8H m_block_matchesP = next_blockP;[24;73H[K[24;73H59,3-9        45%[23;9H[1;23r[23;1H
[1;24r[24;73H[K[24;73H60,0-1        46%[23;1H[1;23r[23;1H
[1;24r[23;8H m_matches_cacheP = m_block_matchesP->m_cache;[24;73H[K[24;73H61,3-9        48%[23;9H[1;23r[23;1H
[1;24r[23;8H m_matches_endP   = m_matches_cacheP + [4m8192[m;[24;73H[K[24;73H62,3-9        49%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H63,2-5        50%[23;5H[1;23r[23;1H

[1;24r[22;4H hash[22C = ([4munsigned[m [4mshort[m) ((([4munsigned[m [4mint[m) code2P) ^ ([4munsigned[m [4mintt[m[23;1H) offset);[24;73H[K[24;73H64,2-5        52%[22;5H[1;23r[23;1H
[1;24r[23;4H m_matches_cacheP->m_offset = offset;[24;73H[K[24;73H65,2-5        53%[23;5H[1;23r[23;1H
[1;24r[23;4H m_matches_cacheP->m_codeP  = code2P;[24;73H[K[24;73H66,2-5        55%[23;5H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (!(m_matches_cacheP->m_nextP  = m_hash[hash]) && hash) {[24;73H[K[24;73H67,2-5        56%[23;5H[1;23r[23;1H
[1;24r[23;8H m_next[hash] = m_first;[24;73H[K[24;73H68,3-9        57%[23;9H[1;23r[23;1H
[1;24r[23;8H m_first      = hash;[24;73H[K[24;73H69,3-9        58%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H70,2-5        60%[23;5H[1;23r[23;1H
[1;24r[23;4H m_hash[hash] = m_matches_cacheP++;[24;73H[K[24;73H71,2-5        61%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H72,1          62%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H73,0-1        63%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mint[m[24;73H[K[24;73H74,1          65%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::test([4mint[m offset, [4mvoid[m *code2P)[24;73H[K[24;73H75,1          66%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H76,1          67%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4munsigned[m [4mshort[m  hash;[24;73H[K[24;73H77,2-5        68%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  matchesT[7C *matchesP;[24;73H[K[24;73H78,2-5        70%[23;5H[1;23r[23;1H
[1;24r[24;73H[K[24;73H79,0-1        71%[23;1H[1;23r[23;1H
[1;24r[23;4H hash = ([4munsigned[m [4mshort[m) ((([4munsigned[m [4mint[m) code2P) ^ ([4munsigned[m [4mint[m) offset);[24;73H[K[24;73H80,2-5        72%[23;5H[1;23r[23;1H
[1;24r[24;73H[K[24;73H81,0-1        73%[23;1H[1;23r[23;1H
[1;24r[23;4H [1mfor[0m (matchesP = m_hash[hash]; matchesP; matchesP = matchesP->m_nextP) {[24;73H[K[24;73H82,2-5        75%[23;5H[1;23r[23;1H
[1;24r[23;8H ++m_comparisons;[24;73H[K[24;73H83,3-9        76%[23;9H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (matchesP->m_offset == offset && matchesP->m_codeP == code2P) {[24;73H[K[24;73H84,3-9        77%[23;9H[1;23r[23;1H
[1;24r[23;12H [1mreturn[0m([4m1[m);[24;73H[K[24;73H85,4-13       78%[23;13H[1;23r[23;1H

[1;24r[22;4H }   }
    [1mreturn[0m([4m0[m);[24;73H[K[24;73H86,2-5        81%[22;5H[24;73H87,2-5        81%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H88,1          82%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H89,0-1        83%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H90,1          84%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::clear([4mvoid[m)[24;73H[K[24;73H91,1          86%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H92,1          87%[23;1H[1;23r[23;1H
[1;24r[23;4H [1mif[0m ((m_block_matchesP = m_head_block_matchesP)) {[24;73H[K[24;73H93,2-5        88%[23;5H[1;23r[23;1H
[1;24r[23;8H m_matches_cacheP = m_block_matchesP->m_cache;[24;73H[K[24;73H94,3-9        89%[23;9H[1;23r[23;1H
[1;24r[23;8H m_matches_endP   = m_matches_cacheP + [4m8192[m;[24;73H[K[24;73H95,3-9        91%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H96,2-5        92%[23;5H[1;23r[23;1H
[1;24r[23;4H [1mfor[0m (; m_first; m_first = m_next[m_first]) {[24;73H[K[24;73H97,2-5        93%[23;5H[1;23r[23;1H
[1;24r[23;8H assert(m_hash[m_first]);[24;73H[K[24;73H98,3-9        94%[23;9H[1;23r[23;1H
[1;24r[23;8H m_hash[m_first] = [4m0[m;[24;73H[K[24;73H99,3-9        96%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H100,2-5       97%[23;5H[1;23r[23;1H
[1;24r[23;4H m_hash[m_first] = [4m0[m;[24;73H[K[24;73H101,2-5       98%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H102,1         Bot[23;1H[24;73H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ vi M*
[?1h=[1;24r[m[m[0m[H[J[24;1H"Makefile" 
"Makefile" 166L, 3830C[1;1H[4mBINUTILS  [m= ../binutils-2.20.1
[4mLIBIBERTY [m= [4m$(BINUTILS)[m/libiberty
[4mBINUTIL   [m= [4m$(BINUTILS)[m/binutils
[4mBIN       [m= ~/bin

[1m#CFLAGS  = -g -I. -Wall -DDWARF64
#CFLAGS  = -g -I. -Wall -DCORRELATE 
#CFLAGS  = -g -I. -Wall[0m
[4mCFLAGS   [m= -O2 -I. -Wall -DNDEBUG
[4mBIN     [m=~/bin

[4mDEMANGLE_SRC [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.c [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.c [1m\
 [0m[4m$(LIBIBERTY)[m/xstrdup.c [1m\
 [0m[4m$(LIBIBERTY)[m/safe-ctype.c [1m\
 [0m[4m$(LIBIBERTY)[m/dyn-string.c [1m\
 [0m[4m$(LIBIBERTY)[m/cp-demangle.c [1m\
 [0m[4m$(LIBIBERTY)[m/cplus-dem.c

[4mDEMANGLE_OBJECTS [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.o [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.o [1m\[0m[24;73H1,1           Top[1;1H[24;1H[K[24;1H/m
/ma
/mat
/matc
/match
/match1
/match1
/match1
[m[m[0m[H[J[1;1H[4m    g++ -c $(CFLAGS) fileref.cpp

source.o :[m source.cpp
[4m    g++ -c $(CFLAGS) source.cpp

directory.o :[m directory.cpp
[4m    g++ -c $(CFLAGS) directory.cpp

match.o :[m match.cpp
[4m    g++ -c $(CFLAGS) match.cpp

match1.o :[m match1.cpp
[4m    g++ -c $(CFLAGS) match1.cpp

detect.o :[m detect.cpp
[4m    g++ -c $(CFLAGS) detect.cpp

dwarf.o :[m dwarf.cpp
[4m    g++ -c $(CFLAGS) dwarf.cpp

util.o :[m util.cpp
[4m    g++ -c $(CFLAGS) util.cpp[m[24;73H79,1          46%[12;1H[24;1H/match1[24;73H[K[24;1H[72C79,12         46%[12;12H[24;1H/match1[24;73H[K[24;1H[72C80,19-22      46%[13;22H[24;1H/match1[24;73H[K[24;1H[7msearch hit BOTTOM, continuing at TOP[m[36C79,1          46%
[7msearch hit BOTTOM, continuing at TOP[m[24;73H[K[24;73H79,1          46%[12;1H[24;1H[K[24;1H/m
/ma
/mat
/matc
/match
/match
/match
[72C79,12         46%[12;12H[24;1H/match[24;73H[K[24;1H[72C80,19-22      46%[13;22H[24;1H/match[24;73H[K[24;1H[7msearch hit BOTTOM, continuing at TOP[m[m[0m[H[J[1;1H[1m [0m[4m$(LIBIBERTY)[m/xmalloc.o [1m\
 [0m[4m$(LIBIBERTY)[m/xstrdup.o [1m\
 [0m[4m$(LIBIBERTY)[m/safe-ctype.o [1m\
 [0m[4m$(LIBIBERTY)[m/dyn-string.o [1m\
 [0m[4m$(LIBIBERTY)[m/cp-demangle.o [1m\
 [0m[4m$(LIBIBERTY)[m/cplus-dem.o

[4mLIBRARIES [m= [1m\
 [0m[4m$(LIBIBERTY)[m/libiberty.a

[4mSOURCES [m= data.cpp object.cpp util.cpp xmalloc.cpp ta.cpp clics_output.cpp [1m\
          [0mdwarf.cpp match.cpp detect.cpp file.cpp function.cpp [1m\
          [0mfileref.cpp clone.cpp directory.cpp source.cpp [1m\
          [0mlabel.cpp read_linux.cpp read_windows.cpp acd.cpp

[4mOBJECTS [m= data.o object.o util.o xmalloc.o ta.o clics_output.o [1m\
          [0mdwarf.o match.o detect.o file.o function.o [1m\
          [0mfileref.o clone.o directory.o source.o [1m\
          [0mlabel.o read_linux.o read_windows.o acd.o

[4macd :[m [4m$(DEMANGLE_OBJECTS)[m [4m$(OBJECTS)
    g++ -o acd $(CFLAGS) $(DEMANGLE_OBJECTS) $(OBJECTS)[m[24;73H34,15-21      15%
[7msearch hit BOTTOM, continuing at TOP[m[24;73H[K[24;73H34,15-21      15%[12;21H[24;1H/match[24;7H[K[24;1H[72C39,13-19      15%[17;19H[24;1H/match[24;73H[K[24;1H[m[m[0m[H[J[1;1H[4m    g++ -c $(CFLAGS) file.cpp

fileref.o :[m fileref.cpp
[4m    g++ -c $(CFLAGS) fileref.cpp

source.o :[m source.cpp
[4m    g++ -c $(CFLAGS) source.cpp

directory.o :[m directory.cpp
[4m    g++ -c $(CFLAGS) directory.cpp

match.o :[m match.cpp
[4m    g++ -c $(CFLAGS) match.cpp

match1.o :[m match1.cpp
[4m    g++ -c $(CFLAGS) match1.cpp

detect.o :[m detect.cpp
[4m    g++ -c $(CFLAGS) detect.cpp

dwarf.o :[m dwarf.cpp
[4m    g++ -c $(CFLAGS) dwarf.cpp[m[24;73H76,1          44%[12;1H[24;1H/match[24;73H[K[24;1H[72C76,11         44%[12;11H[24;1H/match[24;73H[K[24;1H[72C77,19-22      44%[13;22H[24;73H78,0-1        44%[14;1H[24;1H[K[24;1H:!
:!
:[24;2H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ vi match1.cpp
[?1h=[1;24r[m[m[0m[H[J[24;1H"match1.cpp" 
"match1.cpp" 102L, 2369C[1;1H[4m#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif

#include <assert.h>
#include <string.h>

#include "object.h"
#include "xmalloc.h"
#include "match1.h"


int[m[16C Cmatch::m_matches_lth = [4m0[m;
matchesT *[9C Cmatch::m_hash[[4m1[m<<[4m16[m] = {[4m0[m};
[4munsigned[m [4mshort[m      Cmatch::m_next[[4m1[m<<[4m16[m] = {[4m0[m};
[4munsigned[m [4mshort[m      Cmatch::m_first       = [4m0[m;

block_matchesT *    Cmatch::m_head_block_matchesP = [4m0[m;
block_matchesT *    Cmatch::m_block_matchesP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_cacheP      = [4m0[m;
matchesT *[9C Cmatch::m_matches_endP[7C = [4m0[m;
[4mlong[m [4mlong[m[10C Cmatch::m_comparisons[8C = [4m0[m;[24;73H1,1           Top[1;1H[24;73H2,1           Top[2;1H[24;73H3,1           Top[3;1H[24;73H4,0-1         Top[4;1H[24;73H5,1           Top[5;1H[24;73H6,1           Top[6;1H[24;73H7,0-1         Top[7;1H[24;73H8,1           Top[8;1H[24;73H9,1           Top[9;1H[24;73H10,1          Top[10;1H[24;73H11,0-1        Top[11;1H[24;73H12,0-1        Top[12;1H[24;73H13,1          Top[13;1H[24;73H14,1          Top[14;1H[24;73H15,1          Top[15;1H[24;73H16,1          Top[16;1H[24;73H17,0-1        Top[17;1H[24;73H18,1          Top[18;1H[24;73H19,1          Top[19;1H[24;73H20,1          Top[20;1H[24;73H21,1          Top[21;1H[24;73H22,1          Top[22;1H[24;73H23,0-1        Top[23;1H[1;23r[23;1H
[1;24r[23;1H[4mextern[m [4mint[m  g_max_function_lth;[24;1H[K[24;73H24,1           1%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H25,0-1         2%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H26,1           3%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::init([4mvoid[m)[24;73H[K[24;73H27,1           5%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H28,1           6%[23;1H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H29,1           7%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H30,0-1         8%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H31,1          10%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::setup([4mint[m lth)[24;73H[K[24;73H32,1          11%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H33,1          12%[23;1H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H34,1          13%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H35,3-12       15%[23;12H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H36,1          16%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::add([4mint[m offset, [4mvoid[m *code2P)[24;73H[K[24;73H37,1          17%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H38,1          18%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  block_matchesT  *next_blockP;[24;73H[K[24;73H39,2-5        20%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4munsigned[m [4mshort[m  hash;[24;73H[K[24;73H40,2-5        21%[23;5H[1;23r[23;1H
[1;24r[24;73H[K[24;73H41,0-1        22%[23;1H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (m_matches_cacheP == m_matches_endP) {[24;73H[K[24;73H42,2-5        24%[23;5H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (m_block_matchesP) {[24;73H[K[24;73H43,3-9        25%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = m_block_matchesP->m_nextP;[24;73H[K[24;73H44,4-13       26%[23;13H[1;23r[23;1H
[1;24r[23;8H } [1melse[0m {[24;73H[K[24;73H45,3-9        27%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = [4m0[m;[24;73H[K[24;73H46,4-13       29%[23;13H[1;23r[23;1H
[1;24r[23;8H }[24;73H[K[24;73H47,3-9        30%[23;9H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (!next_blockP) {[24;73H[K[24;73H48,3-9        31%[23;9H[1;23r[23;1H
[1;24r[23;12H next_blockP = (block_matchesT *) Xmalloc([1msizeof[0m(block_matchesT));[24;73H[K[24;73H49,4-13       32%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (!next_blockP) {[24;73H[K[24;73H50,4-13       34%[23;13H[1;23r[23;1H
[1;24r[23;16H outofmemory();[24;73H[K[24;73H51,5-17       35%[23;17H[1;23r[23;1H
[1;24r[23;12H }[24;73H[K[24;73H52,4-13       36%[23;13H[1;23r[23;1H
[1;24r[23;12H next_blockP->m_nextP = [4m0[m;[24;73H[K[24;73H53,4-13       37%[23;13H[1;23r[23;1H
[1;24r[23;12H [1mif[0m (m_block_matchesP) {[24;73H[K[24;73H54,4-13       39%[23;13H[1;23r[23;1H
[1;24r[23;16H m_block_matchesP->m_nextP = next_blockP;[24;73H[K[24;73H55,5-17       40%[23;17H[1;23r[23;1H
[1;24r[23;12H } [1melse[0m {[24;73H[K[24;73H56,4-13       41%[23;13H[1;23r[23;1H
[1;24r[23;16H m_head_block_matchesP = next_blockP;[24;73H[K[24;73H57,5-17       43%[23;17H[1;23r[23;1H
[1;24r[23;8H }   }[24;73H[K[24;73H58,3-9        44%[23;9H[1;23r[23;1H
[1;24r[23;8H m_block_matchesP = next_blockP;[24;73H[K[24;73H59,3-9        45%[23;9H[1;23r[23;1H
[1;24r[24;73H[K[24;73H60,0-1        46%[23;1H[1;23r[23;1H
[1;24r[23;8H m_matches_cacheP = m_block_matchesP->m_cache;[24;73H[K[24;73H61,3-9        48%[23;9H[1;23r[23;1H
[1;24r[23;8H m_matches_endP   = m_matches_cacheP + [4m8192[m;[24;73H[K[24;73H62,3-9        49%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H63,2-5        50%[23;5H[1;23r[23;1H

[1;24r[22;4H hash[22C = ([4munsigned[m [4mshort[m) ((([4munsigned[m [4mint[m) code2P) ^ ([4munsigned[m [4mintt[m[23;1H) offset);[24;73H[K[24;73H64,2-5        52%[22;5H[1;23r[23;1H
[1;24r[23;4H m_matches_cacheP->m_offset = offset;[24;73H[K[24;73H65,2-5        53%[23;5H[1;23r[23;1H
[1;24r[23;4H m_matches_cacheP->m_codeP  = code2P;[24;73H[K[24;73H66,2-5        55%[23;5H[1;23r[23;1H
[1;24r[23;4H [1mif[0m (!(m_matches_cacheP->m_nextP  = m_hash[hash]) && hash) {[24;73H[K[24;73H67,2-5        56%[23;5H[1;23r[23;1H
[1;24r[23;8H m_next[hash] = m_first;[24;73H[K[24;73H68,3-9        57%[23;9H[1;23r[23;1H
[1;24r[23;8H m_first      = hash;[24;73H[K[24;73H69,3-9        58%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H70,2-5        60%[23;5H[1;23r[23;1H
[1;24r[23;4H m_hash[hash] = m_matches_cacheP++;[24;73H[K[24;73H71,2-5        61%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H72,1          62%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H73,0-1        63%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mint[m[24;73H[K[24;73H74,1          65%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::test([4mint[m offset, [4mvoid[m *code2P)[24;73H[K[24;73H75,1          66%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H76,1          67%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  [4munsigned[m [4mshort[m  hash;[24;73H[K[24;73H77,2-5        68%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mstatic[m  matchesT[7C *matchesP;[24;73H[K[24;73H78,2-5        70%[23;5H[1;23r[23;1H
[1;24r[24;73H[K[24;73H79,0-1        71%[23;1H[1;23r[23;1H
[1;24r[23;4H hash = ([4munsigned[m [4mshort[m) ((([4munsigned[m [4mint[m) code2P) ^ ([4munsigned[m [4mint[m) offset);[24;73H[K[24;73H80,2-5        72%[23;5H[1;23r[23;1H
[1;24r[24;73H[K[24;73H81,0-1        73%[23;1H[1;23r[23;1H
[1;24r[23;4H [1mfor[0m (matchesP = m_hash[hash]; matchesP; matchesP = matchesP->m_nextP) {[24;73H[K[24;73H82,2-5        75%[23;5H[1;23r[23;1H
[1;24r[23;8H ++m_comparisons;[24;73H[K[24;73H83,3-9        76%[23;9H[1;23r[23;1H
[1;24r[23;8H [1mif[0m (matchesP->m_offset == offset && matchesP->m_codeP == code2P) {[24;73H[K[24;73H84,3-9        77%[23;9H[1;23r[23;1H
[1;24r[23;12H [1mreturn[0m([4m1[m);[24;73H[K[24;73H85,4-13       78%[23;13H[1;23r[23;1H

[1;24r[22;4H }   }
    [1mreturn[0m([4m0[m);[24;73H[K[24;73H86,2-5        81%[22;5H[24;73H87,2-5        81%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H88,1          82%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H89,0-1        83%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mvoid[m[24;73H[K[24;73H90,1          84%[23;1H[1;23r[23;1H
[1;24r[23;1HCmatch::clear([4mvoid[m)[24;73H[K[24;73H91,1          86%[23;1H[1;23r[23;1H
[1;24r[23;1H{[24;73H[K[24;73H92,1          87%[23;1H[1;23r[23;1H
[1;24r[23;4H [1mif[0m ((m_block_matchesP = m_head_block_matchesP)) {[24;73H[K[24;73H93,2-5        88%[23;5H[1;23r[23;1H
[1;24r[23;8H m_matches_cacheP = m_block_matchesP->m_cache;[24;73H[K[24;73H94,3-9        89%[23;9H[1;23r[23;1H
[1;24r[23;8H m_matches_endP   = m_matches_cacheP + [4m8192[m;[24;73H[K[24;73H95,3-9        91%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H96,2-5        92%[23;5H[1;23r[23;1H
[1;24r[23;4H [1mfor[0m (; m_first; m_first = m_next[m_first]) {[24;73H[K[24;73H97,2-5        93%[23;5H[1;23r[23;1H
[1;24r[23;8H assert(m_hash[m_first]);[24;73H[K[24;73H98,3-9        94%[23;9H[1;23r[23;1H
[1;24r[23;8H m_hash[m_first] = [4m0[m;[24;73H[K[24;73H99,3-9        96%[23;9H[1;23r[23;1H
[1;24r[23;4H }[24;73H[K[24;73H100,2-5       97%[23;5H[1;23r[23;1H
[1;24r[23;4H m_hash[m_first] = [4m0[m;[24;73H[K[24;73H101,2-5       98%[23;5H[1;23r[23;1H
[1;24r[23;1H}[24;73H[K[24;73H102,1         Bot[23;1H[24;73H101,1-4       Bot[22;4H[24;73H100,1-4       Bot[21;4H[24;73H99,1-4        Bot[20;4H[24;73H98,1-4        Bot[19;4H[24;73H97,1-4        Bot[18;4H[24;73H96,1-4        Bot[17;4H[24;73H95,1-4        Bot[16;4H[24;73H94,1-4        Bot[15;4H[24;73H93,1-4        Bot[14;4H[24;73H92,1          Bot[13;1H[24;73H91,1          Bot[12;1H[24;73H90,1          Bot[11;1H[24;73H89,0-1        Bot[10;1H[24;73H88,1          Bot[9;1H[24;73H87,1-4        Bot[8;4H[24;73H86,1-4        Bot[7;4H[24;73H85,1-4        Bot[6;4H[24;73H84,1-4        Bot[5;4H[24;73H83,1-4        Bot[4;4H[24;73H82,1-4        Bot[3;4H[24;73H81,0-1        Bot[2;1H[24;73H80,1-4        Bot[1;4H[1;23r[1;1HM[1;24r[24;73H[K[24;73H79,0-1        98%[1;1H[1;23r[1;1HM[1;24r[1;4H [4mstatic[m  matchesT[7C *matchesP;[24;73H[K[24;73H78,1-4        97%[1;4H[1;23r[1;1HM[1;24r[1;4H [4mstatic[m  [4munsigned[m [4mshort[m  hash;[24;73H[K[24;73H77,1-4        96%[1;4H[1;23r[1;1HM[1;24r[1;1H{[24;73H[K[24;73H76,1          94%[1;1H[1;23r[1;1HM[1;24r[1;1HCmatch::test([4mint[m offset, [4mvoid[m *code2P)[24;73H[K[24;73H75,1          93%[1;1H[1;23r[1;1HM[1;24r[1;1H[4mint[m[24;73H[K[24;73H74,1          92%[1;1H[1;23r[1;1HM[1;24r[24;73H[K[24;73H73,0-1        91%[1;1H[1;23r[1;1HM[1;24r[1;1H}[24;73H[K[24;73H72,1          89%[1;1H[1;23r[1;1HM[1;24r[1;4H m_hash[hash] = m_matches_cacheP++;[24;73H[K[24;73H71,1-4        88%[1;4H[1;23r[1;1HM[1;24r[1;4H }[24;73H[K[24;73H70,1-4        87%[1;4H[1;23r[1;1HM[1;24r[1;8H m_first      = hash;[24;73H[K[24;73H69,1-4        86%[1;4H[1;23r[1;1HM[1;24r[1;8H m_next[hash] = m_first;[24;73H[K[24;73H68,1-4        84%[1;4H[1;23r[1;1HM[1;24r[1;4H [1mif[0m (!(m_matches_cacheP->m_nextP  = m_hash[hash]) && hash) {[24;73H[K[24;73H67,1-4        83%[1;4H[1;23r[1;1HM[1;24r[1;4H m_matches_cacheP->m_codeP  = code2P;[24;73H[K[24;73H66,1-4        82%[1;4H[1;23r[1;1HM[1;24r[1;4H m_matches_cacheP->m_offset = offset;[24;73H[K[24;73H65,1-4        81%[1;4H[1;23r[1;1HMM[1;24r[1;4H hash[22C = ([4munsigned[m [4mshort[m) ((([4munsigned[m [4mint[m) code2P) ^ ([4munsigned[m [4mintt[m[2;1H) offset);[24;73H[K[24;73H64,1-4        78%[1;4H[1;23r[1;1HM[1;24r[1;4H }[24;73H[K[24;73H63,1-4        77%[1;4H[1;23r[1;1HM[1;24r[1;8H m_matches_endP   = m_matches_cacheP + [4m8192[m;[24;73H[K[24;73H62,1-4        76%[1;4H[1;23r[1;1HM[1;24r[1;8H m_matches_cacheP = m_block_matchesP->m_cache;[24;73H[K[24;73H61,1-4        75%[1;4H[1;23r[1;1HM[1;24r[24;73H[K[24;73H60,0-1        73%[1;1H[1;23r[1;1HM[1;24r[1;8H m_block_matchesP = next_blockP;[24;73H[K[24;73H59,1-4        72%[1;4H[1;23r[1;1HM[1;24r[1;8H }   }[24;73H[K[24;73H58,1-4        71%[1;4H[1;23r[1;1HM[1;24r[1;16H m_head_block_matchesP = next_blockP;[24;73H[K[24;73H57,1-4        70%[1;4H[1;23r[1;1HM[1;24r[1;12H } [1melse[0m {[24;73H[K[24;73H56,1-4        68%[1;4H[24;73H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ vi M*
[?1h=[1;24r[m[m[0m[H[J[24;1H"Makefile" 
"Makefile" 166L, 3830C[1;1H[4mBINUTILS  [m= ../binutils-2.20.1
[4mLIBIBERTY [m= [4m$(BINUTILS)[m/libiberty
[4mBINUTIL   [m= [4m$(BINUTILS)[m/binutils
[4mBIN       [m= ~/bin

[1m#CFLAGS  = -g -I. -Wall -DDWARF64
#CFLAGS  = -g -I. -Wall -DCORRELATE 
#CFLAGS  = -g -I. -Wall[0m
[4mCFLAGS   [m= -O2 -I. -Wall -DNDEBUG
[4mBIN     [m=~/bin

[4mDEMANGLE_SRC [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.c [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.c [1m\
 [0m[4m$(LIBIBERTY)[m/xstrdup.c [1m\
 [0m[4m$(LIBIBERTY)[m/safe-ctype.c [1m\
 [0m[4m$(LIBIBERTY)[m/dyn-string.c [1m\
 [0m[4m$(LIBIBERTY)[m/cp-demangle.c [1m\
 [0m[4m$(LIBIBERTY)[m/cplus-dem.c

[4mDEMANGLE_OBJECTS [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.o [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.o [1m\[0m[24;73H1,1           Top[1;1H[24;1H[K[24;1H/m
/ma
/mat
/matc
/match
/match1
/match1.
/match1.c
/match1.cp
/match1.cpp
/match1.cpp
/match1.cpp
[m[m[0m[H[J[1;1H[4m    g++ -c $(CFLAGS) fileref.cpp

source.o :[m source.cpp
[4m    g++ -c $(CFLAGS) source.cpp

directory.o :[m directory.cpp
[4m    g++ -c $(CFLAGS) directory.cpp

match.o :[m match.cpp
[4m    g++ -c $(CFLAGS) match.cpp

match1.o :[m match1.cpp
[4m    g++ -c $(CFLAGS) match1.cpp

detect.o :[m detect.cpp
[4m    g++ -c $(CFLAGS) detect.cpp

dwarf.o :[m dwarf.cpp
[4m    g++ -c $(CFLAGS) dwarf.cpp

util.o :[m util.cpp
[4m    g++ -c $(CFLAGS) util.cpp[m[24;73H79,12         46%[12;12H[24;1H/match1.cpp[24;73H[K[24;1H[72C80,19-22      46%[13;22H[24;1H/match1.cpp[24;73H[K[24;1H[7msearch hit BOTTOM, continuing at TOP[m[36C79,12         46%
[7msearch hit BOTTOM, continuing at TOP[m[24;73H[K[24;73H79,12         46%[12;12H[24;1H/match1.cpp[24;12H[K[24;1H[72C80,19-22      46%[13;22H[24;73H79,21         46%[12;21H[12;23r[23;1H
[1;24r[12;1H    g++ -c [9C match1.cpp[23;1H[4mobject.o :[m object.cpp[24;1H[K[24;73H79,2-5        47%[12;5H[12;23r[23;1H
[1;24r[23;1H[4m    g++ -c $(CFLAGS) object.cpp[m[24;73H[K[24;73H79,0-1        47%[12;1H[12;23r[23;1H
[1;24r[24;73H[K[24;73H79,1          47%[12;1H[24;73H[K[24;1H:/
:/m
:/ma
:/mat
:/matc
:/match
:/match1
:/match1
[7msearch hit BOTTOM, continuing at TOP
E486: Pattern not found: match1[m[24;32H[K[24;73H79,1          47%[12;1H[24;1H[K[24;1H:w
:w
"Makefile" 
"Makefile" 163L, 3778C written[42C79,1          47%
"Makefile" 163L, 3778C written[24;73H[K[24;73H79,1          47%[12;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ ls match1*
match1.cpp  match1.h
ijdavis@swag:~/src/acd$ vi M*
[?1h=[1;24r[m[m[0m[H[J[24;1H"Makefile" 
"Makefile" 163L, 3778C[1;1H[4mBINUTILS  [m= ../binutils-2.20.1
[4mLIBIBERTY [m= [4m$(BINUTILS)[m/libiberty
[4mBINUTIL   [m= [4m$(BINUTILS)[m/binutils
[4mBIN       [m= ~/bin

[1m#CFLAGS  = -g -I. -Wall -DDWARF64
#CFLAGS  = -g -I. -Wall -DCORRELATE 
#CFLAGS  = -g -I. -Wall[0m
[4mCFLAGS   [m= -O2 -I. -Wall -DNDEBUG
[4mBIN     [m=~/bin

[4mDEMANGLE_SRC [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.c [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.c [1m\
 [0m[4m$(LIBIBERTY)[m/xstrdup.c [1m\
 [0m[4m$(LIBIBERTY)[m/safe-ctype.c [1m\
 [0m[4m$(LIBIBERTY)[m/dyn-string.c [1m\
 [0m[4m$(LIBIBERTY)[m/cp-demangle.c [1m\
 [0m[4m$(LIBIBERTY)[m/cplus-dem.c

[4mDEMANGLE_OBJECTS [m= [1m\
 [0m[4m$(LIBIBERTY)[m/xexit.o [1m\
 [0m[4m$(LIBIBERTY)[m/xmalloc.o [1m\[0m[24;73H1,1           Top[1;1H[24;1H[K[24;1H/m
/ma
/mat
/matc
/match
/match1
/match1
/match1
[7msearch hit BOTTOM, continuing at TOP
E486: Pattern not found: match1[m[24;32H[K[24;73H1,1           Top[1;1H[24;1H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd$ rm n[Kmatch1*
ijdavis@swag:~/src/acd$ ls
acd.cpp				      function.h		   object.cpp
acd.sln				      git-clones30		   object.h
acd.vcproj			      git_clones_30_bauhaus.clics  read_assembler.h
acd.vcproj.GENEVA.Administrator.user  git-clones60		   read_linux.cpp
a.out				      git_clones_60_bauhaus.clics  README
clics_output.cpp		      git-clones69		   read_windows.cpp
clics_output.h			      git-data30.h		   run
clone.cpp			      git-data60.h		   run1
clone.h				      git-data69.h		   run2
code.h				      git-rcf30.h		   run2a
data.c.old			      git-rcf60.h		   run2b
data.cpp			      history.acd		   runa
data.h				      history.git		   source.cpp
detect.cpp			      history.git.1		   source.h
detect.h			      history.junk		   stringcache.cpp
directory.cpp			      history.linux		   stringcache.h
directory.h			      history.linux1		   ta.cpp
dwarf.cpp			      in-progress		   ta.h
dwarf.h				      label.cpp			   test.cpp
file.cpp			      label.h			   typescript
file.h				      location.h		   util.cpp
fileref.cpp			      Makefile			   util.h
fileref.h			      match.cpp			   xmalloc.cpp
function.cpp			      match.h			   xmalloc.h
ijdavis@swag:~/src/acd$ cd in_[K-progress
ijdavis@swag:~/src/acd/in-progress$ ls
data.function.cpp  git-data30-function.h
ijdavis@swag:~/src/acd/in-progress$ vi data.function.cpp
[?1h=[1;24r[m[m[0m[H[J[24;1H"data.function.cpp" 
"data.function.cpp" 844L, 22024C[1;1H[1m/* This code exists purely for research purposes.  When the -z option is
 * enabled this code is invoked with the intent of comparing the behaviour
 * of ACD to some other clone detection tool.  It is of no general use
 * since the inputs are hard coded into it.  Only by changing this code
 * on a needs basis might it serve any useful purpose to the general
 * user.
 */[0m

[4m#include <assert.h>
#include <stdio.h>
#include <string.h>
#include <math.h>

#include "object.h"
#include "xmalloc.h"
#include "util.h"
#include "file.h"
#include "location.h"
#include "code.h"
#include "data.h"
#include "function.h"
#include "source.h"[m[24;73H1,1           Top[1;1H[24;73H2,2           Top[2;2H[24;73H3,2           Top[3;2H[24;73H4,2           Top[4;2H[24;73H5,2           Top[5;2H[24;73H6,2           Top[6;2H[24;73H7,2           Top[7;2H[24;73H8,0-1         Top[8;1H[24;73H9,1           Top[9;1H[24;73H10,1          Top[10;1H[24;73H11,1          Top[11;1H[24;73H12,1          Top[12;1H[24;73H13,0-1        Top[13;1H[24;73H14,1          Top[14;1H[24;73H15,1          Top[15;1H[24;73H16,1          Top[16;1H[24;73H17,1          Top[17;1H[24;73H18,1          Top[18;1H[24;73H19,1          Top[19;1H[24;73H20,1          Top[20;1H[24;73H21,1          Top[21;1H[24;73H22,1          Top[22;1H[24;73H23,0-1        Top[23;1H[1;23r[23;1H
[1;24r[23;1H[4m#ifdef CORRELATE[m[24;1H[K[24;73H24,1           0%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H25,0-1         0%[23;1H[1;23r[23;1H
[1;24r[23;1H[4m#define SOURCE_TYPE     0[m[24;73H[K[24;73H26,1           0%[23;1H[1;23r[23;1H
[1;24r[23;1H[4m#define ACD_TYPE        1[m[24;73H[K[24;73H27,1           0%[23;1H[1;23r[23;1H
[1;24r[23;1H[4m#define CLIC_TYPE       2[m[24;73H[K[24;73H28,1           0%[23;1H[1;23r[23;1H
[1;24r[23;1H[4m#define OUTSIDE_BUILD   4[m[24;73H[K[24;73H29,1           0%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H30,0-1         0%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mtypedef[m [4mstruct[m {[24;73H[K[24;73H31,1           0%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mint[m     id;[24;73H[K[24;73H32,2-5         1%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mint[m     lines;[24;73H[K[24;73H33,2-5         1%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mchar[m    *nameP;[24;73H[K[24;73H34,2-5         1%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mint[m     type;[24;73H[K[24;73H35,2-5         1%[23;5H[1;23r[23;1H
[1;24r[23;4H Csource *sourceP;[24;73H[K[24;73H36,2-5         1%[23;5H[1;23r[23;1H
[1;24r[23;1H} source_dataT;[24;73H[K[24;73H37,1           1%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H38,0-1         1%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mtypedef[m [4mstruct[m {[24;73H[K[24;73H39,1           1%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mint[m lineno;[24;73H[K[24;73H40,2-5         2%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mint[m unknown1;[24;73H[K[24;73H41,2-5         2%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mint[m unknown2;[24;73H[K[24;73H42,2-5         2%[23;5H[1;23r[23;1H
[1;24r[23;1H} line_dataT;[24;73H[K[24;73H43,1           2%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H44,0-1         2%[23;1H[1;23r[23;1H
[1;24r[23;1H[4mtypedef[m [4mstruct[m {[24;73H[K[24;73H45,1           2%[23;1H[1;23r[23;1H
[1;24r[23;4H [4mint[m[8C clone1_file;[24;73H[K[24;73H46,2-5         2%[23;5H[1;23r[23;1H
[1;24r[23;4H line_dataT  start_clone1;[24;73H[K[24;73H47,2-5         2%[23;5H[1;23r[23;1H
[1;24r[23;4H line_dataT  end_clone1;[24;73H[K[24;73H48,2-5         3%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mint[m[8C clone2_file;[24;73H[K[24;73H49,2-5         3%[23;5H[1;23r[23;1H
[1;24r[23;4H line_dataT  start_clone2;[24;73H[K[24;73H50,2-5         3%[23;5H[1;23r[23;1H
[1;24r[23;4H line_dataT  end_clone2;[24;73H[K[24;73H51,2-5         3%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mint[m[8C weight;[24;73H[K[24;73H52,2-5         3%[23;5H[1;23r[23;1H
[1;24r[23;4H [4mint[m[8C overlap;[24;73H[K[24;73H53,2-5         3%[23;5H[1;23r[23;1H
[1;24r[23;4H Cfunction   *function1P;[24;73H[K[24;73H54,2-5         3%[23;5H[1;23r[23;1H
[1;24r[23;4H Cfunction   *function2P;[24;73H[K[24;73H55,2-5         3%[23;5H[1;23r[23;1H
[1;24r[23;1H} clone_dataT;[24;73H[K[24;73H56,1           4%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H57,0-1         4%[23;1H[1;23r[23;1H
[1;24r[23;1H[4m#include "git-data30.h"[m[24;73H[K[24;73H58,1           4%[23;1H[1;23r[23;1H
[1;24r[23;1H[1m//#include "git-data60.h"[0m[24;73H[K[24;73H59,1           4%[23;1H[1;23r[23;1H
[1;24r[23;1H[1m//#include "git-data69.h"[0m[24;73H[K[24;73H60,1           4%[23;1H[1;23r[23;1H
[1;24r[24;73H[K[24;73H61,0-1         4%[23;1H[24;73H[K[24;1H:q
:q
[?1l>[24;1H[K[24;1Hijdavis@swag:~/src/acd/in-progress$ cd ..
ijdavis@swag:~/src/acd$ ls
acd.cpp				      function.h		   object.cpp
acd.sln				      git-clones30		   object.h
acd.vcproj			      git_clones_30_bauhaus.clics  read_assembler.h
acd.vcproj.GENEVA.Administrator.user  git-clones60		   read_linux.cpp
a.out				      git_clones_60_bauhaus.clics  README
clics_output.cpp		      git-clones69		   read_windows.cpp
clics_output.h			      git-data30.h		   run
clone.cpp			      git-data60.h		   run1
clone.h				      git-data69.h		   run2
code.h				      git-rcf30.h		   run2a
data.c.old			      git-rcf60.h		   run2b
data.cpp			      history.acd		   runa
data.h				      history.git		   source.cpp
detect.cpp			      history.git.1		   source.h
detect.h			      history.junk		   stringcache.cpp
directory.cpp			      history.linux		   stringcache.h
directory.h			      history.linux1		   ta.cpp
dwarf.cpp			      in-progress		   ta.h
dwarf.h				      label.cpp			   test.cpp
file.cpp			      label.h			   typescript
file.h				      location.h		   util.cpp
fileref.cpp			      Makefile			   util.h
fileref.h			      match.cpp			   xmalloc.cpp
function.cpp			      match.h			   xmalloc.h
ijdavis@swag:~/src/acd$ rm a.out
ijdavis@swag:~/src/acd$ ls *.old
data.c.old
ijdavis@swag:~/src/acd$ rm data.c.old
ijdavis@swag:~/src/acd$ ls
acd.cpp				      git_clones_30_bauhaus.clics  read_assembler.h
acd.sln				      git-clones60		   read_linux.cpp
acd.vcproj			      git_clones_60_bauhaus.clics  README
acd.vcproj.GENEVA.Administrator.user  git-clones69		   read_windows.cpp
clics_output.cpp		      git-data30.h		   run
clics_output.h			      git-data60.h		   run1
clone.cpp			      git-data69.h		   run2
clone.h				      git-rcf30.h		   run2a
code.h				      git-rcf60.h		   run2b
data.cpp			      history.acd		   runa
data.h				      history.git		   source.cpp
detect.cpp			      history.git.1		   source.h
detect.h			      history.junk		   stringcache.cpp
directory.cpp			      history.linux		   stringcache.h
directory.h			      history.linux1		   ta.cpp
dwa