Index: ossp-pkg/rc/Makefile.in
RCS File: /v/ossp/cvs/ossp-pkg/rc/Makefile.in,v
rcsdiff -q -kk '-r1.31' '-r1.32' -u '/v/ossp/cvs/ossp-pkg/rc/Makefile.in,v' 2>/dev/null
--- Makefile.in 2002/08/02 16:38:09 1.31
+++ Makefile.in 2003/05/20 11:45:11 1.32
@@ -59,10 +59,10 @@
TARGET_PROGS = rc
TARGET_MANS = rc.1 rc-sample.5
-SRCS = rc.c rc_error.c rc_anal.c rc_script.c rc_sect.c rc_config.c \
+SRCS = rc.c rc_error.c rc_anal.c rc_script.c rc_lab.c rc_sect.c rc_config.c \
rc_cliopt.c rc_proc.c rc_version.c rc_pcre.c rc_util.c
-OBJS = rc.o rc_error.o rc_anal.o rc_script.o rc_sect.o rc_config.o \
+OBJS = rc.o rc_error.o rc_anal.o rc_script.o rc_lab.o rc_sect.o rc_config.o \
rc_cliopt.o rc_proc.o rc_version.o rc_pcre.o rc_util.o
SUBDIRS = @SUBDIR_EX@ @SUBDIR_POPT@
Index: ossp-pkg/rc/rc_lab.c
RCS File: /v/ossp/cvs/ossp-pkg/rc/Attic/rc_lab.c,v
co -q -kk -p'1.1' '/v/ossp/cvs/ossp-pkg/rc/Attic/rc_lab.c,v' | diff -u /dev/null - -L'ossp-pkg/rc/rc_lab.c' 2>/dev/null
--- ossp-pkg/rc/rc_lab.c
+++ - 2024-05-06 21:25:50.378972890 +0200
@@ -0,0 +1,104 @@
+/* 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_lab.c: Run-command processor ISO C source file
+*/
+
+#include /* For string copy and such data ops */
+#include /* For memory ops */
+
+#include "rc.h" /* Public Rc interface */
+
+
+/************************************************
+* labelNew(void) *
+* Construct a new label *
+************************************************/
+rc_label_t *labelNew(const char *szName)
+{
+ rc_label_t *pLab = NULL;
+
+ pLab = (rc_label_t *)calloc(1, sizeof(rc_label_t));
+
+ if (pLab) {
+ pLab->m_szName = malloc((strlen(szName) + 1) * sizeof(char));
+ strcpy(pLab->m_szName, szName);
+ }
+ else
+ RC_THROW(RC_ERR_MEM);
+
+ return(pLab);
+}
+
+/****************************************************
+* labelAppendsec(rc_label_t *, rc_section_t *) *
+* Append a section to this label *
+****************************************************/
+rc_return_t labelAppendsec(rc_label_t *pLabel, rc_section_t *pInsec)
+{
+ assert(pLabel); /* Label parameter must be valid */
+
+ if (pInsec) {
+ pLabel->m_ppSecvec = realloc(pLabel->m_ppSecvec, sizeof(rc_section_t *)\
+ * (pLabel->m_nSecs + 1));
+ pLabel->m_ppSecvec[pLabel->m_nSecs++] = pInsec; /* Just copy pointer */
+ }
+ else
+ TRACE("Problem with labelAppendsec");
+/* return(RC_THROW(RC_ERR_USE));*/
+
+ return(RC_THROW(RC_OK));
+}
+
+/************************************************
+* labelDelete(rc_label_t *) *
+* Destruct a label *
+************************************************/
+rc_return_t labelDelete(rc_label_t *pLab)
+{
+ int nSecs = pLab->m_nSecs;
+
+ /* Cleanup our junk */
+ if (pLab) {
+ pLab->m_nSecs = 0; /* Blank the section count */
+ if (pLab->m_szName) /* Destroy the rc name */
+ free(pLab->m_szName);
+ while (nSecs-- > 0) { /* Destroy the section vector */
+ if (pLab->m_ppSecvec[nSecs]) {
+ sectionDelete(pLab->m_ppSecvec[nSecs]);
+ pLab->m_ppSecvec[nSecs] = NULL;
+ }
+ }
+ free(pLab->m_ppSecvec);
+ pLab->m_ppSecvec = NULL;
+ free(pLab);
+ }
+ else /* Dumbass passed an empty label object */
+ assert(FALSE);
+
+ return(RC_THROW(RC_OK));
+}
+