Mega Code Archive

 
Categories / C / Small Application
 

Quick hack convert M$ favorites to html list

#include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <dirent.h> #include <sys/stat.h> #define PACKAGE "forvavo" /* recursion */ void recdir(char *dir); int main(int argc, char *argv[]) { if(argc != 2) fprintf(stderr, "%s [directory]\n", PACKAGE), exit(EXIT_FAILURE); else { printf("<HTML>\n"); printf(" <HEAD>\n"); printf(" <TITLE>favorites</TITLE>\n"); printf(" </HEAD>\n"); printf("<BODY>\n"); recdir(argv[1]); printf("</BODY>\n"); printf("</HTML>\n"); } return 0; } void recdir(char *dir) { DIR *dp; FILE *fp; char *ptr; char line[1024]; struct dirent *entry; struct stat statbuf; if((dp = opendir(dir)) == NULL) { fprintf(stderr, "Cannot open directory: %s\n", dir); return; } chdir(dir); while((entry = readdir(dp)) != NULL) { stat(entry->d_name, &statbuf); if(S_ISDIR(statbuf.st_mode)) { if(strcmp(".", entry->d_name) == 0 || strcmp("..", entry->d_name) == 0) continue; printf("\n<H1>%s</H1>\n", entry->d_name); printf(" <UL>\n"); recdir(entry->d_name); } else { if((fp = fopen(entry->d_name, "r")) == NULL) perror(PACKAGE); else { while((fgets(line, 1024, fp)) != NULL) { if(strncmp(line, "URL=", 4) == 0) { printf(" <LI><A href=\""); for(ptr = line, ptr += 4; *ptr; ptr++) if(*ptr != '\n' && *ptr != '\r') printf("%c", *ptr); printf("\">%s</A>\n", entry->d_name); } /* while */ } /* else */ fclose(fp); } /* else */ } /* if */ } /* while */ chdir(".."); printf("</UL>\n"); closedir(dp); }