text: #
  #     This file is part of CasADi.
  #
  #     CasADi -- A symbolic framework for dynamic optimization.
  #     Copyright (C) 2010-2014 Joel Andersson, Joris Gillis, Moritz Diehl,
  #                             K.U. Leuven. All rights reserved.
  #     Copyright (C) 2011-2014 Greg Horn
  #
  #     CasADi is free software; you can redistribute it and/or
  #     modify it under the terms of the GNU Lesser General Public
  #     License as published by the Free Software Foundation; either
  #     version 3 of the License, or (at your option) any later version.
  #
  #     CasADi is distributed in the hope that it will be useful,
  #     but WITHOUT ANY WARRANTY; without even the implied warranty of
  #     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  #     Lesser General Public License for more details.
  #
  #     You should have received a copy of the GNU Lesser General Public
  #     License along with CasADi; if not, write to the Free Software
  #     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  #
  #
  
  # updates the copyright information for all .cs files
  # usage: call recursive_traversal, with the following parameters
  # parent directory, old copyright text content, new copyright text content
  
  import os
  
  excludedir = ["..\\Lib"]
  
  def update_source(filename, oldcopyright, copyright):
      utfstr = chr(0xef)+chr(0xbb)+chr(0xbf)
      fdata = file(filename,"r+").read()
      isUTF = False
      if (fdata.startswith(utfstr)):
          isUTF = True
          fdata = fdata[3:]
      if (oldcopyright != None):
          if (fdata.startswith(oldcopyright)):
              fdata = fdata[len(oldcopyright):]
      if not (fdata.startswith(copyright)):
          print "updating "+filename
          fdata = copyright + fdata
          if (isUTF):
              file(filename,"w").write(utfstr+fdata)
          else:
              file(filename,"w").write(fdata)
  
  def recursive_traversal(dir,  oldcopyright, copyright):
      global excludedir
      fns = os.listdir(dir)
      print "listing "+dir
      for fn in fns:
          fullfn = os.path.join(dir,fn)
          if (fullfn in excludedir):
              continue
          if (os.path.isdir(fullfn)):
              recursive_traversal(fullfn, oldcopyright, copyright)
          else:
              if (fullfn.endswith(".py") ):
                  update_source(fullfn, oldcopyright, copyright)
  
  
  oldcright = file("old_license_header_python.txt","r+").read()
  cright = file("license_header_python.txt","r+").read()
  recursive_traversal("..", oldcright, cright)
  exit()
  