1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| for (tmp=pt->fichier[0],tmp1=((char **)param)[1];*tmp!=0 && *tmp1!=0 && *tmp1==*tmp;tmp++,tmp1++)
if (*tmp==SEPARATEUR)
tmp2=tmp;
if (*tmp1==0 && *tmp==0)
{ /* même répertoire */
fprintf(fichier," <perso>.%c%s</perso>\n",SEPARATEUR,pt->fichier[1]);
}
else if (tmp2!=NULL)
{
if (*tmp==SEPARATEUR && *tmp1==0)
{
fprintf(fichier," <perso>%s%c%s</perso>\n",tmp+1,SEPARATEUR,pt->fichier[1]);
}
else
{
if (*tmp==0 && *tmp1==SEPARATEUR)
{
ch[0]=0;
}
else
sprintf(ch,"..%c%s",SEPARATEUR,tmp2+1);
while(*tmp1!=0)
{ /* répertoire différent, mais pas dans l'arborescence de ((char **)param)[1] */
if (*tmp1==SEPARATEUR)
{
if (*ch==0)
sprintf(aff,"..%s",ch);
else
sprintf(aff,"..%c%s",SEPARATEUR,ch);
strcpy(ch,aff);
}
tmp1++;
}
fprintf(fichier," <perso>%s%c%s</perso>\n",ch,SEPARATEUR,pt->fichier[1]);
}
}
else /* reprendre à la racine, rien en commun */
fprintf(fichier," <perso>%s%c%s</perso>\n",pt->fichier[0],SEPARATEUR,pt->fichier |