delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2015/10/27/20:30:57

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:from:to:mime-version
:content-transfer-encoding:content-type:subject:date:in-reply-to
:references; q=dns; s=default; b=psTCNe7qP3ywreohtVkp3DOeSTDRb38
oIbTexvA8KTJPQJ1PwzWx1/sOCYSiB5pkNtWaFktcFbfKzhCuCTJbuCSVleUCUU4
xE9VZJi3sdHpjI7KHxHBhZV4j6JcZPvnw8+ft5AQArs6bh6oa+kOBhIGMX4VmLI+
yX7Qh9yrFt4c=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:from:to:mime-version
:content-transfer-encoding:content-type:subject:date:in-reply-to
:references; s=default; bh=+6F7ObOnFVw1UYdEazp2aus7ElU=; b=S2XDz
5cVx0AnGwbitlC4hgajmsBulBUcfBghG7UqaTfigzcRyWPE5uzqCcEk+hC8Vq7sO
VzFBg8sY/vvzuFf/4cPR7nH7hr+vlR6Fh8xEgpzSkEjMI0SfRCeH/XjPfsWq+Dxr
JOnIKsEOLWDxxCuL3BzOGTYJJJfYAMtdYcLxGc=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2
X-HELO: out3-smtp.messagingengine.com
Message-Id: <1445992232.1521329.422055817.4924D989@webmail.messagingengine.com>
From: Anthony Heading <anthony AT ajrh DOT net>
To: cygwin AT cygwin DOT com
MIME-Version: 1.0
Subject: Re: mkshortcut (cygutils-1.4.14) free error
Date: Tue, 27 Oct 2015 20:30:32 -0400
In-Reply-To: <loom.20151027T061000-194@post.gmane.org>
References: <1445135414 DOT 3384650 DOT 413058409 DOT 46BC94AD AT webmail DOT messagingengine DOT com> <1445823930 DOT 241438 DOT 419951441 DOT 109BA262 AT webmail DOT messagingengine DOT com> <562E30AF DOT 5020502 AT cornell DOT edu> <loom DOT 20151026T205200-829 AT post DOT gmane DOT org> <1445904708 DOT 1171081 DOT 420968713 DOT 3D94007E AT webmail DOT messagingengine DOT com> <loom DOT 20151027T061000-194 AT post DOT gmane DOT org>
X-IsSubscribed: yes

On Tue, Oct 27, 2015, at 01:29 AM, Mark Geisert wrote:
> I really appreciate the leads and code you've provided. Could we
> please discuss only on the Cygwin mailing list? That's the convention
> we have, barring extraordinary circumstances :) . It allows for
> public review.

I believe I did send everything to the mailing list. I may have copied
you directly also. Apologies if that was inconvenient.

> At that point I could reproduce your first mkshortcut issue. Your
> patch seems to fix that issue. So far, so good.

Great.

> The second issue with the non-absolute path is more problematic.
> Without your second patch, I do see the issue but only on the 2nd or
> later invocation. In other words, if the xyzzy.lnk file does not
> initially exist, the command 'src/mkshortcut/.libs/mkshortcut xyzzy'
> works and does create the link file. Another invocation then shows the
> error. Is it simply mis-reporting that there's an existing link file?

Yes. The hint in the error message is unhelpful I think, since a missing
directory is only one of a myriad of possible errors. As you note, an
existing link prompts the same message.

On the build I made on Windows 10, however, I hit the problem on the
very first invocation. I imagine you therefore are building on Windows 7
or earlier, which seems to produce binaries that work OK.  As I said, I
suspect this is because IPersistFile::Save has changed semantics, e.g.
per this link:

https://msdn.microsoft.com/en-us/library/windows/desktop/hh848036%28v=vs.85%29.aspx

I haven't verified this;  I don't know how why or whether gcc is
volunteering the executable to run in Windows 8 mode, or if there's a
manifest in some dll library stub, or whether the COM ID of the
IPersistFile interface is redirected by newer headers, or any similar
variant of Windows black magic,  but it seems to me like a good guess.

If you're going to stay building on Windows 7 then, I don't think this
latter patch is needed,  although it's hopefully harmless.  But I guess
without it the code will silently break when Windows 8 or newer comes
into the picture.

Regards

Anthony

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019