view lwlib/lw_stack.h @ 275:776a076d1afa

Makefile: Allow DESTDIR for distribution package creation Build infrastructures for distribution package management like Debian and Redhat use DESTDIR to designate a virtual root directory for the package contents, as per the GNU convention: http://www.gnu.org/prep/standards/html_node/DESTDIR.html To specify a simple installation directory target, use INSTALLDIR instead. Also use "install" to create the directory if needed. Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
author Tormod Volden <debian.tormod@gmail.com>
date Wed, 05 Jun 2013 19:57:09 -0600
parents 00ddfdc1e1e3
children 8e25147c2aa8
line wrap: on
line source

/*
lw_stack.h

Copyright © 2010 William Astle

This file is part of LWTOOLS.

LWTOOLS 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 3 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, see <http://www.gnu.org/licenses/>.
*/

#ifndef ___lw_stack_h_seen___
#define ___lw_stack_h_seen___


#ifdef ___lw_stack_c_seen___
struct lw_stack_node_priv
{
	void *data;
	struct lw_stack_node_priv *next;
};

struct lw_stack_priv
{
	struct lw_stack_node_priv *head;
	void (*freefn)(void *d);
};

typedef struct lw_stack_priv * lw_stack_t;


#else /* def ___lw_stack_c_seen___ */

typedef void * lw_stack_t;
extern lw_stack_t lw_stack_create(void (*freefn)(void *d));
extern void lw_stack_destroy(lw_stack_t S);
extern void *lw_stack_top(lw_stack_t S);
extern void *lw_stack_pop(lw_stack_t S);
extern void lw_stack_push(lw_stack_t S, void *item);

#endif /* def ___lw_stack_c_seen___ */

#endif /* ___lw_stack_h_seen___ */