##########################################################
#                #                                       #
#	 ManyPage    #    See habille.pl / Voir habille.pl   #
#                #                                       #
##########################################################
#
# Cette fonction permet la recursivite
#
###################
#
#  Copyright (C) 2000 Pierre Cordani - Pascal Vuylsteker
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier conformŽment
# aux dispositions de la Licence Publique GŽnŽrale GNU, telle que publiŽe par la Free Software
# Foundation ; version 2 de la licence, ou encore (ˆ votre choix) toute version ultŽrieure.
#
###################

sub reper
{local($Dir,*habillage_brut_a,*Objet_html_a,*Les_Langues_Suf,*Les_Langues_H,$Le_Modele,$option) = @_;

 if($Dir =~ /^$Rep_courant\/(.*?)\/(.*)$/)
  {
   $Dir = "$Rep_courant/$1";
   $Reste_Dir = $2;
  }
 $Rep_courant = $Dir;

 local(%Objet_html) = %Objet_html_a;
 local(%habillage_brut_b) = %habillage_brut_a;
 local(@Les_Langues_Suf_b) = @Les_Langues_Suf;
 local(%Les_Langues_H_b) = %Les_Langues_H;
 local(%Mes_Liens_b) = ();
 local(%Les_Liens_Of_Info) = ();
 opendir (F,$Dir);# or die "bye\n";
 local @directory2=readdir(F);
 local @directory = sort @directory2;
 local ($flag_habille) = 0;
 local($i);
 
 $profondeur++;
 
 $i = 0;
 
# On rentre dans un nouvel repertoire
# On dois chercher a lire le fichier Originel
# Ainsi que le fichier d'habillage

 if(-e $Dir."/".$Original && !($Dir =~ /.*\/$/))
  {
   #On traite le fichier Modele
   print "Je lis ".$Dir."/$Original\n";
   $sauve = $/;
   undef $/;
   open(MODELE,$Dir."/".$Original);
   $Le_Modele = <MODELE>;
   close (MODELE);
   $/ = $sauve;
  }
if(-e $Dir."/".$Habillage_file && !($Dir =~ /.*\/$/))
 {

# On traite le fichier d'habillage
 print "Je lis ".$Dir."/$Habillage_file\n";
  (*habillage_brut_b,*Les_Langues_Suf_b,*Les_Langues_H_b) = &lecture_habillage($Dir."/".$Habillage_file,{%habillage_brut_b});

# On genere l'habillage recursif
# Je dois envoyer une copie de la hash table pour ne pas risquer de
# Recevoir un objet vide que Perl voudra liberer

  *Objet_html = &dispersion_habillage({%habillage_brut_b});
  $flag_habille = 1;
 }
 
#La ligne en commentaire permettait de creer un objet compile
#ssi il existait un .obj dans la partie concernee
#
#Maintenant on cree l'objet compile a tout les coup 
# if(($option =~ /.*o.*/is) && ($flag_habille == 1))
 if(($option =~ /.*o.*/is))
 {
  &ecriture_obj({%habillage_brut},{%Objet_html},$Dir);
 }

 
 if(-e $Dir."/".$Liens)
  {
#   print "super\n";
   (*Mes_Liens_b,*Les_Liens_Of_Info) = &make_liens($Dir);
  }
# &debug_lien({%Mes_Liens_b});

 if($Reste_Dir ne "")
  {
   &transfert($Dir."/".$Reste_Dir,{%habillage_brut_b},{%Objet_html},{%Les_Liens_Of_Info},[@Les_Langues_Suf_b],{%Les_Langues_H_b},$Le_Modele,$option,copy_hash_of_hash[%Mes_Liens_b]);
  }
 else
  {
   while(($a = $directory[$i++]) ne '')
    {
#Tout les repertoires a ne pas prendre en compte
	 if($a ne '.' && $a ne '..' && $a ne 'OLD')
      {
	   local($new_path) = "$Dir/$a";
	   $new_path =~ s/\/+/\//isg;

	   &transfert($new_path,{%habillage_brut_b},{%Objet_html},{%Les_Liens_Of_Info},[@Les_Langues_Suf_b],{%Les_Langues_H_b},$Le_Modele,$option,copy_hash_of_hash[%Mes_Liens_b]);
      }
    }
  }
}

return 1;
