home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume14 / jove4.9 / part01 / table.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-04-25  |  1.1 KB  |  52 lines

  1. /***************************************************************************
  2.  * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne.  JOVE *
  3.  * is provided to you without charge, and with no warranty.  You may give  *
  4.  * away copies of JOVE, including sources, provided that this notice is    *
  5.  * included in all the files.                                              *
  6.  ***************************************************************************/
  7.  
  8. #include "jove.h"
  9. #include "table.h"
  10.  
  11. private Table    *tables = NIL;
  12.  
  13. Table *
  14. make_table()
  15. {
  16.     Table    *tab = (Table *) emalloc(sizeof *tab);
  17.  
  18.     tab->t_next = tables;
  19.     tables = tab;
  20.     tab->t_wordlist = NIL;
  21.  
  22.     return tab;
  23. }
  24.  
  25. Word *
  26. word_in_table(text, table)
  27. char    *text;
  28. Table    *table;
  29. {
  30.     register Word    *w;
  31.  
  32.     for (w = table_top(table); w != NIL; w = next_word(w))
  33.         if (strcmp(word_text(w), text) == 0)
  34.             break;    /* already in list */
  35.     return w;
  36. }
  37.  
  38. void
  39. add_word(wname, table)
  40. char    *wname;
  41. Table    *table;
  42. {
  43.     register Word    *w;
  44.  
  45.     if (w = word_in_table(wname, table))
  46.         return;
  47.     w = (Word *) emalloc(sizeof *w);
  48.     word_text(w) = wname;
  49.     next_word(w) = table_top(table);
  50.     table_top(table) = w;
  51. }
  52.