On 21/04/2008, at 3:20 PM, Xavier wrote: > On Mon, Apr 21, 2008 at 8:33 AM, Sebastian Nowicki > <[EMAIL PROTECTED]> 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 > [email protected] > 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 _______________________________________________ pacman-dev mailing list [email protected] http://archlinux.org/mailman/listinfo/pacman-dev
