#include
#include
#include
//#define DEBUG
int main(int argc, char *argv[]) {
char *buffer=NULL;
double size=0;
FILE *fd;
size_t result;
char *lindent=NULL; //left indent
char *rindent=NULL; //right indent
int i=0, st=0, stevec=0, j=1;
char *max;
if ((fd=fopen(argv[1], "r")) == NULL) {
printf("Ne morem odpreti datoteke za branje");
exit(1);
}
// dobimo velikost datoteke
fseek(fd, 0, SEEK_END);
size = ftell(fd);
rewind(fd);
// rezerviramo dovolj pomnilnika
buffer = (char *) malloc(sizeof(char)*size);
if (buffer == NULL) {
exit(1);
}
// preberemo datoteko v pomnilnik
result = fread(buffer, 1, size, fd);
fclose(fd);
//**********************************
// operiranje nad pomnilnikom
//**********************************
// postavimo robni pogoj
if ((max = strstr(buffer,"
') + 1;
rindent=strchr(lindent,'<');
st = rindent-lindent;
#ifdef DEBUG
printf("%d",st);
#endif
// izpisemo ravno znake med krajisci
for (i=0; i')) stevec--;
else if ((*(lindent+j) == '<') && (*(lindent+j+1) == '/')) {
stevec--;
#ifdef DEBUG
printf("(st:%d)",stevec);
#endif
// ko smo nasli tag break, se pomaknemo do konca tega taga in prekinemo izvajanje
lindent=strchr((lindent+j), '>');
break;
}
}
}
free(buffer);
return 0;
}