File: wnloop.man

package info (click to toggle)
libwn6 6.0-3
  • links: PTS
  • area: main
  • in suites: potato
  • size: 5,996 kB
  • ctags: 3,938
  • sloc: ansic: 45,083; makefile: 926; csh: 274; sh: 12
file content (61 lines) | stat: -rw-r--r-- 1,243 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
NAME
     wnloop -- package for writing iterators

SYNOPSIS
     extern bool wn_loopinit_just_called;

     wn_loopinit();

DESCRIPTION
     This package provides a procedure for writing generalized iterators.
     These iterators work in for loops.  Use "wn_loopinit()" in
     the first part of the for loop; use your iterator in the second part;
     the third part is blank.

     Write an iterator using this template:

       bool my_loop(my_object,pmy_dummy)
       my_type my_object;
       my_dummy_type *pmy_dummy;
       {
         extern bool wn_loopinit_just_called;

         if(wn_loopinit_just_called)
         {
           *pmy_dummy = first_dummy(my_object);  /* set up first dummy */

           wn_loopinit_just_called = FALSE;
         }
         else
         {
           (*pmy_dummy) = next_dummy(my_object,*pmy_dummy);
         }

         return(*pmy_dummy != NULL);
       }        

     Use your iterator as follows:

       {
         my_type my_dummy;

         for(wn_loopinit();my_loop(my_object,&my_dummy);)
         {
           ...
         }
       }

     Also, consider using already existing iterators to write new 
     iterators.

EXAMPLES

BUGS

SEE ALSO
     wnset, wnsll

AUTHOR
     Will Naylor