From bd58998d044ef3a2db96f0290d26f5879728b8dd Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 12 Apr 2023 13:16:16 +0200 Subject: [PATCH 1/2] Fixed S_ISDIR --- src/templates_text/templator_text.org | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/templates_text/templator_text.org b/src/templates_text/templator_text.org index 9ed7858..1e7f140 100644 --- a/src/templates_text/templator_text.org +++ b/src/templates_text/templator_text.org @@ -145,10 +145,10 @@ trexio_text_inquire (const char* file_name) if (file_exists) { bool is_a_directory = false; -#ifdef S_IFDIR +#if defined(S_IFDIR) is_a_directory = st.st_mode & S_IFDIR; -#elif S_ISDIR - is_a_directory = S_ISDIR(s.st_mode); +#elif defined(S_ISDIR) + is_a_directory = S_ISDIR(st.st_mode); #else printf("Some important macros are missing for directory handling.\n"); return TREXIO_FAILURE; From d9a15c12d36e3db41bc4a06c073123ac5e2f74c9 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 12 Apr 2023 14:59:20 +0200 Subject: [PATCH 2/2] Fixed text back-end in Python --- src/templates_text/templator_text.org | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/templates_text/templator_text.org b/src/templates_text/templator_text.org index 1e7f140..3005aa7 100644 --- a/src/templates_text/templator_text.org +++ b/src/templates_text/templator_text.org @@ -162,6 +162,29 @@ trexio_text_inquire (const char* file_name) } #+end_src +On non-POSIX file systems, the function ~mkdtemp~ might is not defined. +In that case, we define an alternate one, which is not as safe as the original one. + + #+begin_src c :tangle basic_text.c +#if defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE - 0) >= 200809L +#else + +char* mkdtemp(char* template) { + char* dir = NULL; + dir = tmpnam(dir); + if (dir == NULL) return NULL; + + if (mkdir(dir, S_IRWXU | S_IRWXG | S_IRWXO) != 0) { + return NULL; + } + + strcpy(template, dir); + return template; +} + +#endif + #+end_src + #+begin_src c :tangle basic_text.c trexio_exit_code trexio_text_init (trexio_t* const file)