!<arch> Islsrm 418431582 968 27 100644 155 ` ^aaa -aaa ^bbb ^aaa $ccc ^aaa ^bbb -aaa -ccc -bbb ^aaa ^bbb ^bbb ^aaa -aaa ^aaa ^aaa -bbb -aaa -aaa $ccc $ddd -ddd -ccc $ccc $ddd ^aaa -ccc -ddd ^aaa -aaa Oslsrm 418431582 968 27 100644 294 ` aaa empty list bbb aaa bbb aaa bbb ccc aaa aaa bbb ccc bbb aaa aaa bbb ccc bbb bbb ccc bbb bbb empty list aaa bbb aaa bbb bbb aaa aaa bbb bbb aaa bbb bbb aaa bbb bbb aaa aaa bbb bbb aaa aaa empty list empty list ccc ccc ddd ccc empty list ccc ccc ddd aaa ccc ddd aaa ddd aaa aaa aaa empty list Tslsrm.c 418431582 968 27 100644 1091 ` /* * slsrm() */ #include <stdio.h> #include "slslist.h" #include "yesno.h" #define KEYSIZE 10 char *PGN = "Tslsrm"; main() { char *gets(); /* get a line from stdin */ char key[KEYSIZE]; /* key to be added */ char *slsappend(); /* append key+string */ char *slsprepend(); /* prepend key+string */ SLSLIST *slsinit(); /* initialize list */ SLSLIST *slslist; /* pointer to list head block */ void slsprint(); /* print list */ void slsrm(); /* remove list item */ slslist = slsinit(); while (gets(key) != NULL) if (key[0] == '^') { slsprepend(key+1, "", slslist); if (slslist->nk > 0) slsprint(10, 8, YES, stdout, slslist); else printf("empty list\n"); } else if (key[0] == '$') { slsappend(key+1, "", slslist); if (slslist->nk > 0) slsprint(10, 8, YES, stdout, slslist); else printf("empty list\n"); } else if (key[0] == '-') { slsrm(key+1, slslist); if (slslist->nk > 0) slsprint(10, 8, YES, stdout, slslist); else printf("empty list\n"); } else fatal("illegal key %s",key); exit(0); }