| @@ -1,10 +1,10 @@ | |||
| appname = housecat | |||
| build: | |||
| gcc -O3 -o $(appname) src/*.c -std=c99 | |||
| gcc -O3 -o $(appname) src/*.c -std=c99 -D_XOPEN_SOURCE=700 | |||
| debug: | |||
| gcc -o $(appname) src/*.c -std=c99 -DDEBUG=1 | |||
| gcc -o $(appname) src/*.c -std=c99 -DDEBUG=1 -D_XOPEN_SOURCE=700 | |||
| install: | |||
| mv $(appname) /usr/bin/$(appname) | |||
| @@ -14,8 +14,9 @@ | |||
| cms_err* cms_build_make_tree(cms_page* root, char* path, char* dirname) | |||
| { | |||
| DIR* dp = opendir(path); | |||
| if (dp == NULL) | |||
| struct dirent** namelist; | |||
| int n = scandir(path, &namelist, 0, alphasort); | |||
| if (n == -1) | |||
| return cms_err_from_std_err(errno); | |||
| struct dirent* ep; | |||
| @@ -24,8 +25,9 @@ cms_err* cms_build_make_tree(cms_page* root, char* path, char* dirname) | |||
| if (st == NULL) | |||
| return cms_err_create(CMS_ERR_ALLOC, NULL); | |||
| while (ep = readdir(dp)) | |||
| for (int i = 0; i < n; ++i) | |||
| { | |||
| ep = namelist[i]; | |||
| if (ep->d_name[0] == '.') | |||
| continue; | |||
| @@ -86,8 +88,8 @@ cms_err* cms_build_make_tree(cms_page* root, char* path, char* dirname) | |||
| free(entpath); | |||
| } | |||
| closedir(dp); | |||
| free(st); | |||
| free(namelist); | |||
| return cms_err_create(CMS_ERR_NONE, NULL); | |||
| } | |||
| @@ -8,6 +8,27 @@ | |||
| #include "cms_page.h" | |||
| #include "cms_build.h" | |||
| //Temporary, for testing purposes | |||
| static void print_page_tree(cms_page* page) | |||
| { | |||
| printf("Page: %s\n", page->title); | |||
| //Loop over posts | |||
| size_t i; | |||
| for (i = 0; i < page->numposts; ++i) | |||
| { | |||
| printf("\tPost: %s\n", (page->posts[i]).title); | |||
| } | |||
| //Loop over subs | |||
| for (i = 0; i < page->numsubs; ++i) | |||
| { | |||
| print_page_tree(&page->subs[i]); | |||
| } | |||
| printf("---------\n"); | |||
| } | |||
| int main(int argc, char** argv) | |||
| { | |||
| if (argc < 2) | |||
| @@ -82,6 +103,8 @@ int main(int argc, char** argv) | |||
| free(path); | |||
| if (err) | |||
| cms_err_panic(err); | |||
| print_page_tree(root); | |||
| } | |||
| //Nothing, print usage | |||