#include #include #include #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)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); }