3 * Created: Sun Feb 25 22:30:43 2001 by tek@wiw.org
4 * Revised: Sun Feb 25 22:30:43 2001 (pending)
5 * Copyright 2001 Julian E. C. Squires (tek@wiw.org)
6 * This program comes with ABSOLUTELY NO WARRANTY.
7 * $Id: rl.c,v 1.1.1.1 2001/02/26 03:19:54 tek Exp $
16 rangelist_t
*rl_new(int begin
, int end
, rangelist_t
*next
);
17 void rl_delete(rangelist_t
*rl
);
18 void rl_exclude(rangelist_t
**rl
, int begin
, int end
);
20 rangelist_t
*rl_new(int begin
, int end
, rangelist_t
*next
)
24 p
= malloc(sizeof(rangelist_t
));
26 fprintf(stderr
, "%s: Out of memory.\n", PROGNAME
);
35 void rl_delete(rangelist_t
*rl
)
47 void rl_exclude(rangelist_t
**rlp
, int begin
, int end
)
53 if(begin
<= rl
->begin
&& end
>= rl
->end
) { /* no parts left */
58 } else if(begin
<= rl
->begin
&& end
>= rl
->begin
&& end
< rl
->end
) {
61 } else if(begin
>= rl
->begin
&& begin
< rl
->end
&& end
>= rl
->end
) {
64 } else if(begin
> rl
->begin
&& end
< rl
->end
) {
66 rl
->next
= rl_new(end
+1, rl
->end
, rl
->next
);