📄 llist.h
字号:
/* $Id: llist.h,v 1.3 2002/10/29 22:23:55 cgroom Exp $ * * llist.h - generic doubly-linked list. Note that this list includes * metadata which allow for fast lookup of start/end of list. API modeled * after glib's GLList. * * PicoGUI small and efficient client/server GUI * Copyright (C) 2000-2002 Micah Dowty <micahjd@users.sourceforge.net> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * Contributors: * LList by Chuck Groom, cgroom@bluemug.com, Blue Mug, Inc. July * 2002. Used by textedid widget. */#include <picogui/types.h>#ifndef __LLIST_H__#define __LLIST_H__typedef struct _LList LList;typedef void (*LListFunc) ( void * data, void * userdata );/* Actions which manipulate llists */g_error llist_append ( LList ** new, LList * list, void * data );g_error llist_prepend ( LList ** new, LList * list, void * data );g_error llist_insert_after ( LList ** new, LList * list, void * data );g_error llist_insert ( LList ** new, LList * list, void * data, s16 position );void llist_remove ( LList ** new, LList * list );void llist_remove_data ( LList ** new, LList * list, void * data );g_error llist_remove_link ( LList ** new, LList * list, LList ** llink );g_error llist_alloc ( LList ** new );g_error llist_copy ( LList ** new_list, LList * list );void llist_concat ( LList ** new, LList * llist1, LList * llist2 );g_error llist_split ( LList * llist, LList **before, LList **after);void llist_free ( LList * llist );/* Actions which get/set llist info */void llist_foreach ( LList * llist, LListFunc func, void * user_data );u16 llist_length ( LList * llist );LList * llist_first ( LList * llist );LList * llist_last ( LList * llist );LList * llist_next ( LList * llist );LList * llist_prev ( LList * llist );LList * llist_nth ( LList * llist, u16 n );void * llist_nth_data ( LList * llist, u16 n );u16 llist_index ( LList * llist );void * llist_data ( LList * llist );LList * llist_find ( LList * llist, void * data );#endif /* __LLIST_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -