From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tom Rini Date: Fri, 30 Oct 2020 14:48:12 -0400 Subject: [PATCH v4 17/22] lib: Add getopt In-Reply-To: <20201027235541.706077-18-seanga2@gmail.com> References: <20201027235541.706077-1-seanga2@gmail.com> <20201027235541.706077-18-seanga2@gmail.com> Message-ID: <20201030184812.GQ5340@bill-the-cat> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, Oct 27, 2020 at 07:55:36PM -0400, Sean Anderson wrote: > Some commands can get very unweildy if they have too many positional > arguments. Adding options makes them easier to read, remember, and > understand. > > This implementation of getopt has been taken from barebox, which has had > option support for quite a while. I have made a few modifications to their > version, such as the removal of opterr in favor of a separate getopt_silent > function. In addition, I have moved all global variables into struct > getopt_context. > > The getopt from barebox also re-orders the arguments passed to it so that > non-options are placed last. This allows users to specify options anywhere. > For example, `ls -l foo/ -R` would be re-ordered to `ls -l -R foo/` as > getopt parsed the options. However, this feature conflicts with the const > argv in cmd_tbl->cmd. This was originally added in 54841ab50c ("Make sure > that argv[] argument pointers are not modified."). The reason stated in > that commit is that hush requires argv to stay unmodified. Has this > situation changed? Barebox also uses hush, and does not have this problem. > Perhaps we could use their fix? > > I have assigned maintenance of getopt to Simon Glass, as it is currently > only used by the log command. I would also be fine maintaining it. > > Signed-off-by: Sean Anderson Applied to u-boot/master, thanks! -- Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 659 bytes Desc: not available URL: