Browse Source

posts are sorted correctly now

master
mort 9 years ago
parent
commit
df1f71134c
5 changed files with 31 additions and 6 deletions
  1. 2
    2
      Makefile
  2. 0
    0
      resources/pages/0000-example/0000-example
  3. 0
    0
      resources/pages/0000-example/page
  4. 6
    4
      src/cms_build.c
  5. 23
    0
      src/main.c

+ 2
- 2
Makefile View File

@@ -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)

resources/pages/0001-example/0001-example → resources/pages/0000-example/0000-example View File


resources/pages/0001-example/page → resources/pages/0000-example/page View File


+ 6
- 4
src/cms_build.c View File

@@ -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);
}

+ 23
- 0
src/main.c View File

@@ -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

Loading…
Cancel
Save