little patch
This commit is contained in:
parent
77ade504f6
commit
8e401acc8c
3 changed files with 48 additions and 48 deletions
|
@ -36,31 +36,31 @@ struct DB_STR *build_html_page(const struct CONFIG cfg, FILE *fp, const char *fi
|
|||
|
||||
/* Images */
|
||||
size_t images = 0;
|
||||
struct DB_STR *p = db;
|
||||
while (p != NULL) {
|
||||
struct DB_STR *i = p->next;
|
||||
struct DB_STR *bckp = db;
|
||||
while (bckp != NULL) {
|
||||
struct DB_STR *ptr = bckp->next;
|
||||
if (strcmp(file, "index")) {
|
||||
char flag = 1;
|
||||
for (size_t i = 0; i < p->size; i++)
|
||||
if (!strcmp(p->tags[i], file))
|
||||
for (size_t i = 0; i < bckp->size; i++)
|
||||
if (!strcmp(bckp->tags[i], file))
|
||||
flag = 0;
|
||||
|
||||
if (flag) {
|
||||
p = i;
|
||||
bckp = ptr;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(fp, "<a href='%s'>\n<img src='%s' alt='%s'></a><br>\n%s<br>\n", p->filename, p->filename, p->filename, GetDate(cfg.date_fmt, p->birthtime));
|
||||
for (size_t i = 0; i < p->size; i++)
|
||||
fprintf(fp, " • <a href='%s.html'>%s</a>", p->tags[i], p->tags[i]);
|
||||
fprintf(fp, "<a href='%s'>\n<img src='%s' alt='%s'></a><br>\n%s<br>\n", bckp->filename, bckp->filename, bckp->filename, GetDate(cfg.date_fmt, bckp->birthtime));
|
||||
for (size_t i = 0; i < bckp->size; i++)
|
||||
fprintf(fp, " • <a href='%s.html'>%s</a>", bckp->tags[i], bckp->tags[i]);
|
||||
|
||||
if (p->desc)
|
||||
fprintf(fp, " %s", p->desc);
|
||||
if (bckp->desc)
|
||||
fprintf(fp, " %s", bckp->desc);
|
||||
|
||||
fputs("\n<br><br><br>\n", fp);
|
||||
|
||||
p = i;
|
||||
bckp = ptr;
|
||||
images++;
|
||||
if (images == cfg.posts_at_page)
|
||||
break;
|
||||
|
@ -88,7 +88,7 @@ struct DB_STR *build_html_page(const struct CONFIG cfg, FILE *fp, const char *fi
|
|||
}
|
||||
|
||||
fprintf(fp, "\n</center></div>\n</body>\n</html>\n");
|
||||
return p;
|
||||
return bckp;
|
||||
}
|
||||
|
||||
void build_html(const struct CONFIG cfg, const char *file, const struct UNIQ_TAGS ut, struct DB_STR *db) {
|
||||
|
@ -97,9 +97,9 @@ void build_html(const struct CONFIG cfg, const char *file, const struct UNIQ_TAG
|
|||
|
||||
/* Count pages */
|
||||
size_t count = 0;
|
||||
struct DB_STR *p = db;
|
||||
while (p != NULL) {
|
||||
struct DB_STR *i = p->next;
|
||||
struct DB_STR *bckp = db;
|
||||
while (bckp != NULL) {
|
||||
struct DB_STR *ptr = bckp->next;
|
||||
|
||||
if (count > cfg.posts_at_page) {
|
||||
count = 0;
|
||||
|
@ -110,15 +110,15 @@ void build_html(const struct CONFIG cfg, const char *file, const struct UNIQ_TAG
|
|||
count++;
|
||||
|
||||
else {
|
||||
for (size_t i = 0; i < p->size; i++)
|
||||
if (!strcmp(file, p->tags[i]))
|
||||
for (size_t i = 0; i < bckp->size; i++)
|
||||
if (!strcmp(file, bckp->tags[i]))
|
||||
count++;
|
||||
}
|
||||
|
||||
p = i;
|
||||
bckp = ptr;
|
||||
}
|
||||
|
||||
p = db;
|
||||
bckp = db;
|
||||
while (1) {
|
||||
char *new_path;
|
||||
if (page == 0)
|
||||
|
@ -132,8 +132,8 @@ void build_html(const struct CONFIG cfg, const char *file, const struct UNIQ_TAG
|
|||
return;
|
||||
|
||||
/* Builders */
|
||||
p = build_html_page(cfg, fp, file, ut, p, page, pages);
|
||||
if (p == NULL) {
|
||||
bckp = build_html_page(cfg, fp, file, ut, bckp, page, pages);
|
||||
if (bckp == NULL) {
|
||||
fclose(fp);
|
||||
break;
|
||||
}
|
||||
|
@ -154,29 +154,29 @@ void build_xml(const struct CONFIG cfg, struct DB_STR *db) {
|
|||
|
||||
/* Content */
|
||||
size_t count = 0;
|
||||
struct DB_STR *p = db;
|
||||
while (p) {
|
||||
struct DB_STR *i = p->next;
|
||||
struct DB_STR *bckp = db;
|
||||
while (bckp) {
|
||||
struct DB_STR *ptr = bckp->next;
|
||||
|
||||
/* Post */
|
||||
fprintf(fp, "\n<item>\n\t<title>%s</title>\n\t<link>%s%s%s</link>\n\t<guid>%s%s%s</guid>\n\t<pubDate>\n\t\t%s\t</pubDate>\n\t<description><![CDATA[\n\t\t<p><img src='%s%s%s' alt='plup'></p>\n\t\t<p>",
|
||||
p->filename,
|
||||
LINK, CHECK_URL(LINK), p->filename,
|
||||
LINK, CHECK_URL(LINK), p->filename,
|
||||
GetDate(cfg.date_fmt, p->birthtime),
|
||||
LINK, CHECK_URL(LINK), p->filename);
|
||||
bckp->filename,
|
||||
LINK, CHECK_URL(LINK), bckp->filename,
|
||||
LINK, CHECK_URL(LINK), bckp->filename,
|
||||
GetDate(cfg.date_fmt, bckp->birthtime),
|
||||
LINK, CHECK_URL(LINK), bckp->filename);
|
||||
|
||||
/* Tags */
|
||||
for (size_t i = 0; i < p->size; i++)
|
||||
for (size_t i = 0; i < bckp->size; i++)
|
||||
fprintf(fp, "<a href='%s%s%s.html'> %s</a> ",
|
||||
LINK, CHECK_URL(LINK), p->tags[i],
|
||||
p->tags[i]);
|
||||
LINK, CHECK_URL(LINK), bckp->tags[i],
|
||||
bckp->tags[i]);
|
||||
|
||||
fputs("</p>\n\t]]></description>\n</item>", fp);
|
||||
if (count == cfg.max_posts)
|
||||
break;
|
||||
|
||||
p = i;
|
||||
bckp = ptr;
|
||||
count++;
|
||||
}
|
||||
|
||||
|
@ -189,35 +189,35 @@ char **uniq(struct DB_STR *db, size_t *uniq_size) {
|
|||
if (uniq_tag == NULL)
|
||||
return NULL;
|
||||
|
||||
struct DB_STR *p = db;
|
||||
while (p != NULL) {
|
||||
struct DB_STR *i = p->next;
|
||||
struct DB_STR *bckp = db;
|
||||
while (bckp != NULL) {
|
||||
struct DB_STR *ptr = bckp->next;
|
||||
|
||||
for (size_t i = 0; i < p->size; i++) {
|
||||
if (p->tags == NULL)
|
||||
for (size_t i = 0; i < bckp->size; i++) {
|
||||
if (bckp->tags == NULL)
|
||||
break;
|
||||
|
||||
char flag = 0;
|
||||
for (size_t j = 0; j < *uniq_size; j++) {
|
||||
if (!strcmp(p->tags[i], uniq_tag[j]))
|
||||
if (!strcmp(bckp->tags[i], uniq_tag[j]))
|
||||
flag = 1;
|
||||
}
|
||||
|
||||
if (flag)
|
||||
continue;
|
||||
|
||||
char **bckp = realloc(uniq_tag, sizeof(char *) * (*uniq_size + 1));
|
||||
char **ut_bckp = realloc(uniq_tag, sizeof(char *) * (*uniq_size + 1));
|
||||
if (bckp == NULL) {
|
||||
free(uniq_tag);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
uniq_tag = bckp;
|
||||
uniq_tag[*uniq_size] = p->tags[i];
|
||||
uniq_tag = ut_bckp;
|
||||
uniq_tag[*uniq_size] = bckp->tags[i];
|
||||
(*uniq_size)++;
|
||||
}
|
||||
|
||||
p = i;
|
||||
bckp = ptr;
|
||||
}
|
||||
|
||||
return uniq_tag;
|
||||
|
|
4
src/db.c
4
src/db.c
|
@ -10,7 +10,7 @@
|
|||
|
||||
void free_db(struct DB_STR *db) {
|
||||
while (db != NULL) {
|
||||
struct DB_STR *i = db->next;
|
||||
struct DB_STR *ptr = db->next;
|
||||
|
||||
if (db->filename != NULL)
|
||||
free(db->filename);
|
||||
|
@ -27,7 +27,7 @@ void free_db(struct DB_STR *db) {
|
|||
}
|
||||
|
||||
free(db);
|
||||
db = i;
|
||||
db = ptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ void help(void) {
|
|||
char *gen_id(const char *filename) {
|
||||
const char *alf = "qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
|
||||
|
||||
char *ext = strrchr(filename, '.');
|
||||
const char *ext = strrchr(filename, '.');
|
||||
if (ext == NULL)
|
||||
ext = "";
|
||||
|
||||
|
@ -216,7 +216,7 @@ int main(int argc, char **argv) {
|
|||
ret = rebuild(cfg);
|
||||
|
||||
else if (!strcmp(argv[0], "version"))
|
||||
printf("%s (8img) version: 2\nWritten under WTFPL License.\n", cfg.prog_name);
|
||||
printf("%s (8img) version: 2.0.1\nWritten under WTFPL License.\n", cfg.prog_name);
|
||||
|
||||
else
|
||||
help();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue