|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T s
Length: 1932 (0x78c) Types: TextFile Names: »sequence.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z« └─⟦de7628f85⟧ └─⟦this⟧ »isode-6.0/others/quipu/uips/widget2/sequence.c«
/* This file contains code to implement the list storage facilities * in the modified widget program. */ /* This file was written by Damanjit Mahl @ Brunel University * on 31st October 1989 as part of the modifications made to * the Quipu X.500 widget interface written by Paul Sharpe * at GEC Research, Hirst Research Centre. */ /* * NOTICE * * Acquisition, use, and distribution of this module and related * materials are subject to the restrictions of a license agreement. * Consult the Preface in the User's Manual for the full terms of * this agreement. * */ #include "sequence.h" add_seq (seq, str) D_seq *seq; char *str; { D_seq curr; if (*seq) { for (curr = *seq; curr->next; curr = curr->next) {} curr->next = (struct d_seq *) malloc (sizeof (struct d_seq)); curr = curr->next; curr->strlen = strlen (str); curr->dname = malloc ((curr->strlen)+5); (void) strcpy(curr->dname, str); curr->next = 0; } else { curr = (struct d_seq *) malloc (sizeof (struct d_seq)); curr->strlen = strlen (str); curr->dname = malloc ((curr->strlen)+5); (void) strcpy(curr->dname, str); curr->next = 0; *seq = curr; } } char * get_from_seq (seq_num, seq_ptr) int seq_num; D_seq seq_ptr; { for (; seq_num > 1 && seq_ptr; seq_ptr = seq_ptr->next, seq_num--) {} if (seq_ptr) return seq_ptr->dname; else return 0; } free_seq (seq_ptr) D_seq seq_ptr; { D_seq next_seq; next_seq = seq_ptr; if (seq_ptr) { for (; seq_ptr; seq_ptr = seq_ptr->next) free (seq_ptr->dname); seq_ptr = next_seq; for (seq_ptr = next_seq; next_seq->next; seq_ptr = next_seq) { next_seq = seq_ptr->next; free ((char *)seq_ptr); } free ((char *)next_seq); } }