Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT cygwin DOT com Delivered-To: mailing list cygwin-developers AT cygwin DOT com Message-ID: <04f701c22399$5f15fc40$6132bc3e@BABEL> From: "Conrad Scott" To: Subject: symlink_info & suffix_scan Date: Thu, 4 Jul 2002 21:28:34 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 I don't fully understand what this code is doing but I've managed to convince myself that it's not doing the right thing :-) In path.cc, symlink_info::check() constructs a suffix_scan object and then calls the suffix_scan::next() method repeatedly. If you stat(2) a non-existent file *without a suffix* (e.g. ls -L nonexistent), the suffix_scan object gives the following results: path = nonexistent, lnk_match() = false path = nonexistent.exe, lnk_match() = false path = nonexistent.exe, lnk_match() = true path = nonexistent.exe.lnk, lnk_match() = true path = nonexistent.lnk, lnk_match() = true The issue is that it gives the path "nonexistent.exe" twice, once with and once without lnk_match() being true. AFAICT it should either give "nonexistent.exe" once (without lnk_match() being true) or it should *also* give "nonexistent" *with* lnk_match() true. Actually, I'm pretty sure that lnk_match() should only be true for Windows shortcuts (i.e. for files of the form "*.lnk") and so "nonexistent.exe" should only be given once. I realise that this is probably not a high priority issue and unlikely to be causing a problem, but since I stumbled over it (in pursuit of something else entirely) I thought I'd bring it to the attention of someone who might have more of a clue than me. Cheers, // Conrad