
/*****$DEF : *Jérôme Santini*Tst*0.01*1.00* $*
**	___000011		TAB SIZE = 4
**
**               ###
** (c)    ##    ##               ##
**       ###   #               ##  ##
**      # ##                  #      #
**        ##   ####   ##  ###   #####    #  ##   ##     ####
**        ##  #   ## ### #     #    ##  ## # ## # ##   #   ##
**        ## ##   #   ###     ##    ## ####  ###  ##  ##   #
**        ## #####    ##      ##    ##  ##   ##   ## ######
**        ## ##    #  ##      ##    #   ##   ##   ### ##    #
**        ##  #####   ##       #####    ##   ##   ##   #####
**        ##
**        ##       ######                              #              #
**        #       #      #                            #              #
**       #       ##                             #
**  #####        ##          #####    #  ##    ##     ##    #  ##    ##
**               ###        #   ##   ## # ##  #####  ###   ## # ##  ###
**                ###      ##   ##  ####  ##   ##     ##  ####  ##   ##
**                  ###    ##  ### # ##   ## # ##   # ## # ##   ## # ## #
**                    ###  ## # ###  ##   ###  ##  #  ###  ##   ###  ###
**                     ###  ##   #   ##   ##    ###   ##   ##   ##   ##
**                      ##
**                      ##
**               #      #  	$Author : Jérôme Santini $
**                ######  	$Creation : 22/12/1992 12:09:24 $
**                        	$Locker : Jérôme Santini $
**                        	$Date : 22/12/1992 12:09:24 $
**
**	$Source : WorkBench:System/Sources/CData/CS/pai/pai.c $
**	$Release : 1.00 $
**	$Revision : 0.01 $
**	$State : Tst $
**	$Translator : SAS/C V5.10a $
**
**	$Description :
** 	Extraire les sommaires des PAI.
**  $
**
**	$Log : Pai.c $
** Revision 0.01 22/12/1992 12:09:24 Jérôme Santini Tst ( SAS/C V5.10a )
** 	***    Creation ...   ***
**
*******************************************************************************/

static char     pai_id[] = "$Id : Pai.c           0.001 22/12/1992 12:09:24 Jérôme Santini / Jérôme Santini Tst $";
static char     pai_cp[] = "$Compiled: " __FILE__ "\t" __DATE__ " / " __TIME__ " (___000011) $";

/*============================================================================

 	INCLUDES ...

  ============================================================================*/

#include <proto/dos.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
#include <mylib/print.h>

/*============================================================================

 	DEFINES / PROTOS ...

  ============================================================================*/

/*============================================================================

 	VARIABLES GLOBALES ...

  ============================================================================*/

/*============================================================================

 	CODE ...

  ============================================================================*/

#define gets(buffer)	FGets(handle,buffer,256)

char *non[] =
{
	"mois",
	"forum",
	"rature",	/* littérarture */
	"articles",
	NULL,
};

short prog(char *txt)
{
	short i ;
	for(i=0;non[i];i++)
	{
		if(stricmp(non[i],txt)==0)
			return(0);
	}
	return(1);
}


long 
getsommaire(char *disk)
{
	char            buffer[256],
	               *ptr,
	                buff2[256];
	long            num = NULL;
	BPTR            handle;

	ptr = stpcpy(buffer, disk);
	stpcpy(ptr, "sommaire");
	if (handle = Open(buffer, MODE_OLDFILE))
	{
		gets(buffer);
		gets(buffer);

		ptr = buffer;
		while (*ptr && isdigit(*ptr) == 0)
			ptr++;
		if(*ptr == '°') ptr++;
		StrToLong(ptr, &num);

		while (gets(buffer))
			if (ptr = strchr(buffer, ':'))
				if (gets(buff2))
					if (strchr(buff2, '~'))
					{
						do
						{
							*ptr-- = 0;
						}
						while (isspace(*ptr));
						ptr--;
						while (*ptr && isspace(*ptr) == 0)
							ptr--;
						ptr++;

						if(prog(ptr))
							printf("%04ld : %s\n", num, ptr);
						
					}
	}
	return (num);
}

	struct FileInfoBlock fib;

void 
getarticles(long num, char *disk)
{
	char            buffer[256],
				   *ptr;
	BPTR	lock ;

	ptr = stpcpy(buffer, disk);
	stpcpy(ptr, "articles");
	if(lock = Lock(buffer,-2))
	{
		if(Examine(lock,&fib)==-1)
		{
			while (ExNext(lock, &fib) == -1)
			{
				stcgfe(buffer,fib.fib_FileName);
				if(stricmp("info",buffer)!= 0)	/* info */
					printf("%04ld : Articles/%s\n", num,fib.fib_FileName);
			}
		}
	}
}

void 
main(long argc , char **argv)
{
	long            num;

	if (argc > 1)
	{
		if (num = getsommaire(argv[1]))
			getarticles(num, argv[1]);
	}
}
