Thanks for your help Rich, i have do my first idear, i record symlinks i have followed and don't process them more time.
// Le 12/10/2014
// * foreach - l'option suivre liens, enregistre ceux qui pointent vers des repertoires
// et ne seront traverses qu'une fois. Applique le pattern aux fichiers et
// repertoires avec l'option.
// * UIFsOp:: - rejete la copie quand le repertoire source est ou devient
// identique au repertoire destination. Changement de class de fiDst
// Fl_File_Input -> Fl_Output tant que je ne vois pas encore comment
// traiter correctement le changement ou renomage de destination.
// * File_Browser::monitor() - correction de l'evenement IN_MOVED_TO qui semble
// devoir etre traite plutot comme un IN_MODIFY que comme un IN_CREATE
// Le 13/10/2014
// * UIExplorer - ajout des callbacks du menu fichier.
// * TPath - gestion des tailles.
// * foreach - gestion des tailles.
// - Possibilite de stopper le traitement.
// - Suppression du fl_message au profit d'un appel client en cas de manque
// de memoire.
// * UIFind - possibilite d'annuler le traitement.
// * File_Browser::monitor() - IN_MOVED_TO se comporte comme un IN_MODIFY si le nom est
// trouve dans la liste sinon comme un IN_CREATE.
// Le 14/10/2014
// * UIFsOp - gestion des tailles et annulation.
// * UIFiles - gestion des tailles.
// * TAction::exec() - gestion des tailles.
// * UIExplorer - handle() - correction maj src_/dst_ avec evenement FL_PUSH
// - ajout callback fiN
// * foreach - fonctionnement de l'option FE_DPTRN changée. Quand l'option
// est active, les repertoires sont tous listés mais le callback
// n'est appelé que si le pattern correspond. Ce fonctionnement
// pose un probleme en cas de double passe (copie, deplacement). Un
// fichier ne peut pas etre copié si son arborescence n'est pas cree.
// En consequence, la premiere passe a toujours son callback et seule
// la deuxieme passe est omise.
!!! this version has no debug options but is a beta version. I've tried it a little and seems ok but be careful
ok, the update will be more spaced now. Perhaps if i find a big bug or make an important thing.
On the remove box: Enter said ok, Escape said no. Do not valid a button with enter even if it have the focus, use space.
in Fl_Browser:
ctrl + a : select all
ctrl + i : invert selection
ctrl + c : copy
ctrl + x : move
ctrl + enter : select/unselect
in UIExplorer:
tab bascule src_/dst_
ctrl + s : search
ctrl + e : edit
ctrl + n : new
ctrl + h : show/hide hidden files.
ctrl + d : show/hide directories
ctrl + f : show/hide files.
A very small update: you can open UIFind results with editor with a double click on the browser. I find this very useful...
// UIFsOp - ajout d'un compteur, l'appel a Fl::wait() ne se fait qu'une fois sur 16, on gagne grandement en vitesse tout en gardant une reponse d'annulation rapide.
UIFiles : correction mise a jour du browser (pattern non nul -> nul).
flmc6.fl inclu un debut de codage de copie asynchrone (aio). A la compilation, j'ai remarqué que cela necessitait une librairie en plus (libaio). Je laisse donc tomber pour envisager plutôt l'utilisation de pthread directement.
// Le 22/10/2014
// * UIFsOp - Ajout d'un compteur pour limiter les appels Fl::wait()
// * UIFiles - correction maj pattern non vide -> vide.
// - handle() les double clicks sur les scrollbars sont
// renvoyées vers elles.
// * TAction - Remplacement double fork() par gestionnaire de signaux.
// * UIExplorer - Remplacement system() par TAction. Il est maintenant
// possible d'avoir la même fonctionnalité que pour le fichier .mime
// editor %f ouvrira le fichier de src_ selectionné.
// Le 24/10/2014
// * UIExplorer - Separateur de redimension des deux browsers.
// - historique des commandes. (!!! pas de limite) (ou presque, le template est limité)
// * template de la classe conteneur.
// * UIFiles - tentative de gestion page up/page down pour un suivi de selection. Ca fonctionne quand on va vers le haut
// mais pas vers le bas
shell history: CTRL+UP/CTRL+DOWN