little patch

This commit is contained in:
Your Name 2025-06-08 21:55:26 +03:00
parent 77ade504f6
commit 8e401acc8c
3 changed files with 48 additions and 48 deletions

View file

@ -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>&nbsp; ",
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;

View file

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

View file

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