On 2020-08-22 15:31, Brian Inglis wrote:
> On 2020-08-22 14:52, The Tick wrote:
>> On 8/22/2020 3:43 PM, The Tick wrote:
>>> I've been trying to find out how 'ls -l' returns the target of a symlink
>>> on windows:
>>>
>>> $ ls -l
>>> lrwxrwxrwx 1 user None     1 Aug 22 15:16 a -> b
>>> lrwxrwxrwx 1 user None     5 Aug 22 15:16 b -> final
>>> -rw-r--r-- 1 user None    29 Aug 22 15:16 final
> 
> First, read the docs, padawan, to understand the concepts and use, then the
> sources:
> 
> https://cygwin.com/cygwin-ug-net/using.html#pathnames-symlinks
> 
>>> My google searches have pointed me to the windows
>>> GetFinalPathNameByHandle() function but that does get me the
>>> intermediate links -- just the final path (which, of course, is what is
>>> implied by the name of the library call).
>>>
>>> I'm running Msys2 on win7x64. I've looked thru the coreutils for msys2
>>> and cannot find how it is done. That lead me to cygwin coreutils and,
>>> again, there does not seem to be anything specific there. Both rely on a
>>> working lstat().
>>>
>>> This leads me to believe that the guts of the lstat() for windows is
>>> implemented in the cygwin.dll.
> 
>> Sorry, I meant readlink()
> 
>>> I'm sure this is a no-brainer for those in the know, but could someone
>>> point me to where I could download the source for the cygwin dll so I
>>> could examine it? Thank you.
> 
> Check on the Cygwin home page left nav bar Contributing page link and the 
> links
> under those.
> 
> All Windows interfaces are implemented in the DLL, which also includes those
> parts of libc which use Windows interfaces, but the non-Windows and libc
> interfaces are mainly in newlib; all available online via git:
> 
> https://cygwin.com/git?p=newlib-cygwin.git;a=blob;f=winsup/utils/path.cc#l184

Sorry wrong path.cc and readlink function link^, correct link:

https://cygwin.com/git/?p=newlib-cygwin.git;a=blob;f=winsup/cygwin/path.cc#l3405

> and the git clone URLs are on the summary page:
> 
> https://cygwin.com/git/?p=newlib-cygwin.git;a=summary
> 
> All the core Cygwin components, apps, docs, and the web site itself, are also
> available under that git subsite.
> 
> You can also run the Cygwin Setup program (see home page) to download the 
> cygwin
> source package by checking the Src [X] checkbox beside the cygwin package 
> name.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in IEC units and prefixes, physical quantities in SI.]
--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to