home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
001-099
/
ff098.lzh
/
Backup
/
stack.c
< prev
Wrap
C/C++ Source or Header
|
1987-09-02
|
848b
|
51 lines
#include <stdio.h>
extern char *malloc ();
extern char *strsave ();
struct stack_st {
struct stack_st *next;
char *filename;
};
int
push ( stack , filename )
struct stack_st **stack;
char *filename;
{
struct stack_st *p , **pp;
p = (struct stack_st *) malloc ( sizeof ( struct stack_st ) );
if ( p == NULL )
return ( 0 );
p->filename = strsave ( filename );
if ( p->filename == NULL ) {
free ( p );
return ( 0 );
}
p->next = NULL;
for ( pp = stack; *pp != NULL; pp = &(*pp)->next ) ;
*pp = p;
return ( 1 );
}
char *
pop ( stack )
struct stack_st **stack;
{
char *filename;
struct stack_st *p , **pp;
static char buf[ 512 ];
if ( *stack == NULL )
return ( NULL );
for ( pp = stack; (*pp)->next != NULL; pp = &(*pp)->next ) ;
strcpy ( buf , (*pp)->filename );
free ( (*pp)->next );
*pp = NULL;
return ( buf );
}