# used to change the references of Sahih Bukhari to date used at
# USC-MSA hadith database
# i.e. given a reference like Sahih Bukhari 1.1, it determines that
# it is in book 1 and change there reference link to 
# <A HREF="http://www.usc.edu/dept/MSA/fundamentals/hadithsunnah/bukhari/055.sbt.html#004.055.578">Sahih Bukhari 4.578</A>
# The script is not too smart, so don't try and expect too much out of
# it. Used in conjunction with simplifyhadith
#
umask 122
for i in $*; do
gawk '
	BEGIN {
		bukhari_book[1]=1006
		bukhari_book[2]=1055
		bukhari_book[3]=1136
		bukhari_book[4]=1247
		bukhari_book[5]=1292
		bukhari_book[6]=1329
		bukhari_book[7]=1344
		bukhari_book[8]=1471
		bukhari_book[9]=1499
		bukhari_book[10]=1576
		bukhari_book[11]=1698
		bukhari_book[12]=1832

		bukhari_book[13]=2063
		bukhari_book[14]=2068
		bukhari_book[15]=2104
		bukhari_book[16]=2118
		bukhari_book[17]=2149
		bukhari_book[18]=2172
		bukhari_book[19]=2185
		bukhari_book[20]=2220
		bukhari_book[21]=2288
		bukhari_book[22]=2328
		bukhari_book[23]=2483
		bukhari_book[24]=2578
		bukhari_book[25]=2588
		bukhari_book[26]=2823

		bukhari_book[27]=3032
		bukhari_book[28]=3046
		bukhari_book[29]=3090
		bukhari_book[30]=3114
		bukhari_book[31]=3225
		bukhari_book[32]=3241
		bukhari_book[33]=3262
		bukhari_book[34]=3440
		bukhari_book[35]=3460
		bukhari_book[36]=3485
		bukhari_book[37]=3495
		bukhari_book[38]=3512
		bukhari_book[39]=3540
		bukhari_book[40]=3569
		bukhari_book[41]=3607
		bukhari_book[42]=3619
		bukhari_book[43]=3662
		bukhari_book[44]=3684
		bukhari_book[45]=3692
		bukhari_book[46]=3739
		bukhari_book[47]=3804
		bukhari_book[48]=3854
		bukhari_book[49]=3873
		bukhari_book[50]=3895

		bukhari_book[51]=4040
		bukhari_book[52]=4323
		bukhari_book[53]=4412
		bukhari_book[54]=4542
		bukhari_book[55]=4658
		bukhari_book[56]=4841

		bukhari_book[57]=5119
		bukhari_book[58]=5284
		bukhari_book[59]=5749

		bukhari_book[60]=6501
		bukhari_book[61]=6582

		bukhari_book[62]=7177
		bukhari_book[63]=7262
		bukhari_book[64]=7285
		bukhari_book[65]=7375
		bukhari_book[66]=7383
		bukhari_book[67]=7452
		bukhari_book[68]=7480
		bukhari_book[69]=7543
		bukhari_book[70]=7581
		bukhari_book[71]=7673
		bukhari_book[72]=7852

		bukhari_book[73]=8245
		bukhari_book[74]=8316
		bukhari_book[75]=8420
		bukhari_book[76]=8592
		bukhari_book[77]=8617
		bukhari_book[78]=8698
		bukhari_book[79]=8715
		bukhari_book[80]=8762
		bukhari_book[81]=8793
		bukhari_book[82]=8842

		bukhari_book[83]=9052
		bukhari_book[84]=9072
		bukhari_book[85]=9084
		bukhari_book[86]=9110
		bukhari_book[87]=9171
		bukhari_book[88]=9250
		bukhari_book[89]=9331
		bukhari_book[90]=9351
		bukhari_book[91]=9372
		bukhari_book[92]=9468
		bukhari_book[93]=9852
	}

	{
		if ($0 ~ "Sahih Bukhari [0-9]") 
		{
			if ( $0 ~ "html")
			{
				print $0
			}
			else
			{
				pos = index($0, "Sahih Bukhari ");
				front = substr($0, 1, pos-1);

				pos = pos+13;
				back = substr($0, pos+1, length($0)-pos+1);
				posdot = index(back, ".");
				vol = substr(back, 1, posdot)+0
				back = substr(back, posdot+1, length(back)-posdot+1);
				number = back+0
				numargs=split(back,rest,"");
				i = 1;
				while (("0" <= rest[i]) && (rest[i] <= "9")) i = i+1
				back= substr(back,i, length(back)-i+1);

				searchnumber = vol*1000 + number;
				book=1;
				while (book<=93 && searchnumber>bukhari_book[book]) book++;
				if (book==94)
				{
					print "<!--error: no such Sahih Bukhari reference-->"
					print $0
				}
				else
				{
					print front "<A HREF=\"http://www.usc.edu/dept/MSA/fundamentals/hadithsunnah/bukhari/" book ".sbt.html\#" vol "." book "." number "\">Sahih Bukhari " vol "." number "</A>" back
				}
			}
		}
		else
		{
			print $0
		}
	}
' $i > $i.tmp
mv $i.tmp $i
done
