4.3BSD/usr/contrib/spms/src/lib/libslist/test/slsrm.a

!<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);
}