[pacman-dev] alpm_list_last
Sebastian Nowicki
sebnow at gmail.com
Mon Apr 21 02:33:37 EDT 2008
On 21/04/2008, at 2:04 PM, Xavier wrote:
> Sebastian Nowicki wrote:
>> I noticed that alpm_list_last simply returns a pointer to the
>> previous
>> node. Is this expected behavior? My interpretation of "last" would be
>> to return the absolute last node, as the comment suggests. In my
>> opinion the function as it is now should be called alpm_list_prev.
>>
>> From alpm_list.c:
>>> alpm_list_t SYMEXPORT *alpm_list_last(const alpm_list_t *list)
>>> {
>>> if(list) {
>>> return(list->prev);
>>> } else {
>>> return(NULL);
>>> }
>>> }
>>
>
> That's because a alpm_list_t element is not really a list, but a
> list node.
> So when you use a list in alpm (with alpm_list_t *list), it's actually
> just the head node that you manipulate.
> And head->prev == tail.
>
> _______________________________________________
> pacman-dev mailing list
> pacman-dev at archlinux.org
> http://archlinux.org/mailman/listinfo/pacman-dev
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. Since alpm_list_t is a node in a double
linked list, it is possible to be somewhere in the middle of a list.
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.
--
Sebastian Nowicki
More information about the pacman-dev
mailing list