[krbdev.mit.edu #8684] git commit

"Greg Hudson via RT" <[email protected]>
Newsgroups gmane.comp.encryption.kerberos.bugs
Message-ID <[email protected]>
Fix option parsing on Windows

Commit 8f9ade8ec50cde1176411085294f85ecfb2820a4 (ticket 8391) moved
the built-in getopt() and getopt_long() implementations from a static
library in util/windows to util/support, where (on Windows) it is
built into k5sprt32.dll or k5sprt64.dll.  The getopt() interface uses
global variables opterr, optind, optopt, and optarg, each renamed via
macro to have a k5_ prefix when we use the built-in implementation.
Data objects exported from DLLs need special handling in Windows; they
must be marked as DATA in the DLL .def file, and they must be declared
with "__declspec(dllimport)" in calling code.  Without this handling,
optind begins with a garbage value and getopt_long() returns -1
immediately, so client programs always behave as if they have no
arguments.

Stop unnecessarily declaring optind and optarg in client programs.
Declare the getopt() global variables with __declspec(dllimport) on
Windows, except when compiling getopt.c itself.  When creating
libkrb5support.exports on Windows (this file is later used by
lib/Makefile.in to create k5sprt32.def), add a DATA tag to the data
objects.

(cherry picked from commit 63246cf3513a0e8bdfc734db985af14c8c5170c5)

https://github.com/krb5/krb5/commit/bbd9f7e7237d27ff7bad6e6587b35aae882c3125
Author: Greg Hudson <[email protected]>
Commit: bbd9f7e7237d27ff7bad6e6587b35aae882c3125
Branch: krb5-1.16
 src/clients/kdestroy/kdestroy.c |    3 ---
 src/clients/klist/klist.c       |    2 --
 src/clients/kswitch/kswitch.c   |    3 ---
 src/clients/kvno/kvno.c         |    3 ---
 src/include/k5-platform.h       |   14 ++++++++++----
 src/util/support/Makefile.in    |    4 +++-
 src/util/support/getopt.c       |    2 ++
 7 files changed, 15 insertions(+), 16 deletions(-)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.