ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/sm_list.c
(Generate patch)

Comparing ray/src/hd/sm_list.c (file contents):
Revision 3.2 by gwlarson, Fri Sep 11 11:52:26 1998 UTC vs.
Revision 3.4 by gwlarson, Mon Dec 28 18:07:35 1998 UTC

# Line 50 | Line 50 | LIST *a,*b;
50   {
51      LIST * l;
52  
53    if(!a)
54      return(b);
55
53      if(!b)
54         return(a);
55      
# Line 63 | Line 60 | LIST *a,*b;
60      SET_LIST_NEXT(l,a);
61      
62      return(b);
63 + }
64 +
65 + /* attaches list a at the end of list b */
66 + LIST
67 + *add_data(l,d,end)
68 + LIST *l;
69 + int d;
70 + LIST **end;
71 +
72 + {
73 +    LIST *list,*lptr;
74 +
75 +    list = new_list();
76 +    SET_LIST_DATA(list,d);
77 +
78 +    if(!l)
79 +    {
80 +      if(end)
81 +        *end = list;
82 +      return(list);
83 +    }
84 +    if(end)
85 +      lptr = *end;
86 +    else
87 +    {
88 +      lptr = l;
89 +      while(LIST_NEXT(lptr))
90 +        lptr = LIST_NEXT(lptr);
91 +    }
92 +    LIST_NEXT(lptr) = list;
93 +    if(end)
94 +      *end = list;
95 +
96 +    return(l);
97   }
98  
99   /* Adds data to the end of a circular list. If set, "end"

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines