summaryrefslogtreecommitdiff
path: root/support/glosstex/list.c
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/glosstex/list.c
Initial commit
Diffstat (limited to 'support/glosstex/list.c')
-rw-r--r--support/glosstex/list.c81
1 files changed, 81 insertions, 0 deletions
diff --git a/support/glosstex/list.c b/support/glosstex/list.c
new file mode 100644
index 0000000000..7576653c52
--- /dev/null
+++ b/support/glosstex/list.c
@@ -0,0 +1,81 @@
+/* -*- c -*- */
+
+/*
+ GlossTeX, a tool for the automatic preparation of glossaries.
+ Copyright (C) 1997 Volkan Yavuz
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ Volkan Yavuz, yavuzv@rumms.uni-mannheim.de
+ */
+
+/* $Id: list.c,v 1.12 1997/06/02 17:58:16 yavuzv Exp $ */
+
+#include <assert.h>
+#include <stdlib.h>
+#include "list.h"
+
+void *
+list_add (s_list * list, void *ptr)
+{
+ s_node *new = 0;
+
+ new = (s_node *) malloc (sizeof (s_node));
+ assert (new != 0);
+
+ if (list->root == 0) {
+ list->root = new;
+ list->top = new; /* LINT: top == 0 */
+ list->top->ptr = ptr;
+ list->top->next = 0;
+ } else {
+ list->top->next = new; /* list->top->next == 0 */
+ list->top = new;
+ list->top->ptr = ptr;
+ list->top->next = 0;
+ }
+
+ return new;
+}
+
+
+/* FIXME: finish this one day */
+/* void */
+/* list_delete(s_list* list, char* string) */
+/* { */
+/* if (list->root == 0) */
+/* return; */
+/* else if (list->root == list->top) { */
+/* free(list->root->ptr); */
+/* free(list->root->ptr2); */
+/* free(list->root->ptr2); */
+/* free(list->root); */
+/* list->root = list->top = 0; */
+/* return; */
+/* } else { */
+/* s_node* prev = list->root; */
+/* s_node* p = list->root; */
+/* for (;;) { */
+/* if (strcmp((char*)p->ptr, string) == 0) { */
+
+/* } else { */
+
+/* } */
+/* } */
+/* return; */
+/* } */
+/* } */
+
+/* FIXME: lint gives 23 code errors, most of which are not justified */