[pacman-dev] alpm_list_last

Sebastian Nowicki sebnow at gmail.com
Mon Apr 21 05:23:46 EDT 2008


On 21/04/2008, at 3:20 PM, Xavier wrote:
> On Mon, Apr 21, 2008 at 8:33 AM, Sebastian Nowicki  
> <sebnow at gmail.com> wrote:
>>
>> Ok, but there's also alpm_list_first and alpm_list_next. According to
>> your description alpm_list_first should be the same as  
>> alpm_list_next,
>> unless I misunderstood you.
>
> You misunderstood.
> What I was saying is illustrated by the implementation of
> alpm_list_first, that is :
> alpm_list_first(list) == list.
>
> Because a list is just the head node.
>
>> Since alpm_list_t is a node in a double
>> linked list, it is possible to be somewhere in the middle of a list.
>
> It's a convention to use the head node when manipulating a list.
> Otherwise, how would you know where the head is?
> Besides, you must have this propriety : list->prev == tail
> If you use a node in the middle of a list, this is simply not true.
>
>> Using alpm_list_last somewhere in a progrem, I would expect to go to
>> the absolute last node within the list in general. The doxygen  
>> comment
>> seems to suggest this as well, as it talks about a list in general,
>> and not the node (alpm_list_t). It just seems a bit confusing/
>> misleading to me, and possibly others looking at the documentation.
>>
>
> That's because most functions are made to work with list (== head
> nodes), and not a middle node.
> It's very simple really, I have the feeling that I make it look more
> complicated than it really is.
>
> _______________________________________________
> pacman-dev mailing list
> pacman-dev at archlinux.org
> http://archlinux.org/mailman/listinfo/pacman-dev

It makes sense now. I didn't realise that it was a circular list  
(might be worth mentioning).

--
Sebastian Nowicki


--
Sebastian Nowicki










More information about the pacman-dev mailing list