summaryrefslogtreecommitdiffstats
path: root/contrib/cvs/src/stack.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/cvs/src/stack.c')
-rw-r--r--contrib/cvs/src/stack.c188
1 files changed, 0 insertions, 188 deletions
diff --git a/contrib/cvs/src/stack.c b/contrib/cvs/src/stack.c
deleted file mode 100644
index 22a1088..0000000
--- a/contrib/cvs/src/stack.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (C) 2004-2005 The Free Software Foundation, Inc.
- *
- * Portions Copyright (C) 2004-2005 Derek Price, Ximbiot <http://ximbiot.com>,
- * and others.
- *
- * You may distribute under the terms of the GNU General Public License as
- * specified in the README file that comes with the CVS source distribution.
- *
- * This module uses the hash.c module to implement a stack.
- */
-
-#include "cvs.h"
-#include <assert.h>
-
-
-
-static void
-do_push (stack, elem, isstring)
- List *stack;
- void *elem;
- int isstring;
-{
- Node *p = getnode();
-
- if (isstring)
- p->key = elem;
- else
- p->data = elem;
-
- addnode(stack, p);
-}
-
-
-
-void
-push (stack, elem)
- List *stack;
- void *elem;
-{
- do_push (stack, elem, 0);
-}
-
-
-
-void
-push_string (stack, elem)
- List *stack;
- char *elem;
-{
- do_push (stack, elem, 1);
-}
-
-
-
-static void *
-do_pop (stack, isstring)
- List *stack;
- int isstring;
-{
- void *elem;
-
- if (isempty (stack)) return NULL;
-
- if (isstring)
- {
- elem = stack->list->prev->key;
- stack->list->prev->key = NULL;
- }
- else
- {
- elem = stack->list->prev->data;
- stack->list->prev->data = NULL;
- }
-
- delnode (stack->list->prev);
- return elem;
-}
-
-
-
-void *
-pop (stack)
- List *stack;
-{
- return do_pop (stack, 0);
-}
-
-
-
-char *
-pop_string (stack)
- List *stack;
-{
- return do_pop (stack, 1);
-}
-
-
-
-static void
-do_unshift (stack, elem, isstring)
- List *stack;
- void *elem;
- int isstring;
-{
- Node *p = getnode();
-
- if (isstring)
- p->key = elem;
- else
- p->data = elem;
-
- addnode_at_front(stack, p);
-}
-
-
-
-void
-unshift (stack, elem)
- List *stack;
- void *elem;
-{
- do_unshift (stack, elem, 0);
-}
-
-
-
-void
-unshift_string (stack, elem)
- List *stack;
- char *elem;
-{
- do_unshift (stack, elem, 1);
-}
-
-
-
-static void *
-do_shift (stack, isstring)
- List *stack;
- int isstring;
-{
- void *elem;
-
- if (isempty (stack)) return NULL;
-
- if (isstring)
- {
- elem = stack->list->next->key;
- stack->list->next->key = NULL;
- }
- else
- {
- elem = stack->list->next->data;
- stack->list->next->data = NULL;
- }
- delnode (stack->list->next);
- return elem;
-}
-
-
-
-void *
-shift (stack)
- List *stack;
-{
- return do_shift (stack, 0);
-}
-
-
-
-char *
-shift_string (stack)
- List *stack;
-{
- return do_shift (stack, 1);
-}
-
-
-
-int
-isempty (stack)
- List *stack;
-{
- if (stack->list == stack->list->next)
- return 1;
- return 0;
-}
OpenPOWER on IntegriCloud