slw2gmi

Конвертор из slweb-а у Џемини
git clone https://git.sr.ht/~strahinja/slw2gmi
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување a85d12b18ecf13939d253d9c9ffc8276a523b2e4
родитељ b7d717be87d2611fe70e50138e99a9185b2b2b3d
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Thu, 11 Apr 2024 11:27:31 +0200

slw2gmi.c: Fix incdir

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
Mslw2gmi.c | 24++++++++++--------------
измењених датотека: 1, додавања: 10(+), брисања: 14(-)

diff --git a/slw2gmi.c b/slw2gmi.c @@ -1633,6 +1633,7 @@ process_incdir_subdir(FILE* output, const char* subdirname, int result = 0; ULLONG saved_state = ST_NONE; char* filename = NULL; + char* abs_filename = NULL; char* link = NULL; u8* title = NULL; u8* date = NULL; @@ -1641,12 +1642,16 @@ process_incdir_subdir(FILE* output, const char* subdirname, set_basedir(&basedir, &basedir_size, abs_subdirname); CALLOC(filename, char, BUFSIZE); - snprintf(filename, BUFSIZE, "%s/%s", abs_subdirname, + CALLOC(abs_filename, char, BUFSIZE); + CALLOC(link, char, BUFSIZE); + snprintf(filename, BUFSIZE, "%s/%s", subdirname, + (*pnamelist)->d_name); + snprintf(abs_filename, BUFSIZE, "%s/%s", abs_subdirname, (*pnamelist)->d_name); link = strip_ext(filename); read_file_into_buffer(&input, &buffer, &buffer_size, - filename, &input_dirname); + abs_filename, &input_dirname); free_keyvalue(&links, links_count); free(links); @@ -1677,7 +1682,7 @@ process_incdir_subdir(FILE* output, const char* subdirname, skip_para_end = 0; /* First pass: read YAML, macros and links */ - result = slweb_parse(output, filename, buffer, 1); + result = slweb_parse(output, abs_filename, buffer, 1); if (result) { warning(1, (u8*)"slweb_parse error"); @@ -1687,25 +1692,16 @@ process_incdir_subdir(FILE* output, const char* subdirname, title = get_value(vars, vars_count, (u8*)"title", NULL); date = get_value(vars, vars_count, (u8*)"date", NULL); - incdir_subdir_child_cleanup: - slweb_cleanup(); - free(link); - free(filename); - free(buffer); - free(abs_subdirname); - while (names_total--) - free(namelist[names_total]); - free(namelist); - exit(result); - process_timestamp(output, link_prefix, link, NULL, date, title, ext_in_permalink); state = saved_state; + incdir_subdir_child_cleanup: fflush(output); slweb_cleanup(); free(link); + free(abs_filename); free(filename); free(buffer); free(abs_subdirname);