From: SourceForge.net <no...@so...> - 2007-06-06 13:48:23
|
Patches item #1732057, was opened at 2007-06-06 13:48 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: runtime Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Keith Marshall (keithmarshall) Assigned to: Keith Marshall (keithmarshall) Summary: Add getopt_long_only to libmingwex.a Initial Comment: On GNU/Linux, I usually prefer getopt_long_only() to getopt_long(). This is a standard function in glibc on Linux, and I miss it when porting to Woe32 using MinGW. After thinking about doing it for some time, I finally got around to actually investigating what would be required to add this to MinGW's existing NetBSD based getopt_long() implementation; turns out that it isn't too difficult to provide something very close. (Caveat: as I've implemented it, getopt_long_only() will always select a *short* option, if one is specified to match the initial character of a long option; this is the reverse of the behaviour described in the Linux manpage. I don't think this is a serious problem, with a sane design; simply avoid any ambiguously defined short option, and there is no problem). Any comments, before I commit the attached patch? ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 |
From: SourceForge.net <no...@so...> - 2008-06-29 00:21:24
|
Patches item #1732057, was opened at 2007-06-06 13:48 Message generated for change (Comment added) made by keithmarshall You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: runtime Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Keith Marshall (keithmarshall) Assigned to: Keith Marshall (keithmarshall) Summary: Add getopt_long_only to libmingwex.a Initial Comment: On GNU/Linux, I usually prefer getopt_long_only() to getopt_long(). This is a standard function in glibc on Linux, and I miss it when porting to Woe32 using MinGW. After thinking about doing it for some time, I finally got around to actually investigating what would be required to add this to MinGW's existing NetBSD based getopt_long() implementation; turns out that it isn't too difficult to provide something very close. (Caveat: as I've implemented it, getopt_long_only() will always select a *short* option, if one is specified to match the initial character of a long option; this is the reverse of the behaviour described in the Linux manpage. I don't think this is a serious problem, with a sane design; simply avoid any ambiguously defined short option, and there is no problem). Any comments, before I commit the attached patch? ---------------------------------------------------------------------- >Comment By: Keith Marshall (keithmarshall) Date: 2008-06-29 00:21 Message: Logged In: YES user_id=823908 Originator: YES Ok, please disregard the previously attached patch. I was never completely satisfied with the way in which its behaviour differed from that documented for the GNU implementation, so I've reimplemented the whole thing from scratch. I now propose replacing the current mingwex implementation of getopt with the version to be found at http://mingw.cvs.sourceforge.net/mingw/catgets/repl/getopt.c?view=log, accompanied by the header at http://mingw.cvs.sourceforge.net/mingw/catgets/repl/include/getopt.h?view=log This implementation delivers the capabilities of getopt(3), including both the getopt_long() and getopt_long_only() variants, with behaviour as described in the GNU/Linux manpage, (which may be found at http://www.penguintutor.com/man/man.php?topic=getopt§ion=3), with two omissions:-- - I have not included any support for the anomalous handling of -W, primarily because I cannot visualise any practical use for it, and I consider it to be inspired by a misinterpretation of an statement in the POSIX-2 specification, only loosely related to getopt(3), and taken out of context. - I do not assign any significance to a _<PID>_GNU_nonoption_argv_flags_ environment variable; this would seem to have little, if any, relevance for MinGW in any case. Neither of these features is supported by the current mingwex implementation. In addition to these two GNU specific omissions, I have declined to include support for the brain damaged BSD `optreset' concept. This is not to suggest that resetting of the option scan is unsupported; it is, but in the much more natural and portable manner of reassigning `optind'. Furthermore, I have made no attempt to support nefarious attempts to skip arguments, by incrementing `optind' outside of getopt's control. I don't know if that capability, which is documented in BSD manpages, is supported by the current mingwex implementation, but IMO it is even more brain damaged than the `optreset' concept, and most definitely should not be encouraged. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 |
From: SourceForge.net <no...@so...> - 2008-08-27 13:32:48
|
Patches item #1732057, was opened at 2007-06-06 13:48 Message generated for change (Comment added) made by keithmarshall You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: runtime Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Keith Marshall (keithmarshall) Assigned to: Keith Marshall (keithmarshall) Summary: Add getopt_long_only to libmingwex.a Initial Comment: On GNU/Linux, I usually prefer getopt_long_only() to getopt_long(). This is a standard function in glibc on Linux, and I miss it when porting to Woe32 using MinGW. After thinking about doing it for some time, I finally got around to actually investigating what would be required to add this to MinGW's existing NetBSD based getopt_long() implementation; turns out that it isn't too difficult to provide something very close. (Caveat: as I've implemented it, getopt_long_only() will always select a *short* option, if one is specified to match the initial character of a long option; this is the reverse of the behaviour described in the Linux manpage. I don't think this is a serious problem, with a sane design; simply avoid any ambiguously defined short option, and there is no problem). Any comments, before I commit the attached patch? ---------------------------------------------------------------------- >Comment By: Keith Marshall (keithmarshall) Date: 2008-08-27 13:32 Message: Logged In: YES user_id=823908 Originator: YES Guys, Chris is chomping at the bit, waiting to get new releases out of the door! He has set a cut-off date of 29-Aug for w32api patches. Unless you give me a compelling reason not to, within this same time frame, then I will replace the existing getopt() implementation this weekend, to allow him to also progress a new mingw-runtime release, which includes this extended capability. ---------------------------------------------------------------------- Comment By: Keith Marshall (keithmarshall) Date: 2008-06-29 00:21 Message: Logged In: YES user_id=823908 Originator: YES Ok, please disregard the previously attached patch. I was never completely satisfied with the way in which its behaviour differed from that documented for the GNU implementation, so I've reimplemented the whole thing from scratch. I now propose replacing the current mingwex implementation of getopt with the version to be found at http://mingw.cvs.sourceforge.net/mingw/catgets/repl/getopt.c?view=log, accompanied by the header at http://mingw.cvs.sourceforge.net/mingw/catgets/repl/include/getopt.h?view=log This implementation delivers the capabilities of getopt(3), including both the getopt_long() and getopt_long_only() variants, with behaviour as described in the GNU/Linux manpage, (which may be found at http://www.penguintutor.com/man/man.php?topic=getopt§ion=3), with two omissions:-- - I have not included any support for the anomalous handling of -W, primarily because I cannot visualise any practical use for it, and I consider it to be inspired by a misinterpretation of an statement in the POSIX-2 specification, only loosely related to getopt(3), and taken out of context. - I do not assign any significance to a _<PID>_GNU_nonoption_argv_flags_ environment variable; this would seem to have little, if any, relevance for MinGW in any case. Neither of these features is supported by the current mingwex implementation. In addition to these two GNU specific omissions, I have declined to include support for the brain damaged BSD `optreset' concept. This is not to suggest that resetting of the option scan is unsupported; it is, but in the much more natural and portable manner of reassigning `optind'. Furthermore, I have made no attempt to support nefarious attempts to skip arguments, by incrementing `optind' outside of getopt's control. I don't know if that capability, which is documented in BSD manpages, is supported by the current mingwex implementation, but IMO it is even more brain damaged than the `optreset' concept, and most definitely should not be encouraged. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 |
From: SourceForge.net <no...@so...> - 2008-08-27 13:59:38
|
Patches item #1732057, was opened at 2007-06-06 09:48 Message generated for change (Comment added) made by earnie You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: runtime Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Keith Marshall (keithmarshall) Assigned to: Keith Marshall (keithmarshall) Summary: Add getopt_long_only to libmingwex.a Initial Comment: On GNU/Linux, I usually prefer getopt_long_only() to getopt_long(). This is a standard function in glibc on Linux, and I miss it when porting to Woe32 using MinGW. After thinking about doing it for some time, I finally got around to actually investigating what would be required to add this to MinGW's existing NetBSD based getopt_long() implementation; turns out that it isn't too difficult to provide something very close. (Caveat: as I've implemented it, getopt_long_only() will always select a *short* option, if one is specified to match the initial character of a long option; this is the reverse of the behaviour described in the Linux manpage. I don't think this is a serious problem, with a sane design; simply avoid any ambiguously defined short option, and there is no problem). Any comments, before I commit the attached patch? ---------------------------------------------------------------------- >Comment By: Earnie Boyd (earnie) Date: 2008-08-27 09:59 Message: Logged In: YES user_id=15438 Originator: NO I have no reason to object. ---------------------------------------------------------------------- Comment By: Keith Marshall (keithmarshall) Date: 2008-08-27 09:32 Message: Logged In: YES user_id=823908 Originator: YES Guys, Chris is chomping at the bit, waiting to get new releases out of the door! He has set a cut-off date of 29-Aug for w32api patches. Unless you give me a compelling reason not to, within this same time frame, then I will replace the existing getopt() implementation this weekend, to allow him to also progress a new mingw-runtime release, which includes this extended capability. ---------------------------------------------------------------------- Comment By: Keith Marshall (keithmarshall) Date: 2008-06-28 20:21 Message: Logged In: YES user_id=823908 Originator: YES Ok, please disregard the previously attached patch. I was never completely satisfied with the way in which its behaviour differed from that documented for the GNU implementation, so I've reimplemented the whole thing from scratch. I now propose replacing the current mingwex implementation of getopt with the version to be found at http://mingw.cvs.sourceforge.net/mingw/catgets/repl/getopt.c?view=log, accompanied by the header at http://mingw.cvs.sourceforge.net/mingw/catgets/repl/include/getopt.h?view=log This implementation delivers the capabilities of getopt(3), including both the getopt_long() and getopt_long_only() variants, with behaviour as described in the GNU/Linux manpage, (which may be found at http://www.penguintutor.com/man/man.php?topic=getopt§ion=3), with two omissions:-- - I have not included any support for the anomalous handling of -W, primarily because I cannot visualise any practical use for it, and I consider it to be inspired by a misinterpretation of an statement in the POSIX-2 specification, only loosely related to getopt(3), and taken out of context. - I do not assign any significance to a _<PID>_GNU_nonoption_argv_flags_ environment variable; this would seem to have little, if any, relevance for MinGW in any case. Neither of these features is supported by the current mingwex implementation. In addition to these two GNU specific omissions, I have declined to include support for the brain damaged BSD `optreset' concept. This is not to suggest that resetting of the option scan is unsupported; it is, but in the much more natural and portable manner of reassigning `optind'. Furthermore, I have made no attempt to support nefarious attempts to skip arguments, by incrementing `optind' outside of getopt's control. I don't know if that capability, which is documented in BSD manpages, is supported by the current mingwex implementation, but IMO it is even more brain damaged than the `optreset' concept, and most definitely should not be encouraged. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 |
From: SourceForge.net <no...@so...> - 2008-08-31 22:44:06
|
Patches item #1732057, was opened at 2007-06-06 13:48 Message generated for change (Comment added) made by keithmarshall You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: runtime >Group: Patch committed >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Keith Marshall (keithmarshall) Assigned to: Keith Marshall (keithmarshall) Summary: Add getopt_long_only to libmingwex.a Initial Comment: On GNU/Linux, I usually prefer getopt_long_only() to getopt_long(). This is a standard function in glibc on Linux, and I miss it when porting to Woe32 using MinGW. After thinking about doing it for some time, I finally got around to actually investigating what would be required to add this to MinGW's existing NetBSD based getopt_long() implementation; turns out that it isn't too difficult to provide something very close. (Caveat: as I've implemented it, getopt_long_only() will always select a *short* option, if one is specified to match the initial character of a long option; this is the reverse of the behaviour described in the Linux manpage. I don't think this is a serious problem, with a sane design; simply avoid any ambiguously defined short option, and there is no problem). Any comments, before I commit the attached patch? ---------------------------------------------------------------------- >Comment By: Keith Marshall (keithmarshall) Date: 2008-08-31 22:44 Message: Logged In: YES user_id=823908 Originator: YES Applied. ---------------------------------------------------------------------- Comment By: Earnie Boyd (earnie) Date: 2008-08-27 13:59 Message: Logged In: YES user_id=15438 Originator: NO I have no reason to object. ---------------------------------------------------------------------- Comment By: Keith Marshall (keithmarshall) Date: 2008-08-27 13:32 Message: Logged In: YES user_id=823908 Originator: YES Guys, Chris is chomping at the bit, waiting to get new releases out of the door! He has set a cut-off date of 29-Aug for w32api patches. Unless you give me a compelling reason not to, within this same time frame, then I will replace the existing getopt() implementation this weekend, to allow him to also progress a new mingw-runtime release, which includes this extended capability. ---------------------------------------------------------------------- Comment By: Keith Marshall (keithmarshall) Date: 2008-06-29 00:21 Message: Logged In: YES user_id=823908 Originator: YES Ok, please disregard the previously attached patch. I was never completely satisfied with the way in which its behaviour differed from that documented for the GNU implementation, so I've reimplemented the whole thing from scratch. I now propose replacing the current mingwex implementation of getopt with the version to be found at http://mingw.cvs.sourceforge.net/mingw/catgets/repl/getopt.c?view=log, accompanied by the header at http://mingw.cvs.sourceforge.net/mingw/catgets/repl/include/getopt.h?view=log This implementation delivers the capabilities of getopt(3), including both the getopt_long() and getopt_long_only() variants, with behaviour as described in the GNU/Linux manpage, (which may be found at http://www.penguintutor.com/man/man.php?topic=getopt§ion=3), with two omissions:-- - I have not included any support for the anomalous handling of -W, primarily because I cannot visualise any practical use for it, and I consider it to be inspired by a misinterpretation of an statement in the POSIX-2 specification, only loosely related to getopt(3), and taken out of context. - I do not assign any significance to a _<PID>_GNU_nonoption_argv_flags_ environment variable; this would seem to have little, if any, relevance for MinGW in any case. Neither of these features is supported by the current mingwex implementation. In addition to these two GNU specific omissions, I have declined to include support for the brain damaged BSD `optreset' concept. This is not to suggest that resetting of the option scan is unsupported; it is, but in the much more natural and portable manner of reassigning `optind'. Furthermore, I have made no attempt to support nefarious attempts to skip arguments, by incrementing `optind' outside of getopt's control. I don't know if that capability, which is documented in BSD manpages, is supported by the current mingwex implementation, but IMO it is even more brain damaged than the `optreset' concept, and most definitely should not be encouraged. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=1732057&group_id=2435 |