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 */
|
/* Images */
|
||||||
size_t images = 0;
|
size_t images = 0;
|
||||||
struct DB_STR *p = db;
|
struct DB_STR *bckp = db;
|
||||||
while (p != NULL) {
|
while (bckp != NULL) {
|
||||||
struct DB_STR *i = p->next;
|
struct DB_STR *ptr = bckp->next;
|
||||||
if (strcmp(file, "index")) {
|
if (strcmp(file, "index")) {
|
||||||
char flag = 1;
|
char flag = 1;
|
||||||
for (size_t i = 0; i < p->size; i++)
|
for (size_t i = 0; i < bckp->size; i++)
|
||||||
if (!strcmp(p->tags[i], file))
|
if (!strcmp(bckp->tags[i], file))
|
||||||
flag = 0;
|
flag = 0;
|
||||||
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
p = i;
|
bckp = ptr;
|
||||||
continue;
|
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));
|
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 < p->size; i++)
|
for (size_t i = 0; i < bckp->size; i++)
|
||||||
fprintf(fp, " • <a href='%s.html'>%s</a>", p->tags[i], p->tags[i]);
|
fprintf(fp, " • <a href='%s.html'>%s</a>", bckp->tags[i], bckp->tags[i]);
|
||||||
|
|
||||||
if (p->desc)
|
if (bckp->desc)
|
||||||
fprintf(fp, " %s", p->desc);
|
fprintf(fp, " %s", bckp->desc);
|
||||||
|
|
||||||
fputs("\n<br><br><br>\n", fp);
|
fputs("\n<br><br><br>\n", fp);
|
||||||
|
|
||||||
p = i;
|
bckp = ptr;
|
||||||
images++;
|
images++;
|
||||||
if (images == cfg.posts_at_page)
|
if (images == cfg.posts_at_page)
|
||||||
break;
|
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");
|
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) {
|
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 */
|
/* Count pages */
|
||||||
size_t count = 0;
|
size_t count = 0;
|
||||||
struct DB_STR *p = db;
|
struct DB_STR *bckp = db;
|
||||||
while (p != NULL) {
|
while (bckp != NULL) {
|
||||||
struct DB_STR *i = p->next;
|
struct DB_STR *ptr = bckp->next;
|
||||||
|
|
||||||
if (count > cfg.posts_at_page) {
|
if (count > cfg.posts_at_page) {
|
||||||
count = 0;
|
count = 0;
|
||||||
|
@ -110,15 +110,15 @@ void build_html(const struct CONFIG cfg, const char *file, const struct UNIQ_TAG
|
||||||
count++;
|
count++;
|
||||||
|
|
||||||
else {
|
else {
|
||||||
for (size_t i = 0; i < p->size; i++)
|
for (size_t i = 0; i < bckp->size; i++)
|
||||||
if (!strcmp(file, p->tags[i]))
|
if (!strcmp(file, bckp->tags[i]))
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = i;
|
bckp = ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = db;
|
bckp = db;
|
||||||
while (1) {
|
while (1) {
|
||||||
char *new_path;
|
char *new_path;
|
||||||
if (page == 0)
|
if (page == 0)
|
||||||
|
@ -132,8 +132,8 @@ void build_html(const struct CONFIG cfg, const char *file, const struct UNIQ_TAG
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Builders */
|
/* Builders */
|
||||||
p = build_html_page(cfg, fp, file, ut, p, page, pages);
|
bckp = build_html_page(cfg, fp, file, ut, bckp, page, pages);
|
||||||
if (p == NULL) {
|
if (bckp == NULL) {
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -154,29 +154,29 @@ void build_xml(const struct CONFIG cfg, struct DB_STR *db) {
|
||||||
|
|
||||||
/* Content */
|
/* Content */
|
||||||
size_t count = 0;
|
size_t count = 0;
|
||||||
struct DB_STR *p = db;
|
struct DB_STR *bckp = db;
|
||||||
while (p) {
|
while (bckp) {
|
||||||
struct DB_STR *i = p->next;
|
struct DB_STR *ptr = bckp->next;
|
||||||
|
|
||||||
/* Post */
|
/* 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>",
|
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,
|
bckp->filename,
|
||||||
LINK, CHECK_URL(LINK), p->filename,
|
LINK, CHECK_URL(LINK), bckp->filename,
|
||||||
LINK, CHECK_URL(LINK), p->filename,
|
LINK, CHECK_URL(LINK), bckp->filename,
|
||||||
GetDate(cfg.date_fmt, p->birthtime),
|
GetDate(cfg.date_fmt, bckp->birthtime),
|
||||||
LINK, CHECK_URL(LINK), p->filename);
|
LINK, CHECK_URL(LINK), bckp->filename);
|
||||||
|
|
||||||
/* Tags */
|
/* 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> ",
|
fprintf(fp, "<a href='%s%s%s.html'> %s</a> ",
|
||||||
LINK, CHECK_URL(LINK), p->tags[i],
|
LINK, CHECK_URL(LINK), bckp->tags[i],
|
||||||
p->tags[i]);
|
bckp->tags[i]);
|
||||||
|
|
||||||
fputs("</p>\n\t]]></description>\n</item>", fp);
|
fputs("</p>\n\t]]></description>\n</item>", fp);
|
||||||
if (count == cfg.max_posts)
|
if (count == cfg.max_posts)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
p = i;
|
bckp = ptr;
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,35 +189,35 @@ char **uniq(struct DB_STR *db, size_t *uniq_size) {
|
||||||
if (uniq_tag == NULL)
|
if (uniq_tag == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
struct DB_STR *p = db;
|
struct DB_STR *bckp = db;
|
||||||
while (p != NULL) {
|
while (bckp != NULL) {
|
||||||
struct DB_STR *i = p->next;
|
struct DB_STR *ptr = bckp->next;
|
||||||
|
|
||||||
for (size_t i = 0; i < p->size; i++) {
|
for (size_t i = 0; i < bckp->size; i++) {
|
||||||
if (p->tags == NULL)
|
if (bckp->tags == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
char flag = 0;
|
char flag = 0;
|
||||||
for (size_t j = 0; j < *uniq_size; j++) {
|
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;
|
flag = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag)
|
if (flag)
|
||||||
continue;
|
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) {
|
if (bckp == NULL) {
|
||||||
free(uniq_tag);
|
free(uniq_tag);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
uniq_tag = bckp;
|
uniq_tag = ut_bckp;
|
||||||
uniq_tag[*uniq_size] = p->tags[i];
|
uniq_tag[*uniq_size] = bckp->tags[i];
|
||||||
(*uniq_size)++;
|
(*uniq_size)++;
|
||||||
}
|
}
|
||||||
|
|
||||||
p = i;
|
bckp = ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
return uniq_tag;
|
return uniq_tag;
|
||||||
|
|
4
src/db.c
4
src/db.c
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
void free_db(struct DB_STR *db) {
|
void free_db(struct DB_STR *db) {
|
||||||
while (db != NULL) {
|
while (db != NULL) {
|
||||||
struct DB_STR *i = db->next;
|
struct DB_STR *ptr = db->next;
|
||||||
|
|
||||||
if (db->filename != NULL)
|
if (db->filename != NULL)
|
||||||
free(db->filename);
|
free(db->filename);
|
||||||
|
@ -27,7 +27,7 @@ void free_db(struct DB_STR *db) {
|
||||||
}
|
}
|
||||||
|
|
||||||
free(db);
|
free(db);
|
||||||
db = i;
|
db = ptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ void help(void) {
|
||||||
char *gen_id(const char *filename) {
|
char *gen_id(const char *filename) {
|
||||||
const char *alf = "qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
|
const char *alf = "qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
|
||||||
|
|
||||||
char *ext = strrchr(filename, '.');
|
const char *ext = strrchr(filename, '.');
|
||||||
if (ext == NULL)
|
if (ext == NULL)
|
||||||
ext = "";
|
ext = "";
|
||||||
|
|
||||||
|
@ -216,7 +216,7 @@ int main(int argc, char **argv) {
|
||||||
ret = rebuild(cfg);
|
ret = rebuild(cfg);
|
||||||
|
|
||||||
else if (!strcmp(argv[0], "version"))
|
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
|
else
|
||||||
help();
|
help();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue