#include <time.h>

#include <stdio.h>

#include <stdlib.h>

#include "chain.h"


#define NODE_TYP_DIR   0

#define NODE_TYP_FILE  1

#define NODE_TYP_LINK  2


typedef struct t_nodeent
		{
		 struct t_nodeent *parent;
		 struct t_nodeent *root;
		 struct t_nodeent **children;

		 char *name;      /* = basename () */
		 char *dir;       /* = dirname ()  */
		 time_t ctime, mtime;
		 int type;
		} t_nodeent;

element *demochain;

int scannode(char *s, t_nodeent *node)
{
/*char *tmps=(char *)malloc(strlen(node->name)+strlen(node->dir)+2);
statbuf statinfos;

 strcpy(tmps, node->name);
 strcat(tmps, "/");
 strcat(tmps, node->dir);
 stat(tmps, &statinfos);

 if (S_ISDIR(statinfos))
  {
  }
 else
  {
  }
*/
}

int strcomp(char *s1, char *s2)
{
int i,r;

r=0;
i=strlen(s1);
i=strlen(s2)<i?strlen(s2):i;

while ((*s1==*s2) && (i>0))
 {
  s1++;
  s2++;
  i--;
 }

if (*s1>*s2)
 r=1;
else
 if (*s2>*s1)
  r=-1;

return(r);
}

void addstring(char *s)
{
int i;
element *e=head(demochain);

while (e->next!=NULL)
 {
  i=strcomp((char *)e->next->cur,s);
  if ((i>0))
   {
    printf("%s < %s.\n",s,e->cur);
    break;
   }
  e=e->next;
 }

 demochain=addelement(s,strlen(s)+1,e);
}

element *findstring(char *s)
{
element *e=head(demochain);

while (e->next!=NULL)
 {
  e=e->next;
  if (strcomp(s, (char *)e->cur) == 0)
   break;
 }

 return(e);
}

void dumpchain()
{
element *e=head(demochain);
/*element *f=tail(demochain);*/
int i=0;

 while (e->next!=NULL)
  {
   e=e->next;
/*   f=f->prev; */
   if (e->cur!=NULL)
    printf("Element e[%d] = '%s'\n", ++i, e->cur);
/*    printf("Element e[%d] = '%s' f[%d]='%s'\n", ++i, e->cur, i, f->cur);*/
  }
}

void doinput()
{
char c[255];

strcpy(c,"TEST");

while (strcmp(c,".")!=0)
{
 printf("TEXT [or . to finish]: ");
 scanf("%200s",c);
 addstring(c);
 dumpchain();
}
}

int main(int argc, char **argv)
{

printf("Hallo Welt.\n");
printf("strcmp('a','a')=%d\n",strcomp("a","a"));
printf("strcmp('a','b')=%d\n",strcomp("a","b"));
printf("strcmp('b','a')=%d\n",strcomp("b","a"));
printf("strcmp('ab','aa')=%d\n",strcomp("ab","aa"));
printf("strcmp('acc','axt')=%d\n",strcomp("acc","axt"));
printf("strcmp('abcdef', '')=%d\n",strcomp("abcdef",""));
demochain=newchain();
dumpchain();
doinput();
return(0);
}


syntax highlighted by Code2HTML, v. 0.9.1