From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/2035 Path: news.gmane.org!not-for-mail From: =?ISO-8859-2?Q?Daniel_Cegie=B3ka?= Newsgroups: gmane.linux.lib.musl.general Subject: Re: better compatibility with bsd getopt() Date: Sun, 30 Sep 2012 23:32:44 +0200 Message-ID: References: <5068B362.5070408@barfooze.de> <20120930210013.GO254@brightrain.aerifal.cx> <20120930211329.GP254@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=e89a8ff253fec838b604caf208ec X-Trace: ger.gmane.org 1349040799 29571 80.91.229.3 (30 Sep 2012 21:33:19 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 30 Sep 2012 21:33:19 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-2036-gllmg-musl=m.gmane.org@lists.openwall.com Sun Sep 30 23:33:25 2012 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1TIR8c-0002jn-Om for gllmg-musl@plane.gmane.org; Sun, 30 Sep 2012 23:33:22 +0200 Original-Received: (qmail 20319 invoked by uid 550); 30 Sep 2012 21:33:17 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 20311 invoked from network); 30 Sep 2012 21:33:17 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=OiqT4bgf/PcFh0b0JlOepg3vwSd2XxUlB5x6CIYp0Bc=; b=aK4hycDXharC3YjAYsIoco7TvXB6krJgoRiHZQEP7hupcQYMJ0LHBJvtOmdHB3wMl0 aNYud+cYANRlVknId8OykzSTResRGOnlAGaeDYrI5q3OTESvmB6hvNEA6xucMxM+kHGX l0ZQrLHl3CK278DPdCaxHyyhyjxKKpjtSLrfd+iX4b/El6aBZobJ4SLpc5LRQmEFnbzf 0zN93Ajgpi/1e43bWU9Y1uh4n6uP1FRN5AxIeocgx7JFgEml0gIfSFozVLZZpWeOlWob iTh1EfChWNCtll3Qfe7V4cu3gAbIOd3u5iI4MKFJGHS6l2MMe5fBzxyiyy0RaIqScBNh DcTw== In-Reply-To: <20120930211329.GP254@brightrain.aerifal.cx> Xref: news.gmane.org gmane.linux.lib.musl.general:2035 Archived-At: --e89a8ff253fec838b604caf208ec Content-Type: text/plain; charset=ISO-8859-1 2012/9/30 Rich Felker : >> OpenBSD solves gnu reset option in this way: >> >> /* >> * XXX Some GNU programs (like cvs) set optind to 0 instead of >> * XXX using optreset. Work around this braindamage. >> */ >> if (optind == 0) >> optind = optreset = 1; > > Except the BSD way is the braindamaged one because it violates the > namespace. The GNU way simply defines something that was previously > undefined by the standard without affecting the namespace. > > If needed, I think it's possible to support both, with some weak > symbol hacks... sample solution for gnu/bsd getopt() - of course this patch needs this weak symbol hacks... Daniel --e89a8ff253fec838b604caf208ec Content-Type: application/octet-stream; name="musl_gnu_bsd_getopt_reset.diff" Content-Disposition: attachment; filename="musl_gnu_bsd_getopt_reset.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h7qnrccv0 ZGlmZiAtdXJOIG11c2wub3JpZy9pbmNsdWRlL2dldG9wdC5oIG11c2wvaW5jbHVkZS9nZXRvcHQu aAotLS0gbXVzbC5vcmlnL2luY2x1ZGUvZ2V0b3B0LmgJU3VuIFNlcCAzMCAyMToyMDozOCAyMDEy CisrKyBtdXNsL2luY2x1ZGUvZ2V0b3B0LmgJU3VuIFNlcCAzMCAyMToyMzoxNCAyMDEyCkBAIC03 LDcgKzcsNyBAQAogCiBpbnQgZ2V0b3B0KGludCwgY2hhciAqIGNvbnN0IFtdLCBjb25zdCBjaGFy ICopOwogZXh0ZXJuIGNoYXIgKm9wdGFyZzsKLWV4dGVybiBpbnQgb3B0aW5kLCBvcHRlcnIsIG9w dG9wdDsKK2V4dGVybiBpbnQgb3B0aW5kLCBvcHRlcnIsIG9wdG9wdCwgb3B0cmVzZXQ7CiAKIHN0 cnVjdCBvcHRpb24KIHsKZGlmZiAtdXJOIG11c2wub3JpZy9zcmMvbWlzYy9nZXRvcHQuYyBtdXNs L3NyYy9taXNjL2dldG9wdC5jCi0tLSBtdXNsLm9yaWcvc3JjL21pc2MvZ2V0b3B0LmMJU3VuIFNl cCAzMCAyMToyMDozOCAyMDEyCisrKyBtdXNsL3NyYy9taXNjL2dldG9wdC5jCVN1biBTZXAgMzAg MjE6MjI6NTcgMjAxMgpAQCAtNSw3ICs1LDcgQEAKICNpbmNsdWRlIDxzdGRsaWIuaD4KIAogY2hh ciAqb3B0YXJnOwotaW50IG9wdGluZD0xLCBvcHRlcnI9MSwgb3B0b3B0OworaW50IG9wdGluZD0x LCBvcHRlcnI9MSwgb3B0b3B0LCBvcHRyZXNldD0wOwogc3RhdGljIGludCBvcHRwb3M7CiAKIGlu dCBnZXRvcHQoaW50IGFyZ2MsIGNoYXIgKiBjb25zdCBhcmd2W10sIGNvbnN0IGNoYXIgKm9wdHN0 cmluZykKQEAgLTE1LDYgKzE1LDEyIEBACiAJaW50IGssIGw7CiAJY2hhciAqb3B0Y2hhcjsKIAor CWlmICghb3B0aW5kKQorCQlvcHRpbmQgPSBvcHRyZXNldCA9IDE7CisJaWYgKG9wdHJlc2V0KSB7 CisJCW9wdHJlc2V0ID0gMDsKKwkJb3B0aW5kID0gMTsKKwl9CiAJaWYgKG9wdGluZCA+PSBhcmdj IHx8ICFhcmd2W29wdGluZF0gfHwgYXJndltvcHRpbmRdWzBdICE9ICctJyB8fCAhYXJndltvcHRp bmRdWzFdKQogCQlyZXR1cm4gLTE7CiAJaWYgKGFyZ3Zbb3B0aW5kXVsxXSA9PSAnLScgJiYgIWFy Z3Zbb3B0aW5kXVsyXSkK --e89a8ff253fec838b604caf208ec--