/* dirList.h
   header file for dirList.c */

     /*---------------------------------------------------------------*/
     /* Xgopher        version 1.2     20 November 1991               */
     /*                version 1.1     20 April 1991                  */
     /*                version 1.0     04 March 1991                  */
     /* X window system client for the University of Minnesota        */
     /*                                Internet Gopher System.        */
     /* Allan Tuchman, University of Illinois at Urbana-Champaign     */
     /*                Computing and Communications Services Office   */
     /* Copyright 1992 by                                             */
     /*           the Board of Trustees of the University of Illinois */
     /* Permission is granted to freely copy and redistribute this    */
     /* software with the copyright notice intact.                    */
     /*---------------------------------------------------------------*/


#ifndef DIRLIST_H
#define DIRLIST_H

#include "gopher.h"


gopherDirP	acquireDir(
		);

void		releaseDir(
#ifdef PROTO
			gopherDirP	/* dir */
#endif
		);

gopherDirP	previousDir(
#ifdef PROTO
			gopherDirP	/* dir */
#endif
		);

gopherDirP	nextDir(
#ifdef PROTO
			gopherDirP	/* dir */
#endif
		);

static void	freeDirList(
#ifdef PROTO
			gopherDirP	/* dir */
#endif
		);

static void	allocGopherDir(
#ifdef PROTO
			int		/* n */
#endif
		);

gopherDirP	getCurrentDir(
		);

void		pushCurrentDir(
#ifdef PROTO
			gopherDirP	/* dir */
#endif
		);

void		popCurrentDir(
		);

static void	reallyPopFrom(
#ifdef PROTO
			gopherDirP	/* dir */
#endif
		);

char *		getCurrentDirIndex(
		);

BOOLEAN		atFirstDir(
		);

void		clearDirStack(
		);

void		checkDirStack(
		);

#endif /* DIRLIST_H */
