Переглянути джерело

posts are sorted correctly now

master
mort 9 роки тому
джерело
коміт
df1f71134c

+ 2
- 2
Makefile Переглянути файл

appname = housecat appname = housecat


build: build:
gcc -O3 -o $(appname) src/*.c -std=c99
gcc -O3 -o $(appname) src/*.c -std=c99 -D_XOPEN_SOURCE=700


debug: debug:
gcc -o $(appname) src/*.c -std=c99 -DDEBUG=1
gcc -o $(appname) src/*.c -std=c99 -DDEBUG=1 -D_XOPEN_SOURCE=700


install: install:
mv $(appname) /usr/bin/$(appname) mv $(appname) /usr/bin/$(appname)

resources/pages/0001-example/0001-example → resources/pages/0000-example/0000-example Переглянути файл


resources/pages/0001-example/page → resources/pages/0000-example/page Переглянути файл


+ 6
- 4
src/cms_build.c Переглянути файл



cms_err* cms_build_make_tree(cms_page* root, char* path, char* dirname) 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); return cms_err_from_std_err(errno);


struct dirent* ep; struct dirent* ep;
if (st == NULL) if (st == NULL)
return cms_err_create(CMS_ERR_ALLOC, 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] == '.') if (ep->d_name[0] == '.')
continue; continue;


free(entpath); free(entpath);
} }


closedir(dp);
free(st); free(st);
free(namelist);


return cms_err_create(CMS_ERR_NONE, NULL); return cms_err_create(CMS_ERR_NONE, NULL);
} }

+ 23
- 0
src/main.c Переглянути файл

#include "cms_page.h" #include "cms_page.h"
#include "cms_build.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) int main(int argc, char** argv)
{ {
if (argc < 2) if (argc < 2)
free(path); free(path);
if (err) if (err)
cms_err_panic(err); cms_err_panic(err);

print_page_tree(root);
} }


//Nothing, print usage //Nothing, print usage

Завантаження…
Відмінити
Зберегти