From unknown Sun Jun 15 01:09:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40072: Incorrect escaping on MinGW 32-bit Resent-From: Jeffrey Walton Original-Sender: "Debbugs-submit" Resent-CC: bug-libtool@gnu.org Resent-Date: Sun, 15 Mar 2020 11:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 40072 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: 40072@debbugs.gnu.org X-Debbugs-Original-To: bug-libtool@gnu.org Reply-To: noloader@gmail.com Received: via spool by submit@debbugs.gnu.org id=B.15842724735791 (code B ref -1); Sun, 15 Mar 2020 11:42:01 +0000 Received: (at submit) by debbugs.gnu.org; 15 Mar 2020 11:41:13 +0000 Received: from localhost ([127.0.0.1]:34286 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDRdp-0001VL-Hh for submit@debbugs.gnu.org; Sun, 15 Mar 2020 07:41:13 -0400 Received: from lists.gnu.org ([209.51.188.17]:36708) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDRdo-0001VE-2p for submit@debbugs.gnu.org; Sun, 15 Mar 2020 07:41:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34156) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDRdm-0007jn-Lv for bug-libtool@gnu.org; Sun, 15 Mar 2020 07:41:11 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDRdk-0006pZ-TL for bug-libtool@gnu.org; Sun, 15 Mar 2020 07:41:10 -0400 Received: from mail-io1-xd34.google.com ([2607:f8b0:4864:20::d34]:37199) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDRdk-0006hI-MV for bug-libtool@gnu.org; Sun, 15 Mar 2020 07:41:08 -0400 Received: by mail-io1-xd34.google.com with SMTP id k4so14272993ior.4 for ; Sun, 15 Mar 2020 04:41:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:reply-to:from:date:message-id:subject:to; bh=Q+BYNd4Kwj1YmWow6ZTaz2Q3Dpi8GrgG3JQo804rXvc=; b=Euga0Yz8Sz4AMJsrMx7BMghHhmYoENp32Gpo2pVX1WJZJj+5t49DAO8hVHRRZhvOij ln1cr4t4MwyBT7GsALdUYKGPU3LkUVCLO96kFeek5/kpk+TUBsOwDIKXT5JTwN9LQkqy N9D23E2Z/45/5XIKLL3v64zAhhaACva4xA8hS6bC0mGgeGh+UzWvFsXOQb8fe1WG97o4 lJ7RcShrGSENej0COADu1+bZKdaikhWbE3PmpVVoSMnHr3uHSqdI/zLAhZ/06BlGoFbM WgYlz52ZDEydJFCaPgvjE0mjHLjqOZbLMGvYCJ60Z+c6xIaVicdRC0sIcxmxvzuXwJWU +c2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:reply-to:from:date:message-id :subject:to; bh=Q+BYNd4Kwj1YmWow6ZTaz2Q3Dpi8GrgG3JQo804rXvc=; b=ltYJbjMBkSGfCrtqGfARdfr9gToI6Ou6tLlqZUEr/DqOCOKuikFSuBjHpu9IDiG6s2 VWZ+Go6XmYaW6q+1MdyOjzYuvz9QUZulArsRz7bTBw/xSQlOI3TuWdtUf1KYzreNvdzD mKndIaSRSY3AvRRXWhvZ5FY+0S3fK/Cgq0/KfyTN31uKDc8CAmyMeMfHE5mXlgvAPGWW i8TMxBkI2oH5kHWqLFUC18u92Jy50St3t2pilEAXyb6xpy3FCcW4eQSFaMCmf3X7FMa3 ecZFBk3EbJIjuHZWzwL6OMVIe+336F4ngPbPZGyHnR+NBPZBp/+iOePMa5AjwQdP/1oI 10IQ== X-Gm-Message-State: ANhLgQ1FqCRGNHgFuUxbjU3RjeojztXiYcGmAsaF/vq8FCk+5av5qJpo DHx+LlFHZx6YC0Z3DksI5rNSi8oj3YEIhRHeZwXakQbE X-Google-Smtp-Source: ADFU+vvbcROFPLB66/YiXzhtXfRXh3W69h8KXAstrhbhWeGb9FsOtXjVgJvbPbJN+9wo9Hxg9qoXbHWzErZJNVIfZ6g= X-Received: by 2002:a6b:f913:: with SMTP id j19mr19297803iog.124.1584272467287; Sun, 15 Mar 2020 04:41:07 -0700 (PDT) MIME-Version: 1.0 From: Jeffrey Walton Date: Sun, 15 Mar 2020 07:40:56 -0400 Message-ID: Content-Type: text/plain; charset="UTF-8" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::d34 X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) Hi Everyone, I'm working on a MSYS2 system on a Windows 7 host. MSYS2 can be obtained at https://www.msys2.org/. I'm using the environment from msys2-i686-20190524.exe. After installing MSYS2, click the MinGW 32-bit link on the desktop. After configuring Expat (https://github.com/libexpat/libexpat), make is resulting in: libtool: link: gcc -g -O2 -Wall -Wextra -fexceptions -fno-strict-aliasing -Wmiss ing-prototypes -Wstrict-prototypes -pedantic -Wduplicated-cond -Wduplicated-bran ches -Wlogical-op -Wrestrict -Wnull-dereference -Wjump-misses-init -Wdouble-prom otion -Wshadow -Wformat=2 -Wmisleading-indentation -fvisibility=hidden -DXML_ENA BLE_VISIBILITY=1 -fno-strict-aliasing -o .libs/xmlwf.exe xmlwf-xmlwf.o xmlwf-xml file.o xmlwf-codepage.o xmlwf-unixfilemap.o ../lib/.libs/libexpat.dll.a -L/ming w32/lib ./.libs/lt-xmlwf.c:164:35: error: expected ',' or ';' before 'C' 164 | const char * LIB_PATH_VALUE = ""C:\\msys32\\home\\Jeffrey Walton\\libe xpat\\expat\\lib\\.libs";"; | ^ ./.libs/lt-xmlwf.c:164:37: error: stray '\' in program 164 | const char * LIB_PATH_VALUE = ""C:\\msys32\\home\\Jeffrey Walton\\libe xpat\\expat\\lib\\.libs";"; | ^ ... $ cat -n xmlwf/.libs/lt-xmlwf.c 1 2 /* ./.libs/lt-xmlwf.c - temporary wrapper executable for .libs/xmlwf.exe 3 Generated by libtool (GNU libtool) 2.4.6 4 ... 162 externally_visible const char * MAGIC_EXE = "%%%MAGIC EXE variable%%%"; 163 const char * LIB_PATH_VARNAME = "PATH"; 164 const char * LIB_PATH_VALUE = ""C:\\msys32\\home\\Jeffrey Walton\\libe xpat\\expat\\lib\\.libs";"; 165 const char * EXE_PATH_VARNAME = "PATH"; 166 const char * EXE_PATH_VALUE = "\\home\\Jeffrey:Walton\\libexpat\\expat \\lib\\.libs:\\mingw32\\lib:\\mingw32\\bin;"; And finally, $ libtool --version libtool (GNU libtool) 2.4.6 $ autoconf --version autoconf (GNU Autoconf) 2.69 $ automake --version automake (GNU automake) 1.16.1 Jeff From unknown Sun Jun 15 01:09:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40072: Incorrect escaping on MinGW 32-bit Resent-From: Bob Friesenhahn Original-Sender: "Debbugs-submit" Resent-CC: bug-libtool@gnu.org Resent-Date: Sun, 15 Mar 2020 14:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40072 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: Jeffrey Walton Cc: 40072@debbugs.gnu.org X-Debbugs-Original-Cc: 40072@debbugs.gnu.org, bug-libtool@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.158428079220879 (code B ref -1); Sun, 15 Mar 2020 14:00:02 +0000 Received: (at submit) by debbugs.gnu.org; 15 Mar 2020 13:59:52 +0000 Received: from localhost ([127.0.0.1]:35326 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDTo0-0005Qh-9A for submit@debbugs.gnu.org; Sun, 15 Mar 2020 09:59:52 -0400 Received: from lists.gnu.org ([209.51.188.17]:47099) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDTny-0005QU-U9 for submit@debbugs.gnu.org; Sun, 15 Mar 2020 09:59:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45039) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDTnx-00012e-Fn for bug-libtool@gnu.org; Sun, 15 Mar 2020 09:59:50 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDTnv-000240-0j for bug-libtool@gnu.org; Sun, 15 Mar 2020 09:59:49 -0400 Received: from smtp.simplesystems.org ([65.66.246.90]:48372) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDTnu-0001tE-OW for bug-libtool@gnu.org; Sun, 15 Mar 2020 09:59:46 -0400 Received: from freddy.simplesystems.org (freddy.simplesystems.org [65.66.246.65]) by smtp.simplesystems.org (8.14.4+Sun/8.14.4) with ESMTP id 02FDxYH5012195; Sun, 15 Mar 2020 08:59:34 -0500 (CDT) Date: Sun, 15 Mar 2020 08:59:34 -0500 (CDT) From: Bob Friesenhahn X-X-Sender: bfriesen@freddy.simplesystems.org In-Reply-To: Message-ID: References: User-Agent: Alpine 2.20 (GSO 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (smtp.simplesystems.org [65.66.246.90]); Sun, 15 Mar 2020 08:59:34 -0500 (CDT) X-detected-operating-system: by eggs.gnu.org: GNU/Linux (Android) [fuzzy] X-Received-From: 65.66.246.90 X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On Sun, 15 Mar 2020, Jeffrey Walton wrote: > Hi Everyone, > > I'm working on a MSYS2 system on a Windows 7 host. MSYS2 can be > obtained at https://www.msys2.org/. I'm using the environment from > msys2-i686-20190524.exe. After installing MSYS2, click the MinGW > 32-bit link on the desktop. > > After configuring Expat (https://github.com/libexpat/libexpat), make > is resulting in: > > libtool: link: gcc -g -O2 -Wall -Wextra -fexceptions -fno-strict-aliasing -Wmiss > ing-prototypes -Wstrict-prototypes -pedantic -Wduplicated-cond -Wduplicated-bran > ches -Wlogical-op -Wrestrict -Wnull-dereference -Wjump-misses-init -Wdouble-prom > otion -Wshadow -Wformat=2 -Wmisleading-indentation -fvisibility=hidden -DXML_ENA > BLE_VISIBILITY=1 -fno-strict-aliasing -o .libs/xmlwf.exe xmlwf-xmlwf.o xmlwf-xml > file.o xmlwf-codepage.o xmlwf-unixfilemap.o ../lib/.libs/libexpat.dll.a -L/ming > w32/lib > ./.libs/lt-xmlwf.c:164:35: error: expected ',' or ';' before 'C' > 164 | const char * LIB_PATH_VALUE = ""C:\\msys32\\home\\Jeffrey Walton\\libe > xpat\\expat\\lib\\.libs";"; In my experience, Autotools has never supported paths which include spaces. This is just too hard to fix given that the shell splits arguments on white-space by default. Even if Autoconf, Automake, and Libtool where to somehow fix this problem for a well-crafted package, it would almost certainly fail once the configure script uses any shell content other than the provided macros. There was already a challenge to solve given that backslash has special meaning to the shell. For my purposes I made sure that my default Windows login directory does not include spaces in the path, but I also created a new directory path for builds which does not include spaces in the path and has Windows Defender scaning and automatic indexing disabled. Bob -- Bob Friesenhahn bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/ GraphicsMagick Maintainer, http://www.GraphicsMagick.org/ Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt From unknown Sun Jun 15 01:09:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40072: Incorrect escaping on MinGW 32-bit Resent-From: Jeffrey Walton Original-Sender: "Debbugs-submit" Resent-CC: bug-libtool@gnu.org Resent-Date: Sun, 15 Mar 2020 14:49:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40072 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: Bob Friesenhahn Cc: 40072@debbugs.gnu.org X-Debbugs-Original-Cc: 40072@debbugs.gnu.org, bug-libtool@gnu.org Reply-To: noloader@gmail.com Received: via spool by submit@debbugs.gnu.org id=B.158428374125854 (code B ref -1); Sun, 15 Mar 2020 14:49:01 +0000 Received: (at submit) by debbugs.gnu.org; 15 Mar 2020 14:49:01 +0000 Received: from localhost ([127.0.0.1]:35339 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDUZY-0006iw-Jf for submit@debbugs.gnu.org; Sun, 15 Mar 2020 10:49:00 -0400 Received: from lists.gnu.org ([209.51.188.17]:35142) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDUZW-0006im-QM for submit@debbugs.gnu.org; Sun, 15 Mar 2020 10:48:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43538) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDUZV-0007Bx-5H for bug-libtool@gnu.org; Sun, 15 Mar 2020 10:48:58 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDUZT-00026y-Rs for bug-libtool@gnu.org; Sun, 15 Mar 2020 10:48:56 -0400 Received: from mail-il1-x143.google.com ([2607:f8b0:4864:20::143]:45851) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDUZT-00023l-Mu for bug-libtool@gnu.org; Sun, 15 Mar 2020 10:48:55 -0400 Received: by mail-il1-x143.google.com with SMTP id m9so432997ilq.12 for ; Sun, 15 Mar 2020 07:48:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc; bh=fz94Y6ZZ5GVCD8PXPKWndkhN6EtwSEU8OZVThWuQNKE=; b=jnBzuD/82fBIIVZtHcoprejxADCPkl2GiR0xZ3YAOESb8uTilWPP3JicXXcAcRs30u ywsbzd++1ADNLSP2TD/5b3fw9r7WC00HmGU52ZqIkl2v8kFEoXLPlkLkiaqnpYq0D4nn 0/PwzE7kHL3zBDVIrDbY8zOpunW0qfsk1EmMIEvHYhTh/mmYk21KfjJIX4akVHWQzEuh huTr8aLHPSlJhVzHJu3JtVI6WouKIlvHSq48zTqlT6JVT/7f2XtOJUF2nbDKCIeQkNMD xG++pgSZruqR769BbMN9ji2DbF8aW+VMLlv896ow5dxoSMDlfPuQ0jOO65ToDAi75zyX Lpzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=fz94Y6ZZ5GVCD8PXPKWndkhN6EtwSEU8OZVThWuQNKE=; b=PpirRgXKVinmJ3cGjqdCq8lgByNxMBz9QTEnvdIoG/bapchKx7tQuqtda5Rl93vHga P+1w3NttGRtj3Xc7CMP9be2275yN//X1hiX/nH9/a/OsSvI2IUl0FheDXmg+j7/sYibd DNjFR7p9VFMhBWNs5ha0VWhgtX2molt4wAZAcjz34tsCtyNu/xrR3RE45CJ/nQoh4QV7 iIJBr0drsBR0sGw3/3eN4hlNeI8hoK1CnXJtQlbl5D3MRkQ/+bq86VQ0/gqjHxCO/RDq 32XTYkAoenxMv7Yy88hGnJdsI0qK0GQwdc5wcNEBBNZdvdx0MdiC6HxSUy4SX7k7Qn0M Q0dQ== X-Gm-Message-State: ANhLgQ1A86rr9ShzvTdeVTE2r12mc+bUipBffINHh9k5MYTBESaz8JMN NyRZqZ0HnnQmwxq27yZ2pEOSK+v+hfBkxAppaQvgoA== X-Google-Smtp-Source: ADFU+vvneZcLFd74Nly21TjpE0k7sbrRea9qiCPBy3WMDsjGo42hOWGCMXxm4IZREeYQxJaeHqRAWMCcnsRD7ZEKnKk= X-Received: by 2002:a92:5d52:: with SMTP id r79mr5779452ilb.212.1584283734930; Sun, 15 Mar 2020 07:48:54 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jeffrey Walton Date: Sun, 15 Mar 2020 10:48:44 -0400 Message-ID: Content-Type: text/plain; charset="UTF-8" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::143 X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) On Sun, Mar 15, 2020 at 9:59 AM Bob Friesenhahn wrote: > > On Sun, 15 Mar 2020, Jeffrey Walton wrote: > > > Hi Everyone, > > > > I'm working on a MSYS2 system on a Windows 7 host. MSYS2 can be > > obtained at https://www.msys2.org/. I'm using the environment from > > msys2-i686-20190524.exe. After installing MSYS2, click the MinGW > > 32-bit link on the desktop. > > > > After configuring Expat (https://github.com/libexpat/libexpat), make > > is resulting in: > > > > libtool: link: gcc -g -O2 -Wall -Wextra -fexceptions -fno-strict-aliasing -Wmiss > > ing-prototypes -Wstrict-prototypes -pedantic -Wduplicated-cond -Wduplicated-bran > > ches -Wlogical-op -Wrestrict -Wnull-dereference -Wjump-misses-init -Wdouble-prom > > otion -Wshadow -Wformat=2 -Wmisleading-indentation -fvisibility=hidden -DXML_ENA > > BLE_VISIBILITY=1 -fno-strict-aliasing -o .libs/xmlwf.exe xmlwf-xmlwf.o xmlwf-xml > > file.o xmlwf-codepage.o xmlwf-unixfilemap.o ../lib/.libs/libexpat.dll.a -L/ming > > w32/lib > > ./.libs/lt-xmlwf.c:164:35: error: expected ',' or ';' before 'C' > > 164 | const char * LIB_PATH_VALUE = ""C:\\msys32\\home\\Jeffrey Walton\\libe > > xpat\\expat\\lib\\.libs";"; > > In my experience, Autotools has never supported paths which include > spaces. This is just too hard to fix given that the shell splits > arguments on white-space by default. Even if Autoconf, Automake, and > Libtool where to somehow fix this problem for a well-crafted package, > it would almost certainly fail once the configure script uses any > shell content other than the provided macros. > > There was already a challenge to solve given that backslash has > special meaning to the shell. > > For my purposes I made sure that my default Windows login directory > does not include spaces in the path, but I also created a new > directory path for builds which does not include spaces in the path > and has Windows Defender scaning and automatic indexing disabled. Thanks Bob. It seems (to me) Libtool is very close to the correct answer. Taking a page from my experience trying to use the date(1) command everywhere, I stopped using it. I now supply a small C program that adds, subtracts, formats and prints dates. I call it from my scripts. My scripts now work everywhere from AIX, BSDs, OS X, Solaris and Windows. No putzing around anymore with different OS personalities. Maybe libtool can do the same. Supply a small C program, compile it and call it from the libtool scripts. Its would be quite easy to supply the path in argv[1], and get back either (1) the original name (no spaces), (2) a short file name or (3) a quoted long file name. If the path gets split and shows up in pieces across argv[1]...argv[n-1], then just combine the pieces because you know what is supposed to happen. Jeff From unknown Sun Jun 15 01:09:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40072: Incorrect escaping on MinGW 32-bit Resent-From: Jeffrey Walton Original-Sender: "Debbugs-submit" Resent-CC: bug-libtool@gnu.org Resent-Date: Sun, 15 Mar 2020 19:02:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40072 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: Bob Friesenhahn Cc: 40072@debbugs.gnu.org X-Debbugs-Original-Cc: 40072@debbugs.gnu.org, bug-libtool@gnu.org Reply-To: noloader@gmail.com Received: via spool by submit@debbugs.gnu.org id=B.158429887119757 (code B ref -1); Sun, 15 Mar 2020 19:02:01 +0000 Received: (at submit) by debbugs.gnu.org; 15 Mar 2020 19:01:11 +0000 Received: from localhost ([127.0.0.1]:35593 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDYVa-00058a-KN for submit@debbugs.gnu.org; Sun, 15 Mar 2020 15:01:10 -0400 Received: from lists.gnu.org ([209.51.188.17]:43554) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDYVZ-00058N-C5 for submit@debbugs.gnu.org; Sun, 15 Mar 2020 15:01:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33435) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDYVW-0003uI-PT for bug-libtool@gnu.org; Sun, 15 Mar 2020 15:01:09 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDYVV-00047M-9l for bug-libtool@gnu.org; Sun, 15 Mar 2020 15:01:06 -0400 Received: from mail-il1-x130.google.com ([2607:f8b0:4864:20::130]:45079) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jDYVU-00041c-Al for bug-libtool@gnu.org; Sun, 15 Mar 2020 15:01:05 -0400 Received: by mail-il1-x130.google.com with SMTP id m9so838488ilq.12 for ; Sun, 15 Mar 2020 12:01:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:reply-to:from:date:message-id :subject:to:cc; bh=mT+dPiQPXtyPjCH732tXbhir73tWO8hxm80itj3YLrU=; b=rCVdUFQy30Xj3ejcM6Cx8aOglZec69t995WSLBMgCegJR2eaSSP4ed1toh2jhbxUd6 Yd3mL+lGScL8TmCYedXi/xlaTVeEByF0JohA8RNGFu9I88ER3dUXuuFs4/E3wGO2rZuD owGHkltkbnMy1ZhcyOAa9mFtqGzeKTU6kNGWl0/Sfjrf3b505YRwjYgM2JKKn7AwVlVt hH+68vU2gpfmpG9utt29cyf5T8me1XzBuG596gFlEj9wPKT7a3B2FDeyVucljpyP+xJc gyDLpr0lFHCbBT1HKUv3hV/SgLC/NMpR+kwV+rVqTlS6bTRbvXmrrGoj7zNaOzJvKz7v /qHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=mT+dPiQPXtyPjCH732tXbhir73tWO8hxm80itj3YLrU=; b=JsNRNfEhpCfD6Bp7E+H4HSAecxmoQ9zsMcOx24gpwZ9trj2PSsVlenqmmFquDY6Mzq 4mkVI8s2BDZI0tCe2ejs3ksDBJD0PJI+E9mTCp6h6UgrGPryZJE+CdY0N0Rd+L/wnaTQ IwXWTUn1LoO1gOMHSMPUxDMh0i/f6UvL+XqXjd/L82ryQ4Ui7hKaZu/kJquzNRpM/SAL bPY49xDbpPBxfRexLMRfoN83GJkonM/IgFEB5Z1IaN1I/T01Yitbodtywu3NoZ3GtXD7 T6dwIL8gLa7bBsHL78JHHQEEKjkS6FNb+1NrvrOQM8QRCdb/N/wzkXuO0VoJgxLCYt9C mHDQ== X-Gm-Message-State: ANhLgQ2SPDSmL74p4nBcclYgO++VJt1foKqIuUCKRuVIUxjQ93BOXJtE OGw7asb42E+SRXXkguKNkafgRG3FUzhNa7Gbx9o= X-Google-Smtp-Source: ADFU+vscGFnKjE/StgMHlQMSL2XP/gFHlwt4BuLzgktcWV7ak6SyrLOoZaJSv61Uvn1/O2yqUYyEiX6ICqa5nEKKSv8= X-Received: by 2002:a92:2904:: with SMTP id l4mr24927856ilg.166.1584298863248; Sun, 15 Mar 2020 12:01:03 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jeffrey Walton Date: Sun, 15 Mar 2020 15:00:52 -0400 Message-ID: Content-Type: multipart/mixed; boundary="000000000000f6867c05a0e9529a" X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::130 X-Spam-Score: 0.3 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.7 (/) --000000000000f6867c05a0e9529a Content-Type: text/plain; charset="UTF-8" On Sun, Mar 15, 2020 at 10:48 AM Jeffrey Walton wrote: > > On Sun, Mar 15, 2020 at 9:59 AM Bob Friesenhahn > wrote: > > > > On Sun, 15 Mar 2020, Jeffrey Walton wrote: > > ... > Maybe libtool can do the same. Supply a small C program, compile it > and call it from the libtool scripts. Its would be quite easy to > supply the path in argv[1], and get back either (1) the original name > (no spaces), (2) a short file name or (3) a quoted long file name. If > the path gets split and shows up in pieces across argv[1]...argv[n-1], > then just combine the pieces because you know what is supposed to > happen. Bob, see what you think about a program like the one attached. The C code will be messier, but it is the same concept. Here's what it returns during testing. The -c options means returns string to use as a C declare. With USE_WINDOWS_API (tested under MSYS): $ ./quote_path.exe "C:\Users\Jeffrey" "Walton\Desktop" C:\Users\JEFFRE~1\Desktop $ ./quote_path.exe -c "C:\Users\Jeffrey" "Walton\Desktop" "C:\\Users\\JEFFRE~1\\Desktop"; $ ./quote_path.exe -c C:\\Users C:\\Users Without USE_WINDOWS_API (tested under MSYS): $ ./quote_path.exe "C:\Users\Jeffrey" "Walton\Desktop" "C:\Users\Jeffrey Walton\Desktop" $ ./quote_path.exe -c "C:\Users\Jeffrey" "Walton\Desktop" "\"C:\\Users\\Jeffrey Walton\\Desktop\""; $ ./quote_path.exe C:\\Users\\Jeffrey Walton\\Desktop "C:\Users\Jeffrey Walton\Desktop" $ ./quote_path.exe -c C:\\Users\\Jeffrey Walton\\Desktop "\"C:\\Users\\Jeffrey Walton\\Desktop\""; $ ./quote_path.exe -c C:\\Users C:\\Users I think offloading to an external program written for the specific problem will probably simplify libtool and its helpers. It will make your life a lot easier. Jeff --000000000000f6867c05a0e9529a Content-Type: text/x-c++src; charset="US-ASCII"; name="quote_path.cpp" Content-Disposition: attachment; filename="quote_path.cpp" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k7te9s3b0 I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGht PgojaW5jbHVkZSA8dXRpbGl0eT4NCiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8Y3N0ZGxp Yj4NCgojaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19NSU5HVzMyX18pIHx8IGRlZmlu ZWQoX19NU1lTX18pCiNkZWZpbmUgVVNFX1dJTkRPV1NfQVBJIDEKI2VuZGlmCgojaWYgZGVmaW5l ZChVU0VfV0lORE9XU19BUEkpCiNpbmNsdWRlIDx3aW5kb3dzLmg+CiNlbmRpZgoKLy8gRm9yIHRl c3Rpbmcgb24gTWluR1czMiBhbmQgTVNZUwovLyAjdW5kZWYgVVNFX1dJTkRPV1NfQVBJCgpzdGQ6 OnN0cmluZyBlc2NhcGVfc2xhc2hlcyhjb25zdCBzdGQ6OnN0cmluZyYgc3RyKQp7CglzdGQ6OnN0 cmluZyB0ZW1wOwoJdGVtcC5yZXNlcnZlKHRlbXAuc2l6ZSgpICsgMTYpOwoKCWZvciAoc2l6ZV90 IGk9MDsgaTxzdHIuc2l6ZSgpOyArK2kpCgl7CgkJdGVtcCArPSBzdHJbaV07CgkJaWYgKHN0cltp XSA9PSAnXFwnKQoJCQl0ZW1wICs9ICdcXCc7Cgl9CgoJcmV0dXJuIHRlbXA7Cn0KCnN0ZDo6c3Ry aW5nIHNhZmVfcGF0aF91bml4KGNvbnN0IHN0ZDo6c3RyaW5nJiBzdHIsIGJvb2wgY19kZWNsYXJl KQp7CglzdGQ6OnN0cmluZyB0aGVfcGF0aChzdHIpOwoKCXN0ZDo6c3RyaW5nIHRlbXBfcGF0aDsK CXRlbXBfcGF0aC5yZXNlcnZlKHRoZV9wYXRoLnNpemUoKSs4KTsKCglib29sIG5lZWRfcXVvdGUg PSB0aGVfcGF0aC5maW5kKCcgJykgIT0gc3RkOjpzdHJpbmc6Om5wb3M7CgoJaWYgKG5lZWRfcXVv dGUgJiYgY19kZWNsYXJlKSB7CgkJdGVtcF9wYXRoICs9ICJcIlxcXCIiOwoJfQoJZWxzZSBpZiAo bmVlZF9xdW90ZSkgewoJCXRlbXBfcGF0aCArPSAiXCIiOwoJfQoKCWlmIChjX2RlY2xhcmUpIHsK CQl0ZW1wX3BhdGggKz0gZXNjYXBlX3NsYXNoZXModGhlX3BhdGgpOwoJfQoJZWxzZSB7CgkJdGVt cF9wYXRoICs9IHRoZV9wYXRoOwoJfQoKCWlmIChuZWVkX3F1b3RlICYmIGNfZGVjbGFyZSkgewoJ CXRlbXBfcGF0aCArPSAiXFxcIlwiOyI7Cgl9CgllbHNlIGlmIChuZWVkX3F1b3RlKSB7CgkJdGVt cF9wYXRoICs9ICJcIiI7Cgl9CgoJc3RkOjpzd2FwKHRoZV9wYXRoLCB0ZW1wX3BhdGgpOwoKCXJl dHVybiB0aGVfcGF0aDsKfQoKI2lmIGRlZmluZWQoVVNFX1dJTkRPV1NfQVBJKQpzdGQ6OnN0cmlu ZyBzYWZlX3BhdGhfd2luZG93cyhjb25zdCBzdGQ6OnN0cmluZyYgc3RyLCBib29sIGNfZGVjbGFy ZSkKewoJc3RkOjpzdHJpbmcgdGhlX3BhdGgoc3RyKTsKCXN0ZDo6c3RyaW5nIHRlbXBfcGF0aDsN CgoJLy8gR2V0U2hvcnRQYXRoTmFtZSByZXR1cm5zIHRoZSBzaXplIGluY2x1ZGluZyB0aGUgTlVM TCBmb3IgdGhpcyBjYXNlCglEV09SRCByZXMxID0gR2V0U2hvcnRQYXRoTmFtZSh0aGVfcGF0aC5j X3N0cigpLCBOVUxMLCAwKTsKCWlmIChyZXMxID09IDApIHsKCQkvLyBGYWxsYmFjayB0byBVbml4 IGVzY2FwaW5nCgkJcmV0dXJuIHNhZmVfcGF0aF91bml4KHN0ciwgY19kZWNsYXJlKTsKCX0KCgl0 ZW1wX3BhdGgucmVzaXplKChzaXplX3QpcmVzMSk7CgoJLy8gR2V0U2hvcnRQYXRoTmFtZSBkb2Vz IG5vdCBpbmNsdWRlIHRoZSBOVUxMIGZvciB0aGlzIGNhc2UKCURXT1JEIHJlczIgPSBHZXRTaG9y dFBhdGhOYW1lKHRoZV9wYXRoLmNfc3RyKCksICZ0ZW1wX3BhdGhbMF0sIHJlczEpOwoJaWYgKHJl czIgPT0gMCkgewoJCS8vIEZhbGxiYWNrIHRvIFVuaXggZXNjYXBpbmcKCQlyZXR1cm4gc2FmZV9w YXRoX3VuaXgoc3RyLCBjX2RlY2xhcmUpOwoJfQoKCS8vIE5VTEwgaXMgbm90IGluY2x1ZGVkIGJl Y2F1c2UgdGhlIGJ1ZmZlciB3YXMgd2VsbCBzaXplZAoJdGVtcF9wYXRoLnJlc2l6ZShyZXMyKTsK CglzdGQ6OnN3YXAodGhlX3BhdGgsIHRlbXBfcGF0aCk7CgoJaWYgKGNfZGVjbGFyZSkKCXsKCQl0 ZW1wX3BhdGggPSAiXCIiOwoJCXRlbXBfcGF0aCArPSBlc2NhcGVfc2xhc2hlcyh0aGVfcGF0aCk7 CgkJdGVtcF9wYXRoICs9ICJcIjsiOwoKCQlzdGQ6OnN3YXAodGhlX3BhdGgsIHRlbXBfcGF0aCk7 Cgl9CgoJcmV0dXJuIHRoZV9wYXRoOwp9CiNlbmRpZgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIq IGFyZ3ZbXSkKewoJc3RkOjpzdHJpbmcgdGhlX3BhdGg7Cglib29sIGNfZGVjbGFyZSA9IGZhbHNl OwoJaW50IGluZGV4ID0gMTsNCgoJaWYgKGFyZ2MgPT0gMSkgewoJCXN0ZDo6ZXhpdChFWElUX0ZB SUxVUkUpOwoJfQoKICAgIC8vIC1jIG9wdGlvbiBtZWFucyBmb3JtYXQgYXMgQyBkZWNsYXJlCQoJ aWYgKGFyZ3ZbaW5kZXhdWzBdID09ICctJyAmJiBhcmd2W2luZGV4XVsxXSA9PSAnYycpIHsKCQlj X2RlY2xhcmUgPSB0cnVlOwoJCWluZGV4Kys7Cgl9CgoJLy8gcGllY2UgcGF0aHMgYmFjayB0b2dl dGhlcgoJZm9yIChpbnQgaT1pbmRleDsgaTxhcmdjOyArK2kpIHsKCQlpZiAoaSAhPSBpbmRleCkK CQkJdGhlX3BhdGggKz0gJyAnOwoKCQl0aGVfcGF0aCArPSBhcmd2W2ldOwoJfQoKI2lmIGRlZmlu ZWQoVVNFX1dJTkRPV1NfQVBJKQoJdGhlX3BhdGggPSBzYWZlX3BhdGhfd2luZG93cyh0aGVfcGF0 aCwgY19kZWNsYXJlKTsKI2Vsc2UKCXRoZV9wYXRoID0gc2FmZV9wYXRoX3VuaXgodGhlX3BhdGgs IGNfZGVjbGFyZSk7CiNlbmRpZgoKCXN0ZDo6Y291dCA8PCB0aGVfcGF0aCA8PCBzdGQ6OmVuZGw7 CgoJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKfQo= --000000000000f6867c05a0e9529a-- From unknown Sun Jun 15 01:09:10 2025 X-Loop: help-debbugs@gnu.org Subject: bug#40072: Incorrect escaping on MinGW 32-bit Resent-From: Bob Friesenhahn Original-Sender: "Debbugs-submit" Resent-CC: bug-libtool@gnu.org Resent-Date: Sun, 15 Mar 2020 19:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 40072 X-GNU-PR-Package: libtool X-GNU-PR-Keywords: To: Jeffrey Walton Cc: 40072@debbugs.gnu.org X-Debbugs-Original-Cc: 40072@debbugs.gnu.org, bug-libtool@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.158429949720871 (code B ref -1); Sun, 15 Mar 2020 19:12:02 +0000 Received: (at submit) by debbugs.gnu.org; 15 Mar 2020 19:11:37 +0000 Received: from localhost ([127.0.0.1]:35611 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDYfg-0005QZ-Q8 for submit@debbugs.gnu.org; Sun, 15 Mar 2020 15:11:37 -0400 Received: from lists.gnu.org ([209.51.188.17]:36075) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jDYff-0005QS-9X for submit@debbugs.gnu.org; Sun, 15 Mar 2020 15:11:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50948) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jDYfd-0007dx-SY for bug-libtool@gnu.org; Sun, 15 Mar 2020 15:11:35 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jDYfc-00076B-LN for bug-libtool@gnu.org; Sun, 15 Mar 2020 15:11:33 -0400 Received: from smtp.simplesystems.org ([65.66.246.90]:42047) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jDYfc-00071z-Cu for bug-libtool@gnu.org; Sun, 15 Mar 2020 15:11:32 -0400 Received: from freddy.simplesystems.org (freddy.simplesystems.org [65.66.246.65]) by smtp.simplesystems.org (8.14.4+Sun/8.14.4) with ESMTP id 02FJBO5H018756; Sun, 15 Mar 2020 14:11:24 -0500 (CDT) Date: Sun, 15 Mar 2020 14:11:24 -0500 (CDT) From: Bob Friesenhahn X-X-Sender: bfriesen@freddy.simplesystems.org In-Reply-To: Message-ID: References: User-Agent: Alpine 2.20 (GSO 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (smtp.simplesystems.org [65.66.246.90]); Sun, 15 Mar 2020 14:11:24 -0500 (CDT) X-detected-operating-system: by eggs.gnu.org: GNU/Linux (Android) [fuzzy] X-Received-From: 65.66.246.90 X-Spam-Score: 0.2 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On Sun, 15 Mar 2020, Jeffrey Walton wrote: > On Sun, Mar 15, 2020 at 10:48 AM Jeffrey Walton wrote: >> >> On Sun, Mar 15, 2020 at 9:59 AM Bob Friesenhahn >> wrote: >>> >>> On Sun, 15 Mar 2020, Jeffrey Walton wrote: >>> ... >> Maybe libtool can do the same. Supply a small C program, compile it >> and call it from the libtool scripts. Its would be quite easy to >> supply the path in argv[1], and get back either (1) the original name >> (no spaces), (2) a short file name or (3) a quoted long file name. If >> the path gets split and shows up in pieces across argv[1]...argv[n-1], >> then just combine the pieces because you know what is supposed to >> happen. > > Bob, see what you think about a program like the one attached. The C > code will be messier, but it is the same concept. This seems like a good idea but it does not address the problem that Autoconf and Automake can not currently support paths with spaces in them. If a path is encoded so that it does not appear to contain a space, then it is wise to remember that paths are saved in various places and used in various ways. Some of these paths may be baked into the library or program. Microsoft Windows does provide an API in order to obtain an obfusticated short name or convert it to the normal path. This was needed in order for Windows 95 (and earlier) programs to be able to handle long file names. Bob -- Bob Friesenhahn bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/ GraphicsMagick Maintainer, http://www.GraphicsMagick.org/ Public Key, http://www.simplesystems.org/users/bfriesen/public-key.txt