wClipboard/posix: add directories to file list
wClipboard/posix: add directories to file list

text/uri-list contains only the files which were immediately selected by
the user. However, we need to enumerate *all* files and directories to
be pasted in CLIPRDR_FILELIST. Thus we need to walk through the
directories and add their content to the file list as well.

We use readdir() function to traverse the directory entries. It has more
sane interface than readdir_r(), but lacks (standardized) thread-safety
guarantees.  However, most C liraries guarantee that so we can use it.
There is no compile-time check because it cannot be made robust. You
deserve a crash here if you are using a C library developed by people
who cannot keep their unhealthy addiction to global state under control.

Note that recursive traversal is also a good opportunity to maintain
good remote names. We just need to concatenate the directory paths and
file names correctly.

However, this recursion has one caveat: it is not bounded, so if the
file system contains a loop then we will crash due to a stack overflow.
We could track symlink loops (and hardlinks too if we try hard) to avoid
the crash, but I think it's not a common thing to do so we can ignore
this possibility.

yurashek/FreeRDP,nfedera/FreeRDP,mfleisz/FreeRDP,ilammy/FreeRDP,Devolutions/FreeRDP,FreeRDP/FreeRDP,erbth/FreeRDP,ivan-83/FreeRDP,akallabeth/FreeRDP,akallabeth/FreeRDP,ondrejholy/FreeRDP,erbth/FreeRDP,awakecoding/FreeRDP,nfedera/FreeRDP,ilammy/FreeRDP,bmiklautz/FreeRDP,rjcorrig/FreeRDP,ivan-83/FreeRDP,ilammy/FreeRDP,bjcollins/FreeRDP,nfedera/FreeRDP,bjcollins/FreeRDP,rjcorrig/FreeRDP,erbth/FreeRDP,RangeeGmbH/FreeRDP,bjcollins/FreeRDP,rjcorrig/FreeRDP,cedrozor/FreeRDP,eledoux/FreeRDP,ivan-83/FreeRDP,awakecoding/FreeRDP,chipitsine/FreeRDP,mfleisz/FreeRDP,oshogbo/FreeRDP,Devolutions/FreeRDP,ondrejholy/FreeRDP,ilammy/FreeRDP,erbth/FreeRDP,RangeeGmbH/FreeRDP,eledoux/FreeRDP,akallabeth/FreeRDP,yurashek/FreeRDP,ondrejholy/FreeRDP,cedrozor/FreeRDP,Devolutions/FreeRDP,yurashek/FreeRDP,mfleisz/FreeRDP,bmiklautz/FreeRDP,chipitsine/FreeRDP,awakecoding/FreeRDP,FreeRDP/FreeRDP,nfedera/FreeRDP,chipitsine/FreeRDP,cloudbase/FreeRDP-dev,chipitsine/FreeRDP,bmiklautz/FreeRDP,cedrozor/FreeRDP,eledoux/FreeRDP,RangeeGmbH/FreeRDP,ivan-83/FreeRDP,oshogbo/FreeRDP,bjcollins/FreeRDP,cedrozor/FreeRDP,yurashek/FreeRDP,mfleisz/FreeRDP,nfedera/FreeRDP,awakecoding/FreeRDP,DavBfr/FreeRDP,ondrejholy/FreeRDP,awakecoding/FreeRDP,ivan-83/FreeRDP,FreeRDP/FreeRDP,oshogbo/FreeRDP,Devolutions/FreeRDP,eledoux/FreeRDP,ondrejholy/FreeRDP,nfedera/FreeRDP,mfleisz/FreeRDP,oshogbo/FreeRDP,mfleisz/FreeRDP,ilammy/FreeRDP,cedrozor/FreeRDP,erbth/FreeRDP,bmiklautz/FreeRDP,bmiklautz/FreeRDP,chipitsine/FreeRDP,ivan-83/FreeRDP,yurashek/FreeRDP,rjcorrig/FreeRDP,cedrozor/FreeRDP,Devolutions/FreeRDP,yurashek/FreeRDP,FreeRDP/FreeRDP,cloudbase/FreeRDP-dev,cloudbase/FreeRDP-dev,DavBfr/FreeRDP,rjcorrig/FreeRDP,FreeRDP/FreeRDP,FreeRDP/FreeRDP,cloudbase/FreeRDP-dev,oshogbo/FreeRDP,chipitsine/FreeRDP,DavBfr/FreeRDP,DavBfr/FreeRDP,rjcorrig/FreeRDP,cloudbase/FreeRDP-dev,awakecoding/FreeRDP,RangeeGmbH/FreeRDP,ivan-83/FreeRDP,RangeeGmbH/FreeRDP,oshogbo/FreeRDP,akallabeth/FreeRDP,RangeeGmbH/FreeRDP,oshogbo/FreeRDP,mfleisz/FreeRDP,cedrozor/FreeRDP,akallabeth/FreeRDP,bmiklautz/FreeRDP,DavBfr/FreeRDP,bjcollins/FreeRDP,ondrejholy/FreeRDP,oshogbo/FreeRDP,yurashek/FreeRDP,RangeeGmbH/FreeRDP,bjcollins/FreeRDP,yurashek/FreeRDP,akallabeth/FreeRDP,bjcollins/FreeRDP,DavBfr/FreeRDP,eledoux/FreeRDP,chipitsine/FreeRDP,Devolutions/FreeRDP,ivan-83/FreeRDP,DavBfr/FreeRDP,akallabeth/FreeRDP,ondrejholy/FreeRDP,bjcollins/FreeRDP,FreeRDP/FreeRDP,eledoux/FreeRDP,Devolutions/FreeRDP,awakecoding/FreeRDP,DavBfr/FreeRDP,nfedera/FreeRDP,cedrozor/FreeRDP,ilammy/FreeRDP,chipitsine/FreeRDP,erbth/FreeRDP,ilammy/FreeRDP,akallabeth/FreeRDP,bmiklautz/FreeRDP,rjcorrig/FreeRDP,Devolutions/FreeRDP,eledoux/FreeRDP,ilammy/FreeRDP,RangeeGmbH/FreeRDP,erbth/FreeRDP,bmiklautz/FreeRDP,cloudbase/FreeRDP-dev,awakecoding/FreeRDP,ondrejholy/FreeRDP,rjcorrig/FreeRDP,mfleisz/FreeRDP,cloudbase/FreeRDP-dev,erbth/FreeRDP,eledoux/FreeRDP,nfedera/FreeRDP,FreeRDP/FreeRDP