From 0563a7a9238843b5c4a0338452999c8c26623198 Mon Sep 17 00:00:00 2001
From: Yang Tse <yangsita@gmail.com>
Date: Mon, 16 Apr 2007 09:01:16 +0000
Subject: [PATCH] ares_getopt() command-line parser function does not belong to
 actual c-ares library. It is just a convinience source code helper function
 for use in example programs adig.c and ahost.c

---
 ares/Makefile.inc           |  2 +-
 ares/Makefile.vc6           | 12 +++++-------
 ares/adig.c                 |  1 +
 ares/ahost.c                |  1 +
 ares/ares.h                 |  1 -
 ares/ares_getopt.c          |  4 +---
 ares/ares_getopt.h          | 37 +++++++++++++++++++++++++++++++++++++
 ares/vc/adig/adig.dsp       |  8 ++++++++
 ares/vc/ahost/ahost.dsp     | 30 +++++++++++++++++++-----------
 ares/vc/areslib/areslib.dsp |  4 ----
 10 files changed, 73 insertions(+), 27 deletions(-)
 create mode 100644 ares/ares_getopt.h

diff --git a/ares/Makefile.inc b/ares/Makefile.inc
index 332f8d57cb..55735e2d66 100644
--- a/ares/Makefile.inc
+++ b/ares/Makefile.inc
@@ -6,7 +6,7 @@ ares_timeout.c ares_destroy.c ares_mkquery.c ares_version.c		\
 ares_expand_name.c ares_parse_a_reply.c windows_port.c			\
 ares_expand_string.c ares_parse_ptr_reply.c ares_parse_aaaa_reply.c	\
 ares_getnameinfo.c inet_net_pton.c bitncmp.c inet_ntop.c		\
-ares_parse_ns_reply.c ares_getopt.c
+ares_parse_ns_reply.c
 
 HHEADERS = ares.h ares_private.h setup.h ares_dns.h ares_version.h          \
            nameser.h inet_net_pton.h inet_ntop.h ares_ipv6.h bitncmp.h      \
diff --git a/ares/Makefile.vc6 b/ares/Makefile.vc6
index 7a43b5453b..7982638aa4 100644
--- a/ares/Makefile.vc6
+++ b/ares/Makefile.vc6
@@ -57,7 +57,6 @@ OBJECTS = $(OBJ_DIR)\ares_fds.obj              \
           $(OBJ_DIR)\ares__read_line.obj       \
           $(OBJ_DIR)\ares_gethostbyname.obj    \
           $(OBJ_DIR)\ares_getnameinfo.obj      \
-          $(OBJ_DIR)\ares_getopt.obj           \
           $(OBJ_DIR)\ares_strerror.obj         \
           $(OBJ_DIR)\ares_cancel.obj           \
           $(OBJ_DIR)\ares_init.obj             \
@@ -122,15 +121,14 @@ $(DEF_FILE): $(OBJECTS) Makefile.VC6
        @echo   ares_inet_pton         >> $@
        @echo   ares_writev            >> $@
        @echo   ares_getnameinfo       >> $@
-       @echo   ares_getopt            >> $@
        @echo   ares_gettimeofday      >> $@
        @echo   ares_parse_aaaa_reply  >> $@
 
-ahost.exe: $(OBJ_DIR) $(OBJ_DIR)\ahost.obj $(OBJ_DIR)\getopt.obj cares_imp.lib
-       link $(LDFLAGS) -out:$@ $(OBJ_DIR)\ahost.obj $(OBJ_DIR)\getopt.obj cares_imp.lib $(EX_LIBS)
+ahost.exe: $(OBJ_DIR) $(OBJ_DIR)\ahost.obj $(OBJ_DIR)\ares_getopt.obj cares_imp.lib
+       link $(LDFLAGS) -out:$@ $(OBJ_DIR)\ahost.obj $(OBJ_DIR)\ares_getopt.obj cares_imp.lib $(EX_LIBS)
 
-adig.exe: $(OBJ_DIR) $(OBJ_DIR)\adig.obj $(OBJ_DIR)\getopt.obj cares_imp.lib
-       link $(LDFLAGS) -out:$@ $(OBJ_DIR)\adig.obj $(OBJ_DIR)\getopt.obj cares_imp.lib $(EX_LIBS)
+adig.exe: $(OBJ_DIR) $(OBJ_DIR)\adig.obj $(OBJ_DIR)\ares_getopt.obj cares_imp.lib
+       link $(LDFLAGS) -out:$@ $(OBJ_DIR)\adig.obj $(OBJ_DIR)\ares_getopt.obj cares_imp.lib $(EX_LIBS)
 
 clean:
        - del $(OBJ_DIR)\*.obj *.ilk *.pdb *.pbt *.pbi *.pbo *._xe *.map
@@ -232,4 +230,4 @@ $(OBJ_DIR)\bitncmp.obj: bitncmp.c bitncmp.h
 $(OBJ_DIR)\inet_ntop.obj: inet_ntop.c setup.h setup_once.h nameser.h           \
   ares_ipv6.h inet_ntop.h
 
-$(OBJ_DIR)\ares_getopt.obj: ares_getopt.c setup.h setup_once.h ares.h
+$(OBJ_DIR)\ares_getopt.obj: ares_getopt.c ares_getopt.h
diff --git a/ares/adig.c b/ares/adig.c
index 446d55bc53..3a5c63efd3 100644
--- a/ares/adig.c
+++ b/ares/adig.c
@@ -42,6 +42,7 @@
 #include "ares.h"
 #include "ares_dns.h"
 #include "inet_ntop.h"
