[GetOpt]
#####################

Origin:
   [Lattera FreeBSD]
   [https://github.com/lattera/freebsd/blob/master/lib/libc/stdlib/getopt.c]

Status:
   [So far Zephyr samples were using getopt implementation from: argtable3.c.]

Purpose:
   [Shell users would like to parse options passed to the command handler.]

Description:
   [This library is going to be used by the shell module. Some shell users
   are not satisfied with subcommands alone and need to use the options for
   commands as well. A library is needed that allows the developer to parse
   the arguments string, looking for supported options. Typically, this task
   is accomplished by the getopt function.

   For this purpose I decided to port the getopt library available
   in the FreeBSD project. I had to modify it so that it could be used
   by all instances of the shell at the same time.

   Originally this function was using global variables which were defining
   its state. In my implementation I put those variables in a structure
   and a pointer to that structure is passed as an additional parameter
   to getopt function. In proposed implementation each shell backend has its
   own getopt function state structure which it uses.

   This module is intended to be used inside the shell command handler
   by the abstraction layer "SHELL_GETOPT". For example:
   while ((char c = shell_getopt(shell, argc, argv, "abhc:")) != -1) {
      /* some code */
   }
   ]

Dependencies:
   [This package does not depend on any other component.

   Zephyr project will only need this component if the user configures a shell
   module: SHELL_GETOPT.]

URL:
   [https://github.com/lattera/freebsd]

commit:
   [324e4c082c14aebf00f8dbee0fb7ad285393756a]

Maintained-by:
   [External]

License:
   [BSD 3-Clause "New" or "Revised" License]

License Link:
   [BSD 3-Clause used in getopt: https://spdx.org/licenses/BSD-3-Clause.html]
   [Project license: https://github.com/lattera/freebsd/blob/master/COPYRIGHT]
