parent
5adc3e2565
commit
a4d0de4156
@ -1,2 +1,3 @@
|
|||||||
/qpid-proton-c-0.3.tar.gz
|
/qpid-proton-c-0.3.tar.gz
|
||||||
/qpid-proton-0.4.tar.gz
|
/qpid-proton-0.4.tar.gz
|
||||||
|
/qpid-proton-0.5.tar.gz
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
From 4be173d6a63b41326b341c3228b2c1074359c511 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Darryl L. Pierce" <mcpierce@gmail.com>
|
|
||||||
Date: Mon, 8 Apr 2013 17:06:22 -0400
|
|
||||||
Subject: [PATCH 1/3] NO-JIRA: Fixed RHEL5 build errors.
|
|
||||||
|
|
||||||
Set a value for err in pn_data_appendn().
|
|
||||||
---
|
|
||||||
proton-c/bindings/python/proton.py | 2 +-
|
|
||||||
proton-c/src/codec/codec.c | 2 +-
|
|
||||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/proton-c/bindings/python/proton.py b/proton-c/bindings/python/proton.py
|
|
||||||
index d76f931..492b015 100644
|
|
||||||
--- a/proton-c/bindings/python/proton.py
|
|
||||||
+++ b/proton-c/bindings/python/proton.py
|
|
||||||
@@ -30,7 +30,7 @@ The proton APIs consist of the following classes:
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
-from cproton import *
|
|
||||||
+from _cproton import *
|
|
||||||
try:
|
|
||||||
import uuid
|
|
||||||
except ImportError:
|
|
||||||
diff --git a/proton-c/src/codec/codec.c b/proton-c/src/codec/codec.c
|
|
||||||
index c76c9dd..51dfe85 100644
|
|
||||||
--- a/proton-c/src/codec/codec.c
|
|
||||||
+++ b/proton-c/src/codec/codec.c
|
|
||||||
@@ -2970,7 +2970,7 @@ int pn_data_append(pn_data_t *data, pn_data_t *src)
|
|
||||||
|
|
||||||
int pn_data_appendn(pn_data_t *data, pn_data_t *src, int limit)
|
|
||||||
{
|
|
||||||
- int err;
|
|
||||||
+ int err = 0;
|
|
||||||
int level = 0, count = 0;
|
|
||||||
bool stop = false;
|
|
||||||
pn_point_t point = pn_data_point(src);
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
|||||||
|
From 47a7169e007de34d720a50f415b70006664634f6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: mcpierce <mcpierce@13f79535-47bb-0310-9956-ffa450edef68>
|
||||||
|
Date: Mon, 26 Aug 2013 20:07:22 +0000
|
||||||
|
Subject: [PATCH] PROTON-412: Fix the include and lib directories in
|
||||||
|
libqpid-proton.pc
|
||||||
|
|
||||||
|
If the paths aren't passed in from the command line as absolute then
|
||||||
|
prepends them with CMAKE_INSTALL_PREFIX before generated the package
|
||||||
|
config file.
|
||||||
|
|
||||||
|
git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1517673 13f79535-47bb-0310-9956-ffa450edef68
|
||||||
|
---
|
||||||
|
proton-c/CMakeLists.txt | 21 ++++++++++++++++-----
|
||||||
|
1 file changed, 16 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/proton-c/CMakeLists.txt b/proton-c/CMakeLists.txt
|
||||||
|
index dacc9f8..42211ba 100644
|
||||||
|
--- a/proton-c/CMakeLists.txt
|
||||||
|
+++ b/proton-c/CMakeLists.txt
|
||||||
|
@@ -331,11 +331,22 @@ install (FILES ${CMAKE_CURRENT_BINARY_DIR}/include/proton/version.h
|
||||||
|
DESTINATION ${INCLUDE_INSTALL_DIR}/proton)
|
||||||
|
|
||||||
|
# Pkg config file
|
||||||
|
-# Compatible variable names used in the pkg config files also for autoconf
|
||||||
|
-get_filename_component (PREFIX ${CMAKE_INSTALL_PREFIX} ABSOLUTE)
|
||||||
|
-get_filename_component (EXEC_PREFIX ${CMAKE_INSTALL_PREFIX} ABSOLUTE)
|
||||||
|
-get_filename_component (LIBDIR ${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR} ABSOLUTE)
|
||||||
|
-get_filename_component (INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/${INCLUDE_INSTALL_DIR} ABSOLUTE)
|
||||||
|
+# make sure the install prefix is absolute
|
||||||
|
+set(INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
|
||||||
|
+
|
||||||
|
+macro (pn_pkgconfig_dir NAME VALUE PREFIX)
|
||||||
|
+ if(IS_ABSOLUTE ${VALUE})
|
||||||
|
+ set(${NAME} "${VALUE}")
|
||||||
|
+ else(IS_ABSOLUTE ${VALUE})
|
||||||
|
+ set(${NAME} "${PREFIX}/${VALUE}")
|
||||||
|
+ endif(IS_ABSOLUTE ${VALUE})
|
||||||
|
+ get_filename_component(${NAME} ${${NAME}} ABSOLUTE)
|
||||||
|
+endmacro(pn_pkgconfig_dir)
|
||||||
|
+
|
||||||
|
+pn_pkgconfig_dir(PREFIX ${INSTALL_PREFIX} ${INSTALL_PREFIX})
|
||||||
|
+pn_pkgconfig_dir(EXEC_PREFIX ${INSTALL_PREFIX} ${INSTALL_PREFIX})
|
||||||
|
+pn_pkgconfig_dir(LIBDIR ${LIB_INSTALL_DIR} ${INSTALL_PREFIX})
|
||||||
|
+pn_pkgconfig_dir(INCLUDEDIR ${INCLUDE_INSTALL_DIR} ${INSTALL_PREFIX})
|
||||||
|
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/libqpid-proton.pc.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/libqpid-proton.pc @ONLY)
|
||||||
|
--
|
||||||
|
1.8.3.1
|
||||||
|
|
@ -1,994 +0,0 @@
|
|||||||
From c519f03332764cba2c231560dbd43c9028fb3d09 Mon Sep 17 00:00:00 2001
|
|
||||||
From: cliffjansen <cliffjansen@13f79535-47bb-0310-9956-ffa450edef68>
|
|
||||||
Date: Tue, 16 Jul 2013 00:55:03 +0000
|
|
||||||
Subject: [PATCH 2/3] PROTON-348: Platform neutral helper functions for
|
|
||||||
examples and tests.
|
|
||||||
|
|
||||||
git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1503531 13f79535-47bb-0310-9956-ffa450edef68
|
|
||||||
---
|
|
||||||
examples/include/pncompat/internal/LICENSE | 33 ++++
|
|
||||||
examples/include/pncompat/internal/getopt.c | 250 ++++++++++++++++++++++++++++
|
|
||||||
examples/include/pncompat/internal/getopt.h | 63 +++++++
|
|
||||||
examples/include/pncompat/misc_defs.h | 48 ++++++
|
|
||||||
examples/include/pncompat/misc_funcs.inc | 67 ++++++++
|
|
||||||
examples/messenger/c/recv.c | 6 +-
|
|
||||||
examples/messenger/c/send.c | 6 +-
|
|
||||||
proton-c/CMakeLists.txt | 1 +
|
|
||||||
proton-c/src/proton.c | 2 +-
|
|
||||||
proton-c/wincompat/getopt.h | 39 -----
|
|
||||||
proton-c/wincompat/internal/LICENSE | 33 ----
|
|
||||||
proton-c/wincompat/internal/getopt.c | 250 ----------------------------
|
|
||||||
proton-c/wincompat/internal/getopt.h | 63 -------
|
|
||||||
13 files changed, 465 insertions(+), 396 deletions(-)
|
|
||||||
create mode 100644 examples/include/pncompat/internal/LICENSE
|
|
||||||
create mode 100644 examples/include/pncompat/internal/getopt.c
|
|
||||||
create mode 100644 examples/include/pncompat/internal/getopt.h
|
|
||||||
create mode 100644 examples/include/pncompat/misc_defs.h
|
|
||||||
create mode 100644 examples/include/pncompat/misc_funcs.inc
|
|
||||||
delete mode 100644 proton-c/wincompat/getopt.h
|
|
||||||
delete mode 100644 proton-c/wincompat/internal/LICENSE
|
|
||||||
delete mode 100644 proton-c/wincompat/internal/getopt.c
|
|
||||||
delete mode 100644 proton-c/wincompat/internal/getopt.h
|
|
||||||
|
|
||||||
diff --git a/examples/include/pncompat/internal/LICENSE b/examples/include/pncompat/internal/LICENSE
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..99efb42
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/include/pncompat/internal/LICENSE
|
|
||||||
@@ -0,0 +1,33 @@
|
|
||||||
+Free Getopt
|
|
||||||
+Copyright (c)2002-2003 Mark K. Kim
|
|
||||||
+All rights reserved.
|
|
||||||
+
|
|
||||||
+Redistribution and use in source and binary forms, with or without
|
|
||||||
+modification, are permitted provided that the following conditions
|
|
||||||
+are met:
|
|
||||||
+
|
|
||||||
+ * Redistributions of source code must retain the above copyright
|
|
||||||
+ notice, this list of conditions and the following disclaimer.
|
|
||||||
+
|
|
||||||
+ * 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.
|
|
||||||
+
|
|
||||||
+ * Neither the original author of this software 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
|
|
||||||
+COPYRIGHT OWNER 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.
|
|
||||||
+
|
|
||||||
diff --git a/examples/include/pncompat/internal/getopt.c b/examples/include/pncompat/internal/getopt.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..7ef9a68
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/include/pncompat/internal/getopt.c
|
|
||||||
@@ -0,0 +1,250 @@
|
|
||||||
+/*****************************************************************************
|
|
||||||
+* getopt.c - competent and free getopt library.
|
|
||||||
+* $Header: /cvsroot/freegetopt/freegetopt/getopt.c,v 1.2 2003/10/26 03:10:20 vindaci Exp $
|
|
||||||
+*
|
|
||||||
+* Copyright (c)2002-2003 Mark K. Kim
|
|
||||||
+* All rights reserved.
|
|
||||||
+*
|
|
||||||
+* Redistribution and use in source and binary forms, with or without
|
|
||||||
+* modification, are permitted provided that the following conditions
|
|
||||||
+* are met:
|
|
||||||
+*
|
|
||||||
+* * Redistributions of source code must retain the above copyright
|
|
||||||
+* notice, this list of conditions and the following disclaimer.
|
|
||||||
+*
|
|
||||||
+* * 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.
|
|
||||||
+*
|
|
||||||
+* * Neither the original author of this software 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
|
|
||||||
+* COPYRIGHT OWNER 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.
|
|
||||||
+*/
|
|
||||||
+#include <stdio.h>
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+#include "getopt.h"
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static const char* ID = "$Id: getopt.c,v 1.2 2003/10/26 03:10:20 vindaci Exp $";
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+char* optarg = NULL;
|
|
||||||
+int optind = 0;
|
|
||||||
+int opterr = 1;
|
|
||||||
+int optopt = '?';
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static char** prev_argv = NULL; /* Keep a copy of argv and argc to */
|
|
||||||
+static int prev_argc = 0; /* tell if getopt params change */
|
|
||||||
+static int argv_index = 0; /* Option we're checking */
|
|
||||||
+static int argv_index2 = 0; /* Option argument we're checking */
|
|
||||||
+static int opt_offset = 0; /* Index into compounded "-option" */
|
|
||||||
+static int dashdash = 0; /* True if "--" option reached */
|
|
||||||
+static int nonopt = 0; /* How many nonopts we've found */
|
|
||||||
+
|
|
||||||
+static void increment_index()
|
|
||||||
+{
|
|
||||||
+ /* Move onto the next option */
|
|
||||||
+ if(argv_index < argv_index2)
|
|
||||||
+ {
|
|
||||||
+ while(prev_argv[++argv_index] && prev_argv[argv_index][0] != '-'
|
|
||||||
+ && argv_index < argv_index2+1);
|
|
||||||
+ }
|
|
||||||
+ else argv_index++;
|
|
||||||
+ opt_offset = 1;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+* Permutes argv[] so that the argument currently being processed is moved
|
|
||||||
+* to the end.
|
|
||||||
+*/
|
|
||||||
+static int permute_argv_once()
|
|
||||||
+{
|
|
||||||
+ /* Movability check */
|
|
||||||
+ if(argv_index + nonopt >= prev_argc) return 1;
|
|
||||||
+ /* Move the current option to the end, bring the others to front */
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ char* tmp = prev_argv[argv_index];
|
|
||||||
+
|
|
||||||
+ /* Move the data */
|
|
||||||
+ memmove(&prev_argv[argv_index], &prev_argv[argv_index+1],
|
|
||||||
+ sizeof(char**) * (prev_argc - argv_index - 1));
|
|
||||||
+ prev_argv[prev_argc - 1] = tmp;
|
|
||||||
+
|
|
||||||
+ nonopt++;
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+int getopt(int argc, char** argv, char* optstr)
|
|
||||||
+{
|
|
||||||
+ int c = 0;
|
|
||||||
+
|
|
||||||
+ /* If we have new argv, reinitialize */
|
|
||||||
+ if(prev_argv != argv || prev_argc != argc)
|
|
||||||
+ {
|
|
||||||
+ /* Initialize variables */
|
|
||||||
+ prev_argv = argv;
|
|
||||||
+ prev_argc = argc;
|
|
||||||
+ argv_index = 1;
|
|
||||||
+ argv_index2 = 1;
|
|
||||||
+ opt_offset = 1;
|
|
||||||
+ dashdash = 0;
|
|
||||||
+ nonopt = 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Jump point in case we want to ignore the current argv_index */
|
|
||||||
+ getopt_top:
|
|
||||||
+
|
|
||||||
+ /* Misc. initializations */
|
|
||||||
+ optarg = NULL;
|
|
||||||
+
|
|
||||||
+ /* Dash-dash check */
|
|
||||||
+ if(argv[argv_index] && !strcmp(argv[argv_index], "--"))
|
|
||||||
+ {
|
|
||||||
+ dashdash = 1;
|
|
||||||
+ increment_index();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* If we're at the end of argv, that's it. */
|
|
||||||
+ if(argv[argv_index] == NULL)
|
|
||||||
+ {
|
|
||||||
+ c = -1;
|
|
||||||
+ }
|
|
||||||
+ /* Are we looking at a string? Single dash is also a string */
|
|
||||||
+ else if(dashdash || argv[argv_index][0] != '-' || !strcmp(argv[argv_index], "-"))
|
|
||||||
+ {
|
|
||||||
+ /* If we want a string... */
|
|
||||||
+ if(optstr[0] == '-')
|
|
||||||
+ {
|
|
||||||
+ c = 1;
|
|
||||||
+ optarg = argv[argv_index];
|
|
||||||
+ increment_index();
|
|
||||||
+ }
|
|
||||||
+ /* If we really don't want it (we're in POSIX mode), we're done */
|
|
||||||
+ else if(optstr[0] == '+' || getenv("POSIXLY_CORRECT"))
|
|
||||||
+ {
|
|
||||||
+ c = -1;
|
|
||||||
+
|
|
||||||
+ /* Everything else is a non-opt argument */
|
|
||||||
+ nonopt = argc - argv_index;
|
|
||||||
+ }
|
|
||||||
+ /* If we mildly don't want it, then move it back */
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ if(!permute_argv_once()) goto getopt_top;
|
|
||||||
+ else c = -1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ /* Otherwise we're looking at an option */
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ char* opt_ptr = NULL;
|
|
||||||
+
|
|
||||||
+ /* Grab the option */
|
|
||||||
+ c = argv[argv_index][opt_offset++];
|
|
||||||
+
|
|
||||||
+ /* Is the option in the optstr? */
|
|
||||||
+ if(optstr[0] == '-') opt_ptr = strchr(optstr+1, c);
|
|
||||||
+ else opt_ptr = strchr(optstr, c);
|
|
||||||
+ /* Invalid argument */
|
|
||||||
+ if(!opt_ptr)
|
|
||||||
+ {
|
|
||||||
+ if(opterr)
|
|
||||||
+ {
|
|
||||||
+ fprintf(stderr, "%s: invalid option -- %c\n", argv[0], c);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ optopt = c;
|
|
||||||
+ c = '?';
|
|
||||||
+
|
|
||||||
+ /* Move onto the next option */
|
|
||||||
+ increment_index();
|
|
||||||
+ }
|
|
||||||
+ /* Option takes argument */
|
|
||||||
+ else if(opt_ptr[1] == ':')
|
|
||||||
+ {
|
|
||||||
+ /* ie, -oARGUMENT, -xxxoARGUMENT, etc. */
|
|
||||||
+ if(argv[argv_index][opt_offset] != '\0')
|
|
||||||
+ {
|
|
||||||
+ optarg = &argv[argv_index][opt_offset];
|
|
||||||
+ increment_index();
|
|
||||||
+ }
|
|
||||||
+ /* ie, -o ARGUMENT (only if it's a required argument) */
|
|
||||||
+ else if(opt_ptr[2] != ':')
|
|
||||||
+ {
|
|
||||||
+ /* One of those "you're not expected to understand this" moment */
|
|
||||||
+ if(argv_index2 < argv_index) argv_index2 = argv_index;
|
|
||||||
+ while(argv[++argv_index2] && argv[argv_index2][0] == '-');
|
|
||||||
+ optarg = argv[argv_index2];
|
|
||||||
+
|
|
||||||
+ /* Don't cross into the non-option argument list */
|
|
||||||
+ if(argv_index2 + nonopt >= prev_argc) optarg = NULL;
|
|
||||||
+
|
|
||||||
+ /* Move onto the next option */
|
|
||||||
+ increment_index();
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ /* Move onto the next option */
|
|
||||||
+ increment_index();
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* In case we got no argument for an option with required argument */
|
|
||||||
+ if(optarg == NULL && opt_ptr[2] != ':')
|
|
||||||
+ {
|
|
||||||
+ optopt = c;
|
|
||||||
+ c = '?';
|
|
||||||
+
|
|
||||||
+ if(opterr)
|
|
||||||
+ {
|
|
||||||
+ fprintf(stderr,"%s: option requires an argument -- %c\n",
|
|
||||||
+ argv[0], optopt);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ /* Option does not take argument */
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ /* Next argv_index */
|
|
||||||
+ if(argv[argv_index][opt_offset] == '\0')
|
|
||||||
+ {
|
|
||||||
+ increment_index();
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Calculate optind */
|
|
||||||
+ if(c == -1)
|
|
||||||
+ {
|
|
||||||
+ optind = argc - nonopt;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ optind = argv_index;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return c;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/* vim:ts=3
|
|
||||||
+*/
|
|
||||||
diff --git a/examples/include/pncompat/internal/getopt.h b/examples/include/pncompat/internal/getopt.h
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..0b78650
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/include/pncompat/internal/getopt.h
|
|
||||||
@@ -0,0 +1,63 @@
|
|
||||||
+/*****************************************************************************
|
|
||||||
+* getopt.h - competent and free getopt library.
|
|
||||||
+* $Header: /cvsroot/freegetopt/freegetopt/getopt.h,v 1.2 2003/10/26 03:10:20 vindaci Exp $
|
|
||||||
+*
|
|
||||||
+* Copyright (c)2002-2003 Mark K. Kim
|
|
||||||
+* All rights reserved.
|
|
||||||
+*
|
|
||||||
+* Redistribution and use in source and binary forms, with or without
|
|
||||||
+* modification, are permitted provided that the following conditions
|
|
||||||
+* are met:
|
|
||||||
+*
|
|
||||||
+* * Redistributions of source code must retain the above copyright
|
|
||||||
+* notice, this list of conditions and the following disclaimer.
|
|
||||||
+*
|
|
||||||
+* * 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.
|
|
||||||
+*
|
|
||||||
+* * Neither the original author of this software 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
|
|
||||||
+* COPYRIGHT OWNER 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.
|
|
||||||
+*/
|
|
||||||
+#ifndef GETOPT_H_
|
|
||||||
+#define GETOPT_H_
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifdef __cplusplus
|
|
||||||
+extern "C" {
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+extern char* optarg;
|
|
||||||
+extern int optind;
|
|
||||||
+extern int opterr;
|
|
||||||
+extern int optopt;
|
|
||||||
+
|
|
||||||
+int getopt(int argc, char** argv, char* optstr);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifdef __cplusplus
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#endif /* GETOPT_H_ */
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/* vim:ts=3
|
|
||||||
+*/
|
|
||||||
diff --git a/examples/include/pncompat/misc_defs.h b/examples/include/pncompat/misc_defs.h
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..00d5f67
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/include/pncompat/misc_defs.h
|
|
||||||
@@ -0,0 +1,48 @@
|
|
||||||
+#ifndef PNCOMAPT_MISC_DEFS_H
|
|
||||||
+#define PNCOMAPT_MISC_DEFS_H
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
+ * or more contributor license agreements. See the NOTICE file
|
|
||||||
+ * distributed with this work for additional information
|
|
||||||
+ * regarding copyright ownership. The ASF licenses this file
|
|
||||||
+ * to you under the Apache License, Version 2.0 (the
|
|
||||||
+ * "License"); you may not use this file except in compliance
|
|
||||||
+ * with the License. You may obtain a copy of the License at
|
|
||||||
+ *
|
|
||||||
+ * http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
+ *
|
|
||||||
+ * Unless required by applicable law or agreed to in writing,
|
|
||||||
+ * software distributed under the License is distributed on an
|
|
||||||
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
+ * KIND, either express or implied. See the License for the
|
|
||||||
+ * specific language governing permissions and limitations
|
|
||||||
+ * under the License.
|
|
||||||
+ *
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#if defined(qpid_proton_EXPORTS)
|
|
||||||
+#error This include file is not for use in the main proton library
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Platform neutral definitions. Only intended for use by Proton
|
|
||||||
+ * examples and test/debug programs.
|
|
||||||
+ *
|
|
||||||
+ * This file and any related support files may change or be removed
|
|
||||||
+ * at any time.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+// getopt()
|
|
||||||
+
|
|
||||||
+#include <proton/types.h>
|
|
||||||
+
|
|
||||||
+#if !defined(_WIN32) || defined (__CYGWIN__)
|
|
||||||
+#include <getopt.h>
|
|
||||||
+#else
|
|
||||||
+#include "internal/getopt.h"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+pn_timestamp_t time_now();
|
|
||||||
+
|
|
||||||
+#endif /* PNCOMPAT_MISC_DEFS_H */
|
|
||||||
diff --git a/examples/include/pncompat/misc_funcs.inc b/examples/include/pncompat/misc_funcs.inc
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..921d1d3
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/examples/include/pncompat/misc_funcs.inc
|
|
||||||
@@ -0,0 +1,67 @@
|
|
||||||
+/*
|
|
||||||
+ * Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
+ * or more contributor license agreements. See the NOTICE file
|
|
||||||
+ * distributed with this work for additional information
|
|
||||||
+ * regarding copyright ownership. The ASF licenses this file
|
|
||||||
+ * to you under the Apache License, Version 2.0 (the
|
|
||||||
+ * "License"); you may not use this file except in compliance
|
|
||||||
+ * with the License. You may obtain a copy of the License at
|
|
||||||
+ *
|
|
||||||
+ * http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
+ *
|
|
||||||
+ * Unless required by applicable law or agreed to in writing,
|
|
||||||
+ * software distributed under the License is distributed on an
|
|
||||||
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
+ * KIND, either express or implied. See the License for the
|
|
||||||
+ * specific language governing permissions and limitations
|
|
||||||
+ * under the License.
|
|
||||||
+ *
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * This file provides the functions for "misc_defs.h" in the form of
|
|
||||||
+ * included code, as opposed to a separate library or object
|
|
||||||
+ * dependency. In the absence of portable "pragma weak" compiler
|
|
||||||
+ * directives, this provides a simple workaround.
|
|
||||||
+ *
|
|
||||||
+ * Usage for a single compilation unit:
|
|
||||||
+ *
|
|
||||||
+ * #include "pncompat/misc_funcs.inc"
|
|
||||||
+ *
|
|
||||||
+ * Usage for multiple combined compilation units: chose one to include
|
|
||||||
+ * "pncompat/misc_funcs.inc" as above and in each other unit needing the
|
|
||||||
+ * definitions use
|
|
||||||
+ *
|
|
||||||
+ * #include "pncompat/misc_defs.h"
|
|
||||||
+ *
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include "misc_defs.h"
|
|
||||||
+
|
|
||||||
+#if defined(_WIN32) && ! defined(__CYGWIN__)
|
|
||||||
+#include "pncompat/internal/getopt.c"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+#if defined(_WIN32) && ! defined(__CYGWIN__)
|
|
||||||
+#include <windows.h>
|
|
||||||
+pn_timestamp_t time_now(void)
|
|
||||||
+{
|
|
||||||
+ FILETIME now;
|
|
||||||
+ GetSystemTimeAsFileTime(&now);
|
|
||||||
+ ULARGE_INTEGER t;
|
|
||||||
+ t.u.HighPart = now.dwHighDateTime;
|
|
||||||
+ t.u.LowPart = now.dwLowDateTime;
|
|
||||||
+ // Convert to milliseconds and adjust base epoch
|
|
||||||
+ return t.QuadPart / 10000 - 11644473600000;
|
|
||||||
+}
|
|
||||||
+#else
|
|
||||||
+#include <proton/util.h>
|
|
||||||
+#include <sys/time.h>
|
|
||||||
+#include <stddef.h>
|
|
||||||
+pn_timestamp_t time_now(void)
|
|
||||||
+{
|
|
||||||
+ struct timeval now;
|
|
||||||
+ if (gettimeofday(&now, NULL)) pn_fatal("gettimeofday failed\n");
|
|
||||||
+ return ((pn_timestamp_t)now.tv_sec) * 1000 + (now.tv_usec / 1000);
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
diff --git a/examples/messenger/c/recv.c b/examples/messenger/c/recv.c
|
|
||||||
index 50a2787..b2c974d 100644
|
|
||||||
--- a/examples/messenger/c/recv.c
|
|
||||||
+++ b/examples/messenger/c/recv.c
|
|
||||||
@@ -21,11 +21,7 @@
|
|
||||||
#include "proton/message.h"
|
|
||||||
#include "proton/messenger.h"
|
|
||||||
|
|
||||||
-#if defined(_WIN32) && ! defined(__CYGWIN__)
|
|
||||||
-#include "../../../proton-c/wincompat/getopt.h"
|
|
||||||
-#else
|
|
||||||
-#include <getopt.h>
|
|
||||||
-#endif
|
|
||||||
+#include "pncompat/misc_funcs.inc"
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
diff --git a/examples/messenger/c/send.c b/examples/messenger/c/send.c
|
|
||||||
index 77f772a..a7e91a2 100644
|
|
||||||
--- a/examples/messenger/c/send.c
|
|
||||||
+++ b/examples/messenger/c/send.c
|
|
||||||
@@ -21,11 +21,7 @@
|
|
||||||
#include "proton/message.h"
|
|
||||||
#include "proton/messenger.h"
|
|
||||||
|
|
||||||
-#if defined(_WIN32) && ! defined(__CYGWIN__)
|
|
||||||
-#include "../../../proton-c/wincompat/getopt.h"
|
|
||||||
-#else
|
|
||||||
-#include <getopt.h>
|
|
||||||
-#endif
|
|
||||||
+#include "pncompat/misc_funcs.inc"
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
diff --git a/proton-c/CMakeLists.txt b/proton-c/CMakeLists.txt
|
|
||||||
index 74d302a..c8ee531 100644
|
|
||||||
--- a/proton-c/CMakeLists.txt
|
|
||||||
+++ b/proton-c/CMakeLists.txt
|
|
||||||
@@ -57,6 +57,7 @@ configure_file (
|
|
||||||
|
|
||||||
include_directories ("${CMAKE_CURRENT_BINARY_DIR}")
|
|
||||||
include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/include")
|
|
||||||
+include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/../examples/include")
|
|
||||||
|
|
||||||
add_custom_command (
|
|
||||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/encodings.h
|
|
||||||
diff --git a/proton-c/src/proton.c b/proton-c/src/proton.c
|
|
||||||
index 370bfd5..552c9c2 100644
|
|
||||||
--- a/proton-c/src/proton.c
|
|
||||||
+++ b/proton-c/src/proton.c
|
|
||||||
@@ -22,7 +22,7 @@
|
|
||||||
#if defined(_WIN32) && ! defined(__CYGWIN__)
|
|
||||||
#define NOGDI
|
|
||||||
#include <winsock2.h>
|
|
||||||
-#include "../wincompat/getopt.h"
|
|
||||||
+#include "pncompat/misc_funcs.inc"
|
|
||||||
#else
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <libgen.h>
|
|
||||||
diff --git a/proton-c/wincompat/getopt.h b/proton-c/wincompat/getopt.h
|
|
||||||
deleted file mode 100644
|
|
||||||
index 5106c29..0000000
|
|
||||||
--- a/proton-c/wincompat/getopt.h
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,39 +0,0 @@
|
|
||||||
-/*
|
|
||||||
- *
|
|
||||||
- * Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
- * or more contributor license agreements. See the NOTICE file
|
|
||||||
- * distributed with this work for additional information
|
|
||||||
- * regarding copyright ownership. The ASF licenses this file
|
|
||||||
- * to you under the Apache License, Version 2.0 (the
|
|
||||||
- * "License"); you may not use this file except in compliance
|
|
||||||
- * with the License. You may obtain a copy of the License at
|
|
||||||
- *
|
|
||||||
- * http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
- *
|
|
||||||
- * Unless required by applicable law or agreed to in writing,
|
|
||||||
- * software distributed under the License is distributed on an
|
|
||||||
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
- * KIND, either express or implied. See the License for the
|
|
||||||
- * specific language governing permissions and limitations
|
|
||||||
- * under the License.
|
|
||||||
- *
|
|
||||||
- */
|
|
||||||
-
|
|
||||||
-/*
|
|
||||||
- * Provides an embedded getopt implementation to the C file including
|
|
||||||
- * this. Only intended for use by Proton examples and test/debug
|
|
||||||
- * programs to run on Windows.
|
|
||||||
- *
|
|
||||||
- * This file and any internal support files may change or be removed
|
|
||||||
- * at any time.
|
|
||||||
- */
|
|
||||||
-
|
|
||||||
-#if defined(qpid_proton_EXPORTS)
|
|
||||||
-#error This include file is not for use in the main proton library
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-#if !defined(_WIN32) || defined (__CYGWIN__)
|
|
||||||
-#error This include file only intended for Windows compatibility.
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-#include "internal/getopt.c"
|
|
||||||
diff --git a/proton-c/wincompat/internal/LICENSE b/proton-c/wincompat/internal/LICENSE
|
|
||||||
deleted file mode 100644
|
|
||||||
index 99efb42..0000000
|
|
||||||
--- a/proton-c/wincompat/internal/LICENSE
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,33 +0,0 @@
|
|
||||||
-Free Getopt
|
|
||||||
-Copyright (c)2002-2003 Mark K. Kim
|
|
||||||
-All rights reserved.
|
|
||||||
-
|
|
||||||
-Redistribution and use in source and binary forms, with or without
|
|
||||||
-modification, are permitted provided that the following conditions
|
|
||||||
-are met:
|
|
||||||
-
|
|
||||||
- * Redistributions of source code must retain the above copyright
|
|
||||||
- notice, this list of conditions and the following disclaimer.
|
|
||||||
-
|
|
||||||
- * 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.
|
|
||||||
-
|
|
||||||
- * Neither the original author of this software 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
|
|
||||||
-COPYRIGHT OWNER 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.
|
|
||||||
-
|
|
||||||
diff --git a/proton-c/wincompat/internal/getopt.c b/proton-c/wincompat/internal/getopt.c
|
|
||||||
deleted file mode 100644
|
|
||||||
index 7ef9a68..0000000
|
|
||||||
--- a/proton-c/wincompat/internal/getopt.c
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,250 +0,0 @@
|
|
||||||
-/*****************************************************************************
|
|
||||||
-* getopt.c - competent and free getopt library.
|
|
||||||
-* $Header: /cvsroot/freegetopt/freegetopt/getopt.c,v 1.2 2003/10/26 03:10:20 vindaci Exp $
|
|
||||||
-*
|
|
||||||
-* Copyright (c)2002-2003 Mark K. Kim
|
|
||||||
-* All rights reserved.
|
|
||||||
-*
|
|
||||||
-* Redistribution and use in source and binary forms, with or without
|
|
||||||
-* modification, are permitted provided that the following conditions
|
|
||||||
-* are met:
|
|
||||||
-*
|
|
||||||
-* * Redistributions of source code must retain the above copyright
|
|
||||||
-* notice, this list of conditions and the following disclaimer.
|
|
||||||
-*
|
|
||||||
-* * 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.
|
|
||||||
-*
|
|
||||||
-* * Neither the original author of this software 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
|
|
||||||
-* COPYRIGHT OWNER 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.
|
|
||||||
-*/
|
|
||||||
-#include <stdio.h>
|
|
||||||
-#include <stdlib.h>
|
|
||||||
-#include <string.h>
|
|
||||||
-#include "getopt.h"
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-static const char* ID = "$Id: getopt.c,v 1.2 2003/10/26 03:10:20 vindaci Exp $";
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-char* optarg = NULL;
|
|
||||||
-int optind = 0;
|
|
||||||
-int opterr = 1;
|
|
||||||
-int optopt = '?';
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-static char** prev_argv = NULL; /* Keep a copy of argv and argc to */
|
|
||||||
-static int prev_argc = 0; /* tell if getopt params change */
|
|
||||||
-static int argv_index = 0; /* Option we're checking */
|
|
||||||
-static int argv_index2 = 0; /* Option argument we're checking */
|
|
||||||
-static int opt_offset = 0; /* Index into compounded "-option" */
|
|
||||||
-static int dashdash = 0; /* True if "--" option reached */
|
|
||||||
-static int nonopt = 0; /* How many nonopts we've found */
|
|
||||||
-
|
|
||||||
-static void increment_index()
|
|
||||||
-{
|
|
||||||
- /* Move onto the next option */
|
|
||||||
- if(argv_index < argv_index2)
|
|
||||||
- {
|
|
||||||
- while(prev_argv[++argv_index] && prev_argv[argv_index][0] != '-'
|
|
||||||
- && argv_index < argv_index2+1);
|
|
||||||
- }
|
|
||||||
- else argv_index++;
|
|
||||||
- opt_offset = 1;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-/*
|
|
||||||
-* Permutes argv[] so that the argument currently being processed is moved
|
|
||||||
-* to the end.
|
|
||||||
-*/
|
|
||||||
-static int permute_argv_once()
|
|
||||||
-{
|
|
||||||
- /* Movability check */
|
|
||||||
- if(argv_index + nonopt >= prev_argc) return 1;
|
|
||||||
- /* Move the current option to the end, bring the others to front */
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- char* tmp = prev_argv[argv_index];
|
|
||||||
-
|
|
||||||
- /* Move the data */
|
|
||||||
- memmove(&prev_argv[argv_index], &prev_argv[argv_index+1],
|
|
||||||
- sizeof(char**) * (prev_argc - argv_index - 1));
|
|
||||||
- prev_argv[prev_argc - 1] = tmp;
|
|
||||||
-
|
|
||||||
- nonopt++;
|
|
||||||
- return 0;
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-int getopt(int argc, char** argv, char* optstr)
|
|
||||||
-{
|
|
||||||
- int c = 0;
|
|
||||||
-
|
|
||||||
- /* If we have new argv, reinitialize */
|
|
||||||
- if(prev_argv != argv || prev_argc != argc)
|
|
||||||
- {
|
|
||||||
- /* Initialize variables */
|
|
||||||
- prev_argv = argv;
|
|
||||||
- prev_argc = argc;
|
|
||||||
- argv_index = 1;
|
|
||||||
- argv_index2 = 1;
|
|
||||||
- opt_offset = 1;
|
|
||||||
- dashdash = 0;
|
|
||||||
- nonopt = 0;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* Jump point in case we want to ignore the current argv_index */
|
|
||||||
- getopt_top:
|
|
||||||
-
|
|
||||||
- /* Misc. initializations */
|
|
||||||
- optarg = NULL;
|
|
||||||
-
|
|
||||||
- /* Dash-dash check */
|
|
||||||
- if(argv[argv_index] && !strcmp(argv[argv_index], "--"))
|
|
||||||
- {
|
|
||||||
- dashdash = 1;
|
|
||||||
- increment_index();
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* If we're at the end of argv, that's it. */
|
|
||||||
- if(argv[argv_index] == NULL)
|
|
||||||
- {
|
|
||||||
- c = -1;
|
|
||||||
- }
|
|
||||||
- /* Are we looking at a string? Single dash is also a string */
|
|
||||||
- else if(dashdash || argv[argv_index][0] != '-' || !strcmp(argv[argv_index], "-"))
|
|
||||||
- {
|
|
||||||
- /* If we want a string... */
|
|
||||||
- if(optstr[0] == '-')
|
|
||||||
- {
|
|
||||||
- c = 1;
|
|
||||||
- optarg = argv[argv_index];
|
|
||||||
- increment_index();
|
|
||||||
- }
|
|
||||||
- /* If we really don't want it (we're in POSIX mode), we're done */
|
|
||||||
- else if(optstr[0] == '+' || getenv("POSIXLY_CORRECT"))
|
|
||||||
- {
|
|
||||||
- c = -1;
|
|
||||||
-
|
|
||||||
- /* Everything else is a non-opt argument */
|
|
||||||
- nonopt = argc - argv_index;
|
|
||||||
- }
|
|
||||||
- /* If we mildly don't want it, then move it back */
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- if(!permute_argv_once()) goto getopt_top;
|
|
||||||
- else c = -1;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- /* Otherwise we're looking at an option */
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- char* opt_ptr = NULL;
|
|
||||||
-
|
|
||||||
- /* Grab the option */
|
|
||||||
- c = argv[argv_index][opt_offset++];
|
|
||||||
-
|
|
||||||
- /* Is the option in the optstr? */
|
|
||||||
- if(optstr[0] == '-') opt_ptr = strchr(optstr+1, c);
|
|
||||||
- else opt_ptr = strchr(optstr, c);
|
|
||||||
- /* Invalid argument */
|
|
||||||
- if(!opt_ptr)
|
|
||||||
- {
|
|
||||||
- if(opterr)
|
|
||||||
- {
|
|
||||||
- fprintf(stderr, "%s: invalid option -- %c\n", argv[0], c);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- optopt = c;
|
|
||||||
- c = '?';
|
|
||||||
-
|
|
||||||
- /* Move onto the next option */
|
|
||||||
- increment_index();
|
|
||||||
- }
|
|
||||||
- /* Option takes argument */
|
|
||||||
- else if(opt_ptr[1] == ':')
|
|
||||||
- {
|
|
||||||
- /* ie, -oARGUMENT, -xxxoARGUMENT, etc. */
|
|
||||||
- if(argv[argv_index][opt_offset] != '\0')
|
|
||||||
- {
|
|
||||||
- optarg = &argv[argv_index][opt_offset];
|
|
||||||
- increment_index();
|
|
||||||
- }
|
|
||||||
- /* ie, -o ARGUMENT (only if it's a required argument) */
|
|
||||||
- else if(opt_ptr[2] != ':')
|
|
||||||
- {
|
|
||||||
- /* One of those "you're not expected to understand this" moment */
|
|
||||||
- if(argv_index2 < argv_index) argv_index2 = argv_index;
|
|
||||||
- while(argv[++argv_index2] && argv[argv_index2][0] == '-');
|
|
||||||
- optarg = argv[argv_index2];
|
|
||||||
-
|
|
||||||
- /* Don't cross into the non-option argument list */
|
|
||||||
- if(argv_index2 + nonopt >= prev_argc) optarg = NULL;
|
|
||||||
-
|
|
||||||
- /* Move onto the next option */
|
|
||||||
- increment_index();
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- /* Move onto the next option */
|
|
||||||
- increment_index();
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* In case we got no argument for an option with required argument */
|
|
||||||
- if(optarg == NULL && opt_ptr[2] != ':')
|
|
||||||
- {
|
|
||||||
- optopt = c;
|
|
||||||
- c = '?';
|
|
||||||
-
|
|
||||||
- if(opterr)
|
|
||||||
- {
|
|
||||||
- fprintf(stderr,"%s: option requires an argument -- %c\n",
|
|
||||||
- argv[0], optopt);
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- /* Option does not take argument */
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- /* Next argv_index */
|
|
||||||
- if(argv[argv_index][opt_offset] == '\0')
|
|
||||||
- {
|
|
||||||
- increment_index();
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* Calculate optind */
|
|
||||||
- if(c == -1)
|
|
||||||
- {
|
|
||||||
- optind = argc - nonopt;
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- optind = argv_index;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return c;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-/* vim:ts=3
|
|
||||||
-*/
|
|
||||||
diff --git a/proton-c/wincompat/internal/getopt.h b/proton-c/wincompat/internal/getopt.h
|
|
||||||
deleted file mode 100644
|
|
||||||
index 0b78650..0000000
|
|
||||||
--- a/proton-c/wincompat/internal/getopt.h
|
|
||||||
+++ /dev/null
|
|
||||||
@@ -1,63 +0,0 @@
|
|
||||||
-/*****************************************************************************
|
|
||||||
-* getopt.h - competent and free getopt library.
|
|
||||||
-* $Header: /cvsroot/freegetopt/freegetopt/getopt.h,v 1.2 2003/10/26 03:10:20 vindaci Exp $
|
|
||||||
-*
|
|
||||||
-* Copyright (c)2002-2003 Mark K. Kim
|
|
||||||
-* All rights reserved.
|
|
||||||
-*
|
|
||||||
-* Redistribution and use in source and binary forms, with or without
|
|
||||||
-* modification, are permitted provided that the following conditions
|
|
||||||
-* are met:
|
|
||||||
-*
|
|
||||||
-* * Redistributions of source code must retain the above copyright
|
|
||||||
-* notice, this list of conditions and the following disclaimer.
|
|
||||||
-*
|
|
||||||
-* * 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.
|
|
||||||
-*
|
|
||||||
-* * Neither the original author of this software 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
|
|
||||||
-* COPYRIGHT OWNER 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.
|
|
||||||
-*/
|
|
||||||
-#ifndef GETOPT_H_
|
|
||||||
-#define GETOPT_H_
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-#ifdef __cplusplus
|
|
||||||
-extern "C" {
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-extern char* optarg;
|
|
||||||
-extern int optind;
|
|
||||||
-extern int opterr;
|
|
||||||
-extern int optopt;
|
|
||||||
-
|
|
||||||
-int getopt(int argc, char** argv, char* optstr);
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-#ifdef __cplusplus
|
|
||||||
-}
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-#endif /* GETOPT_H_ */
|
|
||||||
-
|
|
||||||
-
|
|
||||||
-/* vim:ts=3
|
|
||||||
-*/
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
|||||||
From bd97c8923c55063a66233e400fbd57cb772664e4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: mcpierce <mcpierce@13f79535-47bb-0310-9956-ffa450edef68>
|
|
||||||
Date: Wed, 24 Jul 2013 18:31:44 +0000
|
|
||||||
Subject: [PATCH 3/3] PROTON-364: Install C examples.
|
|
||||||
|
|
||||||
Added a install variable, EXAMPLES_INSTALL_DIR.
|
|
||||||
|
|
||||||
Installs the send.c, recv.c, CMakeLists.txt files from the
|
|
||||||
examples/messenger/c directory. Also installs the getopt.c and getopt.h
|
|
||||||
files, related LICENSE, and the misc_defs.h and misc_funcs.inc files.
|
|
||||||
|
|
||||||
git-svn-id: https://svn.apache.org/repos/asf/qpid/proton/trunk@1506653 13f79535-47bb-0310-9956-ffa450edef68
|
|
||||||
---
|
|
||||||
CMakeLists.txt | 21 +++++++++++++++++++++
|
|
||||||
examples/messenger/c/CMakeLists.txt | 6 ++++++
|
|
||||||
2 files changed, 27 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index f16a570..9e852c3 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -69,6 +69,14 @@ set (SYSCONF_INSTALL_DIR etc CACHE PATH "System read only configuration director
|
|
||||||
set (SHARE_INSTALL_DIR share CACHE PATH "Shared read only data directory")
|
|
||||||
set (MAN_INSTALL_DIR share/man CACHE PATH "Manpage directory")
|
|
||||||
|
|
||||||
+if (WIN32)
|
|
||||||
+ set (EXAMPLES_INSTALL_DIR proton/examples)
|
|
||||||
+endif (WIN32)
|
|
||||||
+
|
|
||||||
+if (UNIX)
|
|
||||||
+ set (EXAMPLES_INSTALL_DIR ${SHARE_INSTALL_DIR}/proton/examples)
|
|
||||||
+endif (UNIX)
|
|
||||||
+
|
|
||||||
set (JAVA_INSTALL_DIR ${SHARE_INSTALL_DIR}/java CACHE PATH "Installation directory for all JARs except those using JNI")
|
|
||||||
set (JNI_INSTALL_DIR ${LIB_INSTALL_DIR}/java CACHE PATH "Installation directory for all JARs utilising JNI")
|
|
||||||
set (JNI_SHARED_LIB_INSTALL_DIR ${LIB_INSTALL_DIR} CACHE PATH "Installation directory for shared objects used by JNI JARs")
|
|
||||||
@@ -99,6 +107,19 @@ add_subdirectory(proton-c)
|
|
||||||
install (FILES LICENSE README TODO
|
|
||||||
DESTINATION ${PROTON_SHARE})
|
|
||||||
|
|
||||||
+# install the C messenger example
|
|
||||||
+install (FILES examples/messenger/c/CMakeLists.txt
|
|
||||||
+ examples/messenger/c/send.c
|
|
||||||
+ examples/messenger/c/recv.c
|
|
||||||
+ DESTINATION ${EXAMPLES_INSTALL_DIR}/messenger)
|
|
||||||
+
|
|
||||||
+install (FILES examples/include/pncompat/internal/LICENSE
|
|
||||||
+ examples/include/pncompat/internal/getopt.c
|
|
||||||
+ examples/include/pncompat/internal/getopt.h
|
|
||||||
+ examples/include/pncompat/misc_defs.h
|
|
||||||
+ examples/include/pncompat/misc_funcs.inc
|
|
||||||
+ DESTINATION ${EXAMPLES_INSTALL_DIR}/messenger/pncompat)
|
|
||||||
+
|
|
||||||
# add relevant CTest support
|
|
||||||
find_program (MAVEN_EXECUTABLE mvn DOC "Location of the maven program")
|
|
||||||
if (JAVA_FOUND AND MAVEN_EXECUTABLE AND DEFINED ENV{M2_HOME})
|
|
||||||
diff --git a/examples/messenger/c/CMakeLists.txt b/examples/messenger/c/CMakeLists.txt
|
|
||||||
index 4d2719c..faf5e85 100644
|
|
||||||
--- a/examples/messenger/c/CMakeLists.txt
|
|
||||||
+++ b/examples/messenger/c/CMakeLists.txt
|
|
||||||
@@ -17,6 +17,12 @@
|
|
||||||
# under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
+cmake_minimum_required (VERSION 2.6)
|
|
||||||
+
|
|
||||||
+find_path(PROTON_INCLUDE_DIR proton/types.h)
|
|
||||||
+find_library(PROTON_LIBRARY
|
|
||||||
+ NAMES qpid-proton)
|
|
||||||
+
|
|
||||||
add_executable(recv recv.c)
|
|
||||||
add_executable(send send.c)
|
|
||||||
|
|
||||||
--
|
|
||||||
1.8.3.1
|
|
||||||
|
|
Loading…
Reference in new issue