head 1.2; access; symbols adns_1_0:1.1.1.2 adns_0_9:1.1.1.2 adns_0_8:1.1.1.2 adns_0_7:1.1.1.1 adns_0_6:1.1.1.1 vendor:1.1.1; locks; strict; comment @ * @; 1.2 date 2000.08.12.12.01.15; author rse; state Exp; branches; next 1.1; 1.1 date 99.11.30.15.42.25; author rse; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 99.11.30.15.42.25; author rse; state Exp; branches; next 1.1.1.2; 1.1.1.2 date 2000.05.08.14.05.32; author rse; state Exp; branches; next ; desc @@ 1.2 log @- merge in conflicts of upgrade to ADNS 0.9 - upgrade to GNU shtool 1.5.1 - upgrade to GNU libtool 1.3.5 - replace LIST_ stuff with ADNS_LIST_ to avoid conflicts with FreeBSD @ text @/* * dlist.h * - macros for handling doubly linked lists */ /* * This file is * Copyright (C) 1997-1999 Ian Jackson * * It is part of adns, which is * Copyright (C) 1997-2000 Ian Jackson * Copyright (C) 1999 Tony Finch * * 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, 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. */ #ifndef ADNS_DLIST_H_INCLUDED #define ADNS_DLIST_H_INCLUDED #define ADNS_LIST_INIT(list) ((list).head= (list).tail= 0) #define ADNS_LINK_INIT(link) ((link).next= (link).back= 0) #define ADNS_LIST_UNLINK_PART(list,node,part) \ do { \ if ((node)->part back) (node)->part back->part next= (node)->part next; \ else (list).head= (node)->part next; \ if ((node)->part next) (node)->part next->part back= (node)->part back; \ else (list).tail= (node)->part back; \ } while(0) #define ADNS_LIST_LINK_TAIL_PART(list,node,part) \ do { \ (node)->part next= 0; \ (node)->part back= (list).tail; \ if ((list).tail) (list).tail->part next= (node); else (list).head= (node); \ (list).tail= (node); \ } while(0) #define ADNS_LIST_UNLINK(list,node) ADNS_LIST_UNLINK_PART(list,node,) #define ADNS_LIST_LINK_TAIL(list,node) ADNS_LIST_LINK_TAIL_PART(list,node,) #endif @ 1.1 log @Initial revision @ text @d10 1 a10 1 * Copyright (C) 1997-1999 Ian Jackson d31 2 a32 2 #define LIST_INIT(list) ((list).head= (list).tail= 0) #define LINK_INIT(link) ((link).next= (link).back= 0) d34 1 a34 1 #define LIST_UNLINK_PART(list,node,part) \ d42 1 a42 1 #define LIST_LINK_TAIL_PART(list,node,part) \ d50 2 a51 2 #define LIST_UNLINK(list,node) LIST_UNLINK_PART(list,node,) #define LIST_LINK_TAIL(list,node) LIST_LINK_TAIL_PART(list,node,) @ 1.1.1.1 log @Import of adns 0.6; adjusted for OSSP @ text @@ 1.1.1.2 log @Import of ADNS 0.8 @ text @d10 1 a10 1 * Copyright (C) 1997-2000 Ian Jackson @