#!/usr/bin/env ruby

fnmap = Hash.new     # Uebersetzung alter Index --> neuer Index
fndir = Hash.new     # Neuer Index --> Fussnotentext
footnote_number = 1  # aktuelle Fussnote, 0 wenn im Fussnotenbereich
File.open(ARGV[0]) do |file|
 while line = file.gets
   if line == "@footnote:\n"
     footnote_number = 0
   else
     if footnote_number == 0
       # Wir sind im Fussnoten-Bereich
       line.scan(/^(\[\d+\]) (.*)/) do |idx,text|
         fndir[fnmap[idx]] = text
         fnmap.delete(idx)  # wichtig fuer Memory-Verbrauch!
       end
     else
       # Wir sind im Text-Bereich
       line.gsub!(/\[\d+\]/) do |idx|
         if not fnmap.has_key?(idx)
           fnmap[idx] = "[#{footnote_number}]"
           footnote_number += 1
         end
         fnmap[idx]
       end
       print line
     end
   end
 end
 # Jetzt geben wir die Fussnoten aus
 print "\nFussnoten:\n"
 for i in 1..fndir.size
   k="[#{i}]"
   if fndir.has_key?(k)
     print "#{k} #{fndir[k]}\n"
   else
     print "#{k} <NOT AVAILABLE>\n"
   end
 end
end