+#include "ares_getopt.h"
 
 #ifdef WATT32
 #undef WIN32  /* Redefined in MingW headers */
diff --git a/ares/ahost.c b/ares/ahost.c
index d6a227f67e..dfb51a9316 100644
--- a/ares/ahost.c
+++ b/ares/ahost.c
@@ -38,6 +38,7 @@
 #include "ares_dns.h"
 #include "inet_ntop.h"
 #include "inet_net_pton.h"
+#include "ares_getopt.h"
 
 #ifndef optind
 extern int   optind;
diff --git a/ares/ares.h b/ares/ares.h
index 18d3a724c9..83a1c8e462 100644
--- a/ares/ares.h
+++ b/ares/ares.h
@@ -218,7 +218,6 @@ int ares_parse_ns_reply(const unsigned char *abuf, int alen,
 void ares_free_string(void *str);
 void ares_free_hostent(struct hostent *host);
 const char *ares_strerror(int code);
-int ares_getopt(int nargc, char * const nargv[], const char *ostr);
 
 #ifdef  __cplusplus
 }
diff --git a/ares/ares_getopt.c b/ares/ares_getopt.c
index a14b6da30e..c3e81fc407 100644
--- a/ares/ares_getopt.c
+++ b/ares/ares_getopt.c
@@ -44,12 +44,10 @@
  * #endif
  */
 
-#include "setup.h"
-
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "ares.h"
+#include "ares_getopt.h"
 
 /* declarations to provide consistent linkage */
 extern char *optarg;
diff --git a/ares/ares_getopt.h b/ares/ares_getopt.h
new file mode 100644
index 0000000000..e15dc6bfce
--- /dev/null
+++ b/ares/ares_getopt.h
@@ -0,0 +1,37 @@
+#ifndef ARES_GETOPT_H
+#define ARES_GETOPT_H
+
+/*
+ * Copyright (c) 1987-2001 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * A. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * B. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * C. Neither the names of the copyright holders nor the names of its
+ *    contributors may be used to endorse or promote products derived from this
+ *    software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+int ares_getopt(int nargc, char * const nargv[], const char *ostr);
+
+
+#endif /* ARES_GETOPT_H */
diff --git a/ares/vc/adig/adig.dsp b/ares/vc/adig/adig.dsp
index 38d6d7de5c..21cabd578a 100644
--- a/ares/vc/adig/adig.dsp
+++ b/ares/vc/adig/adig.dsp
@@ -89,10 +89,18 @@ LINK32=link.exe
 
 SOURCE=..\..\adig.c
 # End Source File
+# Begin Source File
+
+SOURCE=..\..\ares_getopt.c
+# End Source File
 # End Group
 # Begin Group "Header Files"
 
 # PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\ares_getopt.h
+# End Source File
 # End Group
 # Begin Group "Resource Files"
 
diff --git a/ares/vc/ahost/ahost.dsp b/ares/vc/ahost/ahost.dsp
index 772c47682d..cefccc2fb0 100644
--- a/ares/vc/ahost/ahost.dsp
+++ b/ares/vc/ahost/ahost.dsp
@@ -7,19 +7,19 @@
 CFG=ahost - Win32 Debug
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
-!MESSAGE
+!MESSAGE 
 !MESSAGE NMAKE /f "ahost.mak".
-!MESSAGE
+!MESSAGE 
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
+!MESSAGE 
 !MESSAGE NMAKE /f "ahost.mak" CFG="ahost - Win32 Debug"
-!MESSAGE
+!MESSAGE 
 !MESSAGE Possible choices for configuration are:
-!MESSAGE
+!MESSAGE 
 !MESSAGE "ahost - Win32 Release" (based on "Win32 (x86) Console Application")
 !MESSAGE "ahost - Win32 Debug" (based on "Win32 (x86) Console Application")
-!MESSAGE
+!MESSAGE 
 
 # Begin Project
 # PROP AllowPerConfigDependencies 0
@@ -48,7 +48,7 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
 # ADD LINK32 wsock32.lib areslib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"..\areslib\Release"
 
 !ELSEIF  "$(CFG)" == "ahost - Win32 Debug"
@@ -63,18 +63,18 @@ LINK32=link.exe
 # PROP Output_Dir "Debug"
 # PROP Intermediate_Dir "Debug"
 # PROP Target_Dir ""
-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ  /c
-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ  /c
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
 # ADD LINK32 wsock32.lib areslib.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\areslib\Debug"
 
-!ENDIF
+!ENDIF 
 
 # Begin Target
 
@@ -87,10 +87,18 @@ LINK32=link.exe
 
 SOURCE=..\..\ahost.c
 # End Source File
+# Begin Source File
+
+SOURCE=..\..\ares_getopt.c
+# End Source File
 # End Group
 # Begin Group "Header Files"
 
 # PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\..\ares_getopt.h
+# End Source File
 # End Group
 # Begin Group "Resource Files"
 
diff --git a/ares/vc/areslib/areslib.dsp b/ares/vc/areslib/areslib.dsp
index 9e9d9bdada..05061afff3 100644
--- a/ares/vc/areslib/areslib.dsp
+++ b/ares/vc/areslib/areslib.dsp
@@ -129,10 +129,6 @@ SOURCE=..\..\ares_gethostbyname.c
 # End Source File
 # Begin Source File
 
-SOURCE=..\..\ares_getopt.c
-# End Source File
-# Begin Source File
-
 SOURCE=..\..\ares_getsock.c
 # End Source File
 # Begin Source File
-- 
GitLab