]> Pileus Git - site/blobdiff - src/main.c
Misc updates..
[site] / src / main.c
index 8cfc49ca52378a3a48afd6c357dc166e8ada3d0f..7887528ca44066a75ef68ad37866f33f806e23b7 100644 (file)
@@ -140,6 +140,8 @@ menu_t *get_menu_rec(char *prefix, char **parts)
                if (nameval) next->name = nameval;
                if (!next->path) next->path = g_strdup(entries[i]);
                if (!next->name) next->name = g_strdup(entries[i]);
+               if (!parts[0] && !strcmp(next->base, "index"))
+                       next->show = SHOW_ACTIVE;
                cur = cur->next = next;
        }
        g_strfreev(entries);
@@ -153,6 +155,8 @@ menu_t *get_menu_rec(char *prefix, char **parts)
                        continue;
                if ((next = get_menu_entry(prefix, entries[i])))
                        cur = cur->next = next;
+               if (!strcmp(cur->base, "index"))
+                       cur->show = SHOW_HIDDEN;
        }
        g_strfreev(entries);
        g_key_file_free(conf);
@@ -165,8 +169,6 @@ menu_t *get_menu_rec(char *prefix, char **parts)
                        cur->kids = get_menu_rec(cur->path, parts+1);
                        cur->show = SHOW_ACTIVE;
                }
-               if (!strcmp(cur->base, "index"))
-                       cur->show = SHOW_HIDDEN;
        }
 
 error:
@@ -247,13 +249,15 @@ static void do_regular(page_t *page, const char *file)
                else
                        page->html = markdown_to_string(page->text, 0, 0);
        } else {
-               page->html = g_strdup("Page not found");
+               page->error = g_strdup("403 Forbidden");
+               page->html  = g_strdup("Page not accessable\n");
        }
 }
 
 static void do_notfound(page_t *page, const char *path)
 {
-       page->html = "Page not found";
+       page->error = g_strdup("404 Not Found");
+       page->html  = g_strdup("Page not found\n");
 }
 
 static char *clean(const char *src)
@@ -277,9 +281,7 @@ static char *clean(const char *src)
 /* Main */
 int main(int argc, char **argv)
 {
-       char *path = clean(getenv("PATH_INFO") ?: "/aweather/");
-
-       print_header();
+       char *path = clean(getenv("PATH_INFO") ?: "/");
 
        page_t *page = get_page(path);
        menu_t *menu = get_menu(path);
@@ -303,6 +305,7 @@ int main(int argc, char **argv)
        g_free(index);
        g_free(file);
 
+       print_header(page);
        print_page(page, menu);
 
        return 0;