Index: ossp-pkg/rc/rc_cliopt.c RCS File: /v/ossp/cvs/ossp-pkg/rc/rc_cliopt.c,v co -q -kk -p'1.1' '/v/ossp/cvs/ossp-pkg/rc/rc_cliopt.c,v' | diff -u /dev/null - -L'ossp-pkg/rc/rc_cliopt.c' 2>/dev/null --- ossp-pkg/rc/rc_cliopt.c +++ - 2024-05-06 14:27:46.075516586 +0200 @@ -0,0 +1,84 @@ +/* OSSP rc - Run-command processor +** Copyright (c) 2002 Ralf S. Engelschall +** Copyright (c) 2002 Cable & Wireless Deutschland GmbH +** Copyright (c) 2002 The OSSP Project +** +** This file is part of OSSP rc, a portable Run-command processor +** which can be found at http://www.ossp.org/pkg/lib/rc/ +** +** Permission to use, copy, modify, and distribute this software for +** any purpose with or without fee is hereby granted, provided that +** the above copyright notice and this permission notice appear in all +** copies. +** +** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +** 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. +** +** rc_cliopt.c: Run-command processor ISO C source file +*/ + +#include +#include + +#include "rc.h" +#include "rc_cliopt.h" + +static rc_cliopt_t *s_pInst = NULL; /* Singleton cliopt instance */ + + +/*************************************** +* clioptConstruct(void) * +* Construct a command line option * +***************************************/ +rc_return_t clioptConstruct(void) +{ + assert(s_pInst == NULL); + s_pInst = malloc(sizeof(s_pInst)); /* Allocate a cliopt instance */ + if (!s_pInst) + return(RC_THROW(RC_ERR_MEM)); + + return(RC_THROW(RC_OK)); +} + +/*************************************** +* clioptGetXXXX(void) * +* Command line option accessors * +***************************************/ +short clioptGetvers(void) +{ + ex_t Except; + short nVer = 0; + + assert(s_pInst); + ex_try { + + } + ex_catch(Except) { + rethrow; + } + + return(nVer); +} + +/*************************************** +* clioptDestruct(void) * +* Destruct a command line option * +***************************************/ +rc_return_t clioptDestruct(void) +{ + assert(s_pInst); + free(s_pInst); /* Deallocate cliopt and */ + s_pInst = NULL; /* clear its reference */ + + return(RC_THROW(RC_OK)); +} Index: ossp-pkg/rc/rc_cliopt.h RCS File: /v/ossp/cvs/ossp-pkg/rc/Attic/rc_cliopt.h,v co -q -kk -p'1.1' '/v/ossp/cvs/ossp-pkg/rc/Attic/rc_cliopt.h,v' | diff -u /dev/null - -L'ossp-pkg/rc/rc_cliopt.h' 2>/dev/null --- ossp-pkg/rc/rc_cliopt.h +++ - 2024-05-06 14:27:46.078734589 +0200 @@ -0,0 +1,40 @@ +/* OSSP rc - Run-command processor +** Copyright (c) 2002 Ralf S. Engelschall +** Copyright (c) 2002 Cable & Wireless Deutschland GmbH +** Copyright (c) 2002 The OSSP Project +** +** This file is part of OSSP rc, a portable Run-command processor +** which can be found at http://www.ossp.org/pkg/lib/rc/ +** +** Permission to use, copy, modify, and distribute this software for +** any purpose with or without fee is hereby granted, provided that +** the above copyright notice and this permission notice appear in all +** copies. +** +** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +** 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. +** +** rc_cliopt.h: Run-command processor ISO C public API header file +*/ + +#ifndef __OSSPRC_CLIOPT_H__ +#define __OSSPRC_CLIOPT_H__ + +#include "rc_private.h" +#include "rc_opt.h" + +typedef struct { /* Command line option storage */ + rc_list_t *pOptlist; /* To aggregate options */ +} rc_cliopt_t; + +#endif /* __OSSPRC_CLIOPT_H__ */ Index: ossp-pkg/rc/rc_config.h RCS File: /v/ossp/cvs/ossp-pkg/rc/rc_config.h,v co -q -kk -p'1.1' '/v/ossp/cvs/ossp-pkg/rc/rc_config.h,v' | diff -u /dev/null - -L'ossp-pkg/rc/rc_config.h' 2>/dev/null --- ossp-pkg/rc/rc_config.h +++ - 2024-05-06 14:27:46.081440532 +0200 @@ -0,0 +1,40 @@ +/* OSSP rc - Run-command processor +** Copyright (c) 2002 Ralf S. Engelschall +** Copyright (c) 2002 Cable & Wireless Deutschland GmbH +** Copyright (c) 2002 The OSSP Project +** +** This file is part of OSSP rc, a portable Run-command processor +** which can be found at http://www.ossp.org/pkg/lib/rc/ +** +** Permission to use, copy, modify, and distribute this software for +** any purpose with or without fee is hereby granted, provided that +** the above copyright notice and this permission notice appear in all +** copies. +** +** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +** 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. +** +** rc_config.h: Run-command processor ISO C public API header file +*/ + +#ifndef __OSSPRC_CONFIG_H__ +#define __OSSPRC_CONFIG_H__ + +#include "rc_cliopt.h" /* Command line option */ + +typedef struct { /* Main rc configuration storage */ + rc_cliopt_t *pCliopt; /* Aggregate command line option */ + int m_nLocks; /* Server locks, not thread-safe FIXME */ +} rc_config_t; + +#endif /* __OSSPRC_CONFIG_H__ */ Index: ossp-pkg/rc/rc_opt.c RCS File: /v/ossp/cvs/ossp-pkg/rc/rc_opt.c,v co -q -kk -p'1.1' '/v/ossp/cvs/ossp-pkg/rc/rc_opt.c,v' | diff -u /dev/null - -L'ossp-pkg/rc/rc_opt.c' 2>/dev/null --- ossp-pkg/rc/rc_opt.c +++ - 2024-05-06 14:27:46.084147168 +0200 @@ -0,0 +1,113 @@ +/* OSSP rc - Run-command processor +** Copyright (c) 2002 Ralf S. Engelschall +** Copyright (c) 2002 Cable & Wireless Deutschland GmbH +** Copyright (c) 2002 The OSSP Project +** +** This file is part of OSSP rc, a portable Run-command processor +** which can be found at http://www.ossp.org/pkg/lib/rc/ +** +** Permission to use, copy, modify, and distribute this software for +** any purpose with or without fee is hereby granted, provided that +** the above copyright notice and this permission notice appear in all +** copies. +** +** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +** 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. +** +** rc_opt.c: Run-command processor ISO C source file +*/ + +#include +#include + +#include "rc.h" +#include "rc_opt.h" + + +/*************************************** +* optConstruct(void) * +* Construct an option * +***************************************/ +rc_return_t clioptConstruct(void) +{ + ex_t Except; + + if (s_pInst == NULL) { /* If we don't have one */ + s_pInst = malloc(sizeof(s_pInst)); /* yet, then allocate */ + if (!s_pInst) /* a cliopt instance */ + return(RC_THROW(RC_ERR_MEM)); + s_pInst->nLocks = 0; + + ex_try { + /* Make a cliopt instance */ + } + ex_catch(Except) { + rethrow; + } + } + s_pInst->nLocks++; /* FIXME not threadsafe */ + + return(RC_THROW(RC_OK)); +} + +/*************************************** +* clioptGetXXXX(void) * +* Command line option accessors * +***************************************/ +short clioptGetvers(void) +{ + ex_t Except; + short nVer = 0; + + if (s_pInst != NULL) { + ex_try { + + } + ex_catch(Except) { + rethrow; + } + } + else { + RC_THROW(RC_ERR_USE); + return(NULL); + } + + return(nVer); +} + +/*************************************** +* clioptDestruct(void) * +* Destruct a command line option * +***************************************/ +rc_return_t clioptDestruct(void) +{ + ex_t Except; + + if (s_pInst) { + if (!(--s_pInst->nLocks)) { /* If nLocks is 0, dealloc */ + ex_try { /* FIXME, not thread-safe */ + + } + ex_catch(Except) { + rethrow; + } + + free(s_pInst); /* Deallocate cliopt and */ + s_pInst = NULL; /* clear its reference */ + } + } + else + return(RC_THROW(RC_ERR_USE)); + + return(RC_THROW(RC_OK)); +} Index: ossp-pkg/rc/rc_opt.h RCS File: /v/ossp/cvs/ossp-pkg/rc/Attic/rc_opt.h,v co -q -kk -p'1.1' '/v/ossp/cvs/ossp-pkg/rc/Attic/rc_opt.h,v' | diff -u /dev/null - -L'ossp-pkg/rc/rc_opt.h' 2>/dev/null --- ossp-pkg/rc/rc_opt.h +++ - 2024-05-06 14:27:46.097786278 +0200 @@ -0,0 +1,38 @@ +/* OSSP rc - Run-command processor +** Copyright (c) 2002 Ralf S. Engelschall +** Copyright (c) 2002 Cable & Wireless Deutschland GmbH +** Copyright (c) 2002 The OSSP Project +** +** This file is part of OSSP rc, a portable Run-command processor +** which can be found at http://www.ossp.org/pkg/lib/rc/ +** +** Permission to use, copy, modify, and distribute this software for +** any purpose with or without fee is hereby granted, provided that +** the above copyright notice and this permission notice appear in all +** copies. +** +** THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED 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 AUTHORS AND COPYRIGHT HOLDERS AND THEIR +** 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. +** +** rc_opt.h: Run-command processor ISO C public API header file +*/ + +#ifndef __OSSPRC_OPT_H__ +#define __OSSPRC_OPT_H__ + +typedef struct { /* For option storage */ + char *szName; + char *szValue; +} rc_opt_t; + +#endif /* __OSSPRC_OPT_H__ */