cSvn-UI for SVN Repositories

cGit-UI – is a web interface for Subversion (SVN) Repositories. cSvn CGI script is writen in C and therefore it's fast enough

6 Commits   0 Branches   2 Tags
bfc1508d (kx 2023-03-24 03:55:33 +0300  1) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  2) #ifndef __DLIST_H_
bfc1508d (kx 2023-03-24 03:55:33 +0300  3) #define __DLIST_H_
bfc1508d (kx 2023-03-24 03:55:33 +0300  4) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  5) #ifdef __cplusplus
bfc1508d (kx 2023-03-24 03:55:33 +0300  6) extern "C" {
bfc1508d (kx 2023-03-24 03:55:33 +0300  7) #endif
bfc1508d (kx 2023-03-24 03:55:33 +0300  8) 
bfc1508d (kx 2023-03-24 03:55:33 +0300  9) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 10) typedef void (*dlist_errfunc)( const char *fmt, ... );
bfc1508d (kx 2023-03-24 03:55:33 +0300 11) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 12) extern void dlist_error( const char *fmt, ... ) __attribute__((format (printf,1,2)));
bfc1508d (kx 2023-03-24 03:55:33 +0300 13) extern dlist_errfunc dlist_fatal; /* Default Fatal Error Function == dlist_error() */
bfc1508d (kx 2023-03-24 03:55:33 +0300 14) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 15) struct dlist {
bfc1508d (kx 2023-03-24 03:55:33 +0300 16)   struct dlist *prev;
bfc1508d (kx 2023-03-24 03:55:33 +0300 17)   struct dlist *next;
bfc1508d (kx 2023-03-24 03:55:33 +0300 18) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 19)   void  *data;
bfc1508d (kx 2023-03-24 03:55:33 +0300 20) };
bfc1508d (kx 2023-03-24 03:55:33 +0300 21) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 22) typedef void (*DLFUNC)  ( void *data, void *user_data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 23) typedef int  (*DLCMPF)  ( const void *a, const void *b );
bfc1508d (kx 2023-03-24 03:55:33 +0300 24) typedef int  (*DLCMPDF) ( const void *a, const void *b, void *user_data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 25) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 26) #define dlist_prev( list )  ( (list)->prev )
bfc1508d (kx 2023-03-24 03:55:33 +0300 27) #define dlist_next( list )  ( (list)->next )
bfc1508d (kx 2023-03-24 03:55:33 +0300 28) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 29) extern struct dlist *__dlist_alloc( void );
bfc1508d (kx 2023-03-24 03:55:33 +0300 30) extern struct dlist *dlist_first( struct dlist *list );
bfc1508d (kx 2023-03-24 03:55:33 +0300 31) extern struct dlist *dlist_last( struct dlist *list );
bfc1508d (kx 2023-03-24 03:55:33 +0300 32) extern int dlist_length( struct dlist *list );
bfc1508d (kx 2023-03-24 03:55:33 +0300 33) extern struct dlist *dlist_nth( struct dlist *list, int n );
bfc1508d (kx 2023-03-24 03:55:33 +0300 34) extern void *dlist_nth_data( struct dlist *list, int n );
bfc1508d (kx 2023-03-24 03:55:33 +0300 35) extern int dlist_position( struct dlist *list, struct dlist *link );
bfc1508d (kx 2023-03-24 03:55:33 +0300 36) extern int dlist_index( struct dlist *list, const void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 37) extern struct dlist *dlist_find( struct dlist *list, const void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 38) extern struct dlist *dlist_find_data( struct dlist *list, DLCMPF func, const void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 39) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 40) extern struct dlist *dlist_append( struct dlist *list, void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 41) extern struct dlist *dlist_prepend( struct dlist *list, void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 42) extern struct dlist *dlist_insert( struct dlist *list, void *data, int position );
bfc1508d (kx 2023-03-24 03:55:33 +0300 43) extern struct dlist *dlist_insert_sorted( struct dlist *list, DLCMPF cmp_func, void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 44) extern struct dlist *dlist_insert_sorted_with_data( struct dlist *list, DLCMPDF cmp_func, void *data, void *user_data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 45) extern struct dlist *dlist_concat( struct dlist *list1, struct dlist *list2 );
bfc1508d (kx 2023-03-24 03:55:33 +0300 46) extern struct dlist *dlist_insert_list( struct dlist *list1, struct dlist *list2, int position );
bfc1508d (kx 2023-03-24 03:55:33 +0300 47) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 48) extern struct dlist *__dlist_remove_link( struct dlist *list, struct dlist *link );
bfc1508d (kx 2023-03-24 03:55:33 +0300 49) extern struct dlist *dlist_remove( struct dlist *list, const void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 50) extern struct dlist *dlist_remove_all( struct dlist *list, const void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 51) extern struct dlist *dlist_remove_data( struct dlist *list, DLCMPF cmp_func, DLFUNC free_func, const void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 52) extern struct dlist *dlist_remove_data_all( struct dlist *list, DLCMPF cmp_func, DLFUNC free_func, const void *data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 53) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 54) extern struct dlist *dlist_copy( struct dlist *list );
bfc1508d (kx 2023-03-24 03:55:33 +0300 55) extern struct dlist *dlist_reverse( struct dlist *list );
bfc1508d (kx 2023-03-24 03:55:33 +0300 56) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 57) extern struct dlist *dlist_sort( struct dlist *list, DLCMPF cmp_func );
bfc1508d (kx 2023-03-24 03:55:33 +0300 58) extern struct dlist *dlist_sort_with_data( struct dlist *list, DLCMPDF cmp_func, void *user_data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 59) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 60) extern void dlist_foreach( struct dlist *list, DLFUNC func, void *user_data );
bfc1508d (kx 2023-03-24 03:55:33 +0300 61) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 62) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 63) extern void __dlist_free( struct dlist *list );
bfc1508d (kx 2023-03-24 03:55:33 +0300 64) extern void dlist_free( struct dlist *list, DLFUNC free_func );
bfc1508d (kx 2023-03-24 03:55:33 +0300 65) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 66) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 67) #ifdef __cplusplus
bfc1508d (kx 2023-03-24 03:55:33 +0300 68) }  /* ... extern "C" */
bfc1508d (kx 2023-03-24 03:55:33 +0300 69) #endif
bfc1508d (kx 2023-03-24 03:55:33 +0300 70) 
bfc1508d (kx 2023-03-24 03:55:33 +0300 71) #endif /* __DLIST_H_ */