OSSP CVS Repository

ossp - Check-in [3350]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 3350
Date: 2003-May-20 13:45:11 (local)
2003-May-20 11:45:11 (UTC)
User:ms
Branch:
Comment: Added label class to represent a run command label (prefixed by rc. in most cases).
Tickets:
Inspections:
Files:
ossp-pkg/rc/Makefile.in      1.31 -> 1.32     2 inserted, 2 deleted
ossp-pkg/rc/rc_lab.c      added-> 1.1

ossp-pkg/rc/Makefile.in 1.31 -> 1.32

--- 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@


ossp-pkg/rc/rc_lab.c -> 1.1

*** /dev/null    Fri Apr 26 07:22:10 2024
--- -    Fri Apr 26 07:29:40 2024
***************
*** 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 <http://www.ossp.org/>
+ **
+ **  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 <string.h> /* For string copy and such data ops */
+ #include <stdlib.h> /* 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));
+ }
+ 

CVSTrac 2.0.1