From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JD1tw-0004GN-Nh for qemu-devel@nongnu.org; Thu, 10 Jan 2008 13:13:12 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JD1tv-0004Fu-4u for qemu-devel@nongnu.org; Thu, 10 Jan 2008 13:13:12 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JD1tu-0004Fr-WA for qemu-devel@nongnu.org; Thu, 10 Jan 2008 13:13:11 -0500 Received: from ecfrec.frec.bull.fr ([129.183.4.8]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JD1tu-0005AS-Rx for qemu-devel@nongnu.org; Thu, 10 Jan 2008 13:13:11 -0500 Subject: Re: [Qemu-devel] Fix double backslash problem in Windows From: Laurent Vivier In-Reply-To: <1199977347.4773.81.camel@frecb07144> References: <1199871092.4337.4.camel@frecb07144> <1199873069.4337.20.camel@frecb07144> <1199880481.4337.31.camel@frecb07144> <1199883098.4337.42.camel@frecb07144> <1199957735.4773.22.camel@frecb07144> <1199967143.4773.38.camel@frecb07144> <47861E01.6050709@qumranet.com> <1199973508.4773.69.camel@frecb07144> <759640945.20080110151805@ena.si> <1199977347.4773.81.camel@frecb07144> Date: Thu, 10 Jan 2008 19:13:39 +0100 Message-Id: <1199988819.5145.2.camel@frecb07144> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-3SVbM0Dweaq6E+BOxk3Z" Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org --=-3SVbM0Dweaq6E+BOxk3Z Content-Type: multipart/mixed; boundary="=-7jDBT4FkWPing58+AQbr" --=-7jDBT4FkWPing58+AQbr Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Le jeudi 10 janvier 2008 =C3=A0 16:02 +0100, Laurent Vivier a =C3=A9crit : > Le jeudi 10 janvier 2008 =C3=A0 15:18 +0100, Jernej Simon=C4=8Di=C4=8D a = =C3=A9crit : > > On Thursday, January 10, 2008, 14:58:28, Laurent Vivier wrote: > >=20 > > > Do you like '^' ? > >=20 > > Bad idea - this is the escape character in Windows shell :) >=20 > Perhaps this should work: >=20 > - option name must end with '=3D' > - option value must end with ',' or '\0' (allows '=3D' in filename) > - if option name must have ',', we double it (allows ',' in filename) > - ' ', '\' and '"' are not separators at this level and are managed at > shell level Here is the patch. All comments are welcome. Laurent --=20 ----------------- Laurent.Vivier@bull.net ------------------ "La perfection est atteinte non quand il ne reste rien =C3=A0 ajouter mais quand il ne reste rien =C3=A0 enlever." Saint Exup=C3=A9ry --=-7jDBT4FkWPing58+AQbr Content-Disposition: attachment; filename=filename_spec_char.patch Content-Type: text/x-vhdl; name=filename_spec_char.patch; charset=utf-8 Content-Transfer-Encoding: base64 LS0tDQogcWVtdS1kb2MudGV4aSB8ICAgIDMgKystDQogdmwuYyAgICAgICAgICB8ICAgNTMgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAyIGZp bGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQ0KDQpJbmRleDog cWVtdS92bC5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQotLS0gcWVtdS5vcmlnL3ZsLmMJMjAwOC0wMS0xMCAxNzo0 ODowOC4wMDAwMDAwMDAgKzAxMDANCisrKyBxZW11L3ZsLmMJMjAwOC0wMS0xMCAxOTowNjo0MC4w MDAwMDAwMDAgKzAxMDANCkBAIC00NTgxLDI0ICs0NTgxLDMzIEBAIHN0YXRpYyBpbnQgbmV0X3Nv Y2tldF9tY2FzdF9pbml0KFZMQU5TdGENCiANCiB9DQogDQotc3RhdGljIGNvbnN0IGNoYXIgKmdl dF93b3JkKGNoYXIgKmJ1ZiwgaW50IGJ1Zl9zaXplLCBjb25zdCBjaGFyICpwKQ0KK3N0YXRpYyBj b25zdCBjaGFyICpnZXRfb3B0X25hbWUoY2hhciAqYnVmLCBpbnQgYnVmX3NpemUsIGNvbnN0IGNo YXIgKnApDQorew0KKyAgICBjaGFyICpxOw0KKw0KKyAgICBxID0gYnVmOw0KKyAgICB3aGlsZSAo KnAgIT0gJ1wwJyAmJiAqcCAhPSAnPScpIHsNCisgICAgICAgIGlmIChxICYmIChxIC0gYnVmKSA8 IGJ1Zl9zaXplIC0gMSkNCisgICAgICAgICAgICAqcSsrID0gKnA7DQorICAgICAgICBwKys7DQor ICAgIH0NCisgICAgaWYgKHEpDQorICAgICAgICAqcSA9ICdcMCc7DQorDQorICAgIHJldHVybiBw Ow0KK30NCisNCitzdGF0aWMgY29uc3QgY2hhciAqZ2V0X29wdF92YWx1ZShjaGFyICpidWYsIGlu dCBidWZfc2l6ZSwgY29uc3QgY2hhciAqcCkNCiB7DQogICAgIGNoYXIgKnE7DQotICAgIGludCBz dWJzdHJpbmc7DQogDQotICAgIHN1YnN0cmluZyA9IDA7DQogICAgIHEgPSBidWY7DQogICAgIHdo aWxlICgqcCAhPSAnXDAnKSB7DQotICAgICAgICBpZiAoKnAgPT0gJ1xcJykgew0KLSAgICAgICAg ICAgIHArKzsNCi0gICAgICAgICAgICBpZiAoKnAgPT0gJ1wwJykNCisgICAgICAgIGlmICgqcCA9 PSAnLCcpIHsNCisgICAgICAgICAgICBpZiAoKihwICsgMSkgIT0gJywnKQ0KICAgICAgICAgICAg ICAgICBicmVhazsNCi0gICAgICAgIH0gZWxzZSBpZiAoKnAgPT0gJ1wiJykgew0KLSAgICAgICAg ICAgIHN1YnN0cmluZyA9ICFzdWJzdHJpbmc7DQogICAgICAgICAgICAgcCsrOw0KLSAgICAgICAg ICAgIGNvbnRpbnVlOw0KLSAgICAgICAgfSBlbHNlIGlmICghc3Vic3RyaW5nICYmICgqcCA9PSAn LCcgfHwgKnAgPT0gJz0nKSkNCi0gICAgICAgICAgICBicmVhazsNCisgICAgICAgIH0NCiAgICAg ICAgIGlmIChxICYmIChxIC0gYnVmKSA8IGJ1Zl9zaXplIC0gMSkNCiAgICAgICAgICAgICAqcSsr ID0gKnA7DQogICAgICAgICBwKys7DQpAQCAtNDYxNywxNSArNDYyNiwxNSBAQCBzdGF0aWMgaW50 IGdldF9wYXJhbV92YWx1ZShjaGFyICpidWYsIGluDQogDQogICAgIHAgPSBzdHI7DQogICAgIGZv cig7Oykgew0KLSAgICAgICAgcCA9IGdldF93b3JkKG9wdGlvbiwgc2l6ZW9mKG9wdGlvbiksIHAp Ow0KKyAgICAgICAgcCA9IGdldF9vcHRfbmFtZShvcHRpb24sIHNpemVvZihvcHRpb24pLCBwKTsN CiAgICAgICAgIGlmICgqcCAhPSAnPScpDQogICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICBw Kys7DQogICAgICAgICBpZiAoIXN0cmNtcCh0YWcsIG9wdGlvbikpIHsNCi0gICAgICAgICAgICAo dm9pZClnZXRfd29yZChidWYsIGJ1Zl9zaXplLCBwKTsNCisgICAgICAgICAgICAodm9pZClnZXRf b3B0X3ZhbHVlKGJ1ZiwgYnVmX3NpemUsIHApOw0KICAgICAgICAgICAgIHJldHVybiBzdHJsZW4o YnVmKTsNCiAgICAgICAgIH0gZWxzZSB7DQotICAgICAgICAgICAgcCA9IGdldF93b3JkKE5VTEws IDAsIHApOw0KKyAgICAgICAgICAgIHAgPSBnZXRfb3B0X3ZhbHVlKE5VTEwsIDAsIHApOw0KICAg ICAgICAgfQ0KICAgICAgICAgaWYgKCpwICE9ICcsJykNCiAgICAgICAgICAgICBicmVhazsNCkBA IC00NjQyLDcgKzQ2NTEsNyBAQCBzdGF0aWMgaW50IGNoZWNrX3BhcmFtcyhjaGFyICpidWYsIGlu dCBiDQogDQogICAgIHAgPSBzdHI7DQogICAgIGZvcig7Oykgew0KLSAgICAgICAgcCA9IGdldF93 b3JkKGJ1ZiwgYnVmX3NpemUsIHApOw0KKyAgICAgICAgcCA9IGdldF9vcHRfbmFtZShidWYsIGJ1 Zl9zaXplLCBwKTsNCiAgICAgICAgIGlmICgqcCAhPSAnPScpDQogICAgICAgICAgICAgcmV0dXJu IC0xOw0KICAgICAgICAgcCsrOw0KQEAgLTQ2NTEsNyArNDY2MCw3IEBAIHN0YXRpYyBpbnQgY2hl Y2tfcGFyYW1zKGNoYXIgKmJ1ZiwgaW50IGINCiAgICAgICAgICAgICAgICAgYnJlYWs7DQogICAg ICAgICBpZiAocGFyYW1zW2ldID09IE5VTEwpDQogICAgICAgICAgICAgcmV0dXJuIC0xOw0KLSAg ICAgICAgcCA9IGdldF93b3JkKE5VTEwsIDAsIHApOw0KKyAgICAgICAgcCA9IGdldF9vcHRfdmFs dWUoTlVMTCwgMCwgcCk7DQogICAgICAgICBpZiAoKnAgIT0gJywnKQ0KICAgICAgICAgICAgIGJy ZWFrOw0KICAgICAgICAgcCsrOw0KQEAgLTQ4MTAsMTUgKzQ4MTksMTUgQEAgdm9pZCBkb19pbmZv X25ldHdvcmsodm9pZCkNCiAgICAgfQ0KIH0NCiANCi0jZGVmaW5lIEhEX0FMSUFTICJmaWxlPVwi JXNcIixpbmRleD0lZCxtZWRpYT1kaXNrIg0KKyNkZWZpbmUgSERfQUxJQVMgImZpbGU9JXMsaW5k ZXg9JWQsbWVkaWE9ZGlzayINCiAjaWZkZWYgVEFSR0VUX1BQQw0KICNkZWZpbmUgQ0RST01fQUxJ QVMgImluZGV4PTEsbWVkaWE9Y2Ryb20iDQogI2Vsc2UNCiAjZGVmaW5lIENEUk9NX0FMSUFTICJp bmRleD0yLG1lZGlhPWNkcm9tIg0KICNlbmRpZg0KICNkZWZpbmUgRkRfQUxJQVMgImluZGV4PSVk LGlmPWZsb3BweSINCi0jZGVmaW5lIFBGTEFTSF9BTElBUyAiZmlsZT1cIiVzXCIsaWY9cGZsYXNo Ig0KLSNkZWZpbmUgTVREX0FMSUFTICJmaWxlPVwiJXNcIixpZj1tdGQiDQorI2RlZmluZSBQRkxB U0hfQUxJQVMgImZpbGU9JXMsaWY9cGZsYXNoIg0KKyNkZWZpbmUgTVREX0FMSUFTICJmaWxlPSVz LGlmPW10ZCINCiAjZGVmaW5lIFNEX0FMSUFTICJpbmRleD0wLGlmPXNkIg0KIA0KIHN0YXRpYyBp bnQgZHJpdmVfYWRkKGNvbnN0IGNoYXIgKmZtdCwgLi4uKQ0KQEAgLTgyNDYsNyArODI1NSw3IEBA IGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCiAJICAgICAgICBkcml2ZV9hZGQoTVRE X0FMSUFTLCBvcHRhcmcpOw0KICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICAgICBj YXNlIFFFTVVfT1BUSU9OX3NkOg0KLSAgICAgICAgICAgICAgICBkcml2ZV9hZGQoImZpbGU9XCIl c1wiLCIgU0RfQUxJQVMsIG9wdGFyZyk7DQorICAgICAgICAgICAgICAgIGRyaXZlX2FkZCgiZmls ZT0lcywiIFNEX0FMSUFTLCBvcHRhcmcpOw0KICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAg ICAgICAgICBjYXNlIFFFTVVfT1BUSU9OX3BmbGFzaDoNCiAJICAgICAgICBkcml2ZV9hZGQoUEZM QVNIX0FMSUFTLCBvcHRhcmcpOw0KQEAgLTgzMTcsNyArODMyNiw3IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikNCiAgICAgICAgICAgICAgICAga2VybmVsX2NtZGxpbmUgPSBvcHRh cmc7DQogICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIGNhc2UgUUVNVV9PUFRJ T05fY2Ryb206DQotCQlkcml2ZV9hZGQoImZpbGU9XCIlc1wiLCIgQ0RST01fQUxJQVMsIG9wdGFy Zyk7DQorCQlkcml2ZV9hZGQoImZpbGU9JXMsIiBDRFJPTV9BTElBUywgb3B0YXJnKTsNCiAgICAg ICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAgY2FzZSBRRU1VX09QVElPTl9ib290Og0K ICAgICAgICAgICAgICAgICBib290X2RldmljZXMgPSBvcHRhcmc7DQpAQCAtODM1Miw3ICs4MzYx LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KICAgICAgICAgICAgICAgICBi cmVhazsNCiAgICAgICAgICAgICBjYXNlIFFFTVVfT1BUSU9OX2ZkYToNCiAgICAgICAgICAgICBj YXNlIFFFTVVfT1BUSU9OX2ZkYjoNCi0JCWRyaXZlX2FkZCgiZmlsZT1cIiVzXCIsIiBGRF9BTElB Uywgb3B0YXJnLA0KKwkJZHJpdmVfYWRkKCJmaWxlPSVzLCIgRkRfQUxJQVMsIG9wdGFyZywNCiAJ CSAgICAgICAgICBwb3B0LT5pbmRleCAtIFFFTVVfT1BUSU9OX2ZkYSk7DQogICAgICAgICAgICAg ICAgIGJyZWFrOw0KICNpZmRlZiBUQVJHRVRfSTM4Ng0KSW5kZXg6IHFlbXUvcWVtdS1kb2MudGV4 aQ0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQ0KLS0tIHFlbXUub3JpZy9xZW11LWRvYy50ZXhpCTIwMDgtMDEtMTAgMTc6 NDg6MDguMDAwMDAwMDAwICswMTAwDQorKysgcWVtdS9xZW11LWRvYy50ZXhpCTIwMDgtMDEtMTAg MTc6NDg6MTAuMDAwMDAwMDAwICswMTAwDQpAQCAtMjM0LDcgKzIzNCw4IEBAIERlZmluZSBhIG5l dyBkcml2ZS4gVmFsaWQgb3B0aW9ucyBhcmU6DQogQHRhYmxlIEBjb2RlDQogQGl0ZW0gZmlsZT1A dmFye2ZpbGV9DQogVGhpcyBvcHRpb24gZGVmaW5lcyB3aGljaCBkaXNrIGltYWdlIChAcHhyZWZ7 ZGlza19pbWFnZXN9KSB0byB1c2Ugd2l0aA0KLXRoaXMgZHJpdmUuDQordGhpcyBkcml2ZS4gSWYg dGhlIGZpbGVuYW1lIGNvbnRhaW5zIGNvbW1hLCB5b3UgbXVzdCBkb3VibGUgaXQNCisoZm9yIGlu c3RhbmNlLCAiZmlsZT1teSwsZmlsZSIgdG8gdXNlIGZpbGUgIm15LGZpbGUiKS4NCiBAaXRlbSBp Zj1AdmFye2ludGVyZmFjZX0NCiBUaGlzIG9wdGlvbiBkZWZpbmVzIG9uIHdoaWNoIHR5cGUgb24g aW50ZXJmYWNlIHRoZSBkcml2ZSBpcyBjb25uZWN0ZWQuDQogQXZhaWxhYmxlIHR5cGVzIGFyZTog aWRlLCBzY3NpLCBzZCwgbXRkLCBmbG9wcHksIHBmbGFzaC4NCi== --=-7jDBT4FkWPing58+AQbr-- --=-3SVbM0Dweaq6E+BOxk3Z Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBHhmBT9Kffa9pFVzwRAsB7AJ43mAxDLedYpNZCtCfaGF5ZVR+bTgCgw9gS kGNajIiF9SifBOpV3LO7jss= =m4h3 -----END PGP SIGNATURE----- --=-3SVbM0Dweaq6E+BOxk3Z--