diff --git a/FL/filename.H b/FL/filename.H
index 92bf96f734973f1e2e0fdc532b7f36894880ec1c..74ef1c91c31befef525f4d4ba67c3b9ddcc00c52 100644
--- a/FL/filename.H
+++ b/FL/filename.H
@@ -72,20 +72,18 @@ FL_EXPORT int fl_filename_isdir(const char *name);
 FL_EXPORT int fl_filename_absolute(char *to, int tolen, const char *from, const char *cwd);
 FL_EXPORT int fl_filename_relative(char *to, int tolen, const char *from, const char *cwd);
 
-
-// FIXME: We can't do this in 1.4.x - enable this block in 1.5 or higher.
-// See fluid/fluid_filename.{h|cxx} for an implementation using Fl_String.
-
-// FL_EXPORT std::string fl_filename_name(const std::string &filename);
-// FL_EXPORT std::string fl_filename_path(const std::string &filename);
-// FL_EXPORT std::string fl_filename_ext(const std::string &filename);
-// FL_EXPORT std::string fl_filename_setext(const std::string &filename, const std::string &new_extension);
-// FL_EXPORT std::string fl_filename_expand(const std::string &from);
-// FL_EXPORT std::string fl_filename_absolute(const std::string &from);
-// FL_EXPORT std::string fl_filename_absolute(const std::string &from, const std::string &base);
-// FL_EXPORT std::string fl_filename_relative(const std::string &from);
-// FL_EXPORT std::string fl_filename_relative(const std::string &from, const std::string &base);
-// FL_EXPORT std::string fl_getcwd();
+#include <string>
+
+FL_EXPORT std::string fl_filename_name_str(const std::string &filename);
+FL_EXPORT std::string fl_filename_path_str(const std::string &filename);
+FL_EXPORT std::string fl_filename_ext_str(const std::string &filename);
+FL_EXPORT std::string fl_filename_setext_str(const std::string &filename, const std::string &new_extension);
+FL_EXPORT std::string fl_filename_expand_str(const std::string &from);
+FL_EXPORT std::string fl_filename_absolute_str(const std::string &from);
+FL_EXPORT std::string fl_filename_absolute_str(const std::string &from, const std::string &base);
+FL_EXPORT std::string fl_filename_relative_str(const std::string &from);
+FL_EXPORT std::string fl_filename_relative_str(const std::string &from, const std::string &base);
+FL_EXPORT std::string fl_getcwd_str();
 
 #  endif /* defined(__cplusplus) */
 
diff --git a/fluid/app/fluid.cxx b/fluid/app/fluid.cxx
index baa3c9afbc664c03990881e109328eeba6d24ff1..8bef5ab9f780b2a1a116ae98b10b0acdaf0fac15 100644
--- a/fluid/app/fluid.cxx
+++ b/fluid/app/fluid.cxx
@@ -462,9 +462,9 @@ void enter_project_dir() {
     return;
   }
   // store the current working directory for later
-  app_work_dir = fl_getcwd();
+  app_work_dir = fl_getcwd_str();
   // set the current directory to the path of our .fl file
-  std::string project_path = fl_filename_path(fl_filename_absolute(filename));
+  std::string project_path = fl_filename_path_str(fl_filename_absolute_str(filename));
   if (fl_chdir(project_path.c_str()) == -1) {
     fprintf(stderr, "** Fluid internal error: enter_project_dir() can't chdir to %s: %s\n",
             project_path.c_str(), strerror(errno));
@@ -609,7 +609,7 @@ void save_cb(Fl_Widget *, void *v) {
     if (fnfc.show() != 0) return;
     c = fnfc.filename();
     if (!fl_access(c, 0)) {
-      std::string basename = fl_filename_name(std::string(c));
+      std::string basename = fl_filename_name_str(std::string(c));
       if (fl_choice("The file \"%s\" already exists.\n"
                     "Do you want to replace it?", "Cancel",
                     "Replace", NULL, basename.c_str()) == 0) return;
@@ -978,8 +978,8 @@ std::string open_project_filechooser(const std::string &title) {
   dialog.filter("FLUID Files\t*.f[ld]\n");
   if (filename) {
     std::string current_project_file = filename;
-    dialog.directory(fl_filename_path(current_project_file).c_str());
-    dialog.preset_file(fl_filename_name(current_project_file).c_str());
+    dialog.directory(fl_filename_path_str(current_project_file).c_str());
+    dialog.preset_file(fl_filename_name_str(current_project_file).c_str());
   }
   if (dialog.show() != 0)
     return std::string();
@@ -1086,7 +1086,7 @@ void apple_open_cb(const char *c) {
  \return the path ending in '/'
  */
 std::string Fluid_Project::projectfile_path() const {
-  return end_with_slash(fl_filename_absolute(fl_filename_path(filename), g_launch_path));
+  return end_with_slash(fl_filename_absolute_str(fl_filename_path_str(filename), g_launch_path));
 }
 
 /**
@@ -1102,11 +1102,11 @@ std::string Fluid_Project::projectfile_name() const {
  \return the path ending in '/'
  */
 std::string Fluid_Project::codefile_path() const {
-  std::string path = fl_filename_path(code_file_name);
+  std::string path = fl_filename_path_str(code_file_name);
   if (batch_mode)
-    return end_with_slash(fl_filename_absolute(path, g_launch_path));
+    return end_with_slash(fl_filename_absolute_str(path, g_launch_path));
   else
-    return end_with_slash(fl_filename_absolute(path, projectfile_path()));
+    return end_with_slash(fl_filename_absolute_str(path, projectfile_path()));
 }
 
 /**
@@ -1114,11 +1114,11 @@ std::string Fluid_Project::codefile_path() const {
  \return the file name without path
  */
 std::string Fluid_Project::codefile_name() const {
-  std::string name = fl_filename_name(code_file_name);
+  std::string name = fl_filename_name_str(code_file_name);
   if (name.empty()) {
-    return fl_filename_setext(fl_filename_name(filename), ".cxx");
+    return fl_filename_setext_str(fl_filename_name(filename), ".cxx");
   } else if (name[0] == '.') {
-    return fl_filename_setext(fl_filename_name(filename), code_file_name);
+    return fl_filename_setext_str(fl_filename_name(filename), code_file_name);
   } else {
     return name;
   }
@@ -1129,11 +1129,11 @@ std::string Fluid_Project::codefile_name() const {
  \return the path ending in '/'
  */
 std::string Fluid_Project::headerfile_path() const {
-  std::string path = fl_filename_path(header_file_name);
+  std::string path = fl_filename_path_str(header_file_name);
   if (batch_mode)
-    return end_with_slash(fl_filename_absolute(path, g_launch_path));
+    return end_with_slash(fl_filename_absolute_str(path, g_launch_path));
   else
-    return end_with_slash(fl_filename_absolute(path, projectfile_path()));
+    return end_with_slash(fl_filename_absolute_str(path, projectfile_path()));
 }
 
 /**
@@ -1141,11 +1141,11 @@ std::string Fluid_Project::headerfile_path() const {
  \return the file name without path
  */
 std::string Fluid_Project::headerfile_name() const {
-  std::string name = fl_filename_name(header_file_name);
+  std::string name = fl_filename_name_str(header_file_name);
   if (name.empty()) {
-    return fl_filename_setext(fl_filename_name(filename), ".h");
+    return fl_filename_setext_str(fl_filename_name_str(filename), ".h");
   } else if (name[0] == '.') {
-    return fl_filename_setext(fl_filename_name(filename), header_file_name);
+    return fl_filename_setext_str(fl_filename_name_str(filename), header_file_name);
   } else {
     return name;
   }
@@ -1172,9 +1172,9 @@ std::string Fluid_Project::stringsfile_path() const {
  */
 std::string Fluid_Project::stringsfile_name() const {
   switch (i18n_type) {
-    default: return fl_filename_setext(fl_filename_name(filename), ".txt");
-    case FD_I18N_GNU: return fl_filename_setext(fl_filename_name(filename), ".po");
-    case FD_I18N_POSIX: return fl_filename_setext(fl_filename_name(filename), ".msg");
+    default: return fl_filename_setext_str(fl_filename_name(filename), ".txt");
+    case FD_I18N_GNU: return fl_filename_setext_str(fl_filename_name(filename), ".po");
+    case FD_I18N_POSIX: return fl_filename_setext_str(fl_filename_name(filename), ".msg");
   }
 }
 
@@ -1183,7 +1183,7 @@ std::string Fluid_Project::stringsfile_name() const {
  \return the file name without path or extension
  */
 std::string Fluid_Project::basename() const {
-  return fl_filename_setext(fl_filename_name(filename), "");
+  return fl_filename_setext_str(fl_filename_name(filename), "");
 }
 
 /**
@@ -1223,8 +1223,8 @@ int write_code_files(bool dont_show_completion_dialog)
   // -- write the code and header files
   if (!batch_mode) enter_project_dir();
   int x = f.write_code(code_filename.c_str(), header_filename.c_str());
-  std::string code_filename_rel = fl_filename_relative(code_filename);
-  std::string header_filename_rel = fl_filename_relative(header_filename);
+  std::string code_filename_rel = fl_filename_relative_str(code_filename);
+  std::string header_filename_rel = fl_filename_relative_str(header_filename);
   if (!batch_mode) leave_project_dir();
 
   // -- print error message in batch mode or pop up an error or confirmation dialog box
@@ -1625,7 +1625,7 @@ void print_menu_cb(Fl_Widget *, void *) {
     fl_draw(date, w - (int)fl_width(date), fl_height());
 
     // Get the base filename...
-    std::string basename = fl_filename_name(std::string(filename));
+    std::string basename = fl_filename_name_str(std::string(filename));
     fl_draw(basename.c_str(), 0, fl_height());
 
     // print centered and scaled to fit in the page
@@ -2073,7 +2073,7 @@ void set_modflag(int mf, int mfc) {
   if (main_window) {
     std::string basename;
     if (!filename) basename = "Untitled.fl";
-    else basename = fl_filename_name(std::string(filename));
+    else basename = fl_filename_name_str(std::string(filename));
     code_ext = fl_filename_ext(g_project.code_file_name.c_str());
     char mod_star = modflag ? '*' : ' ';
     char mod_c_star = modflag_c ? '*' : ' ';
@@ -2199,7 +2199,7 @@ int fluid_main(int argc,char **argv) {
 
   setlocale(LC_ALL, "");      // enable multi-language errors in file chooser
   setlocale(LC_NUMERIC, "C"); // make sure numeric values are written correctly
-  g_launch_path = end_with_slash(fl_getcwd()); // store the current path at launch
+  g_launch_path = end_with_slash(fl_getcwd_str()); // store the current path at launch
 
   Fl::args_to_utf8(argc, argv); // for MSYS2/MinGW
   if (   (Fl::args(argc,argv,i,arg) == 0)     // unsupported argument found
diff --git a/fluid/app/fluid.h b/fluid/app/fluid.h
index d02ae79ccec3998325f267267950cdbabb0911a7..9b4394637929ab246d90d7064306b799fda46d46 100644
--- a/fluid/app/fluid.h
+++ b/fluid/app/fluid.h
@@ -21,6 +21,7 @@
 
 #include <FL/Fl_Preferences.H>
 #include <FL/Fl_Menu_Item.H>
+#include <FL/filename.H>
 
 #include <string>
 
diff --git a/fluid/panels/settings_panel.cxx b/fluid/panels/settings_panel.cxx
index fd67676c63d7d762428a118390d8d403559b6e82..fb31a319d0c22e09b6a72b2a2350a5cb6d08521a 100644
--- a/fluid/panels/settings_panel.cxx
+++ b/fluid/panels/settings_panel.cxx
@@ -600,8 +600,8 @@ static void cb_w_layout_menu_save(Fl_Menu_*, void*) {
     fnfc.options(Fl_Native_File_Chooser::SAVEAS_CONFIRM | Fl_Native_File_Chooser::USE_FILTER_EXT);
     fnfc.filter("FLUID Layouts\t*.fll\n");
     std::string filename = g_layout_list.filename_;
-    fnfc.directory(fl_filename_path(filename).c_str());
-    fnfc.preset_file(fl_filename_name(filename).c_str());
+    fnfc.directory(fl_filename_path_str(filename).c_str());
+    fnfc.preset_file(fl_filename_name_str(filename).c_str());
     if (fnfc.show() != 0) return;
     const char *new_filename = fnfc.filename();
     if (!new_filename) return;
diff --git a/fluid/panels/settings_panel.fl b/fluid/panels/settings_panel.fl
index fad6580afa8fcfc90da660b42f61ce33b4b8dfca..7890e5b8364af1c199bf53a4669714c565d052ba 100644
--- a/fluid/panels/settings_panel.fl
+++ b/fluid/panels/settings_panel.fl
@@ -574,8 +574,8 @@ g_layout_list.update_dialogs();}
   fnfc.options(Fl_Native_File_Chooser::SAVEAS_CONFIRM | Fl_Native_File_Chooser::USE_FILTER_EXT);
   fnfc.filter("FLUID Layouts\\t*.fll\\n");
   std::string filename = g_layout_list.filename_;
-  fnfc.directory(fl_filename_path(filename).c_str());
-  fnfc.preset_file(fl_filename_name(filename).c_str());
+  fnfc.directory(fl_filename_path_str(filename).c_str());
+  fnfc.preset_file(fl_filename_name_str(filename).c_str());
   if (fnfc.show() != 0) return;
   const char *new_filename = fnfc.filename();
   if (!new_filename) return;
diff --git a/fluid/tools/fluid_filename.cxx b/fluid/tools/fluid_filename.cxx
index cd9dadfa6f2293ebbff0d6eae163f0d54dd9d573..655d90543ca6f58e0a9e77c6a45cb039c616a17c 100644
--- a/fluid/tools/fluid_filename.cxx
+++ b/fluid/tools/fluid_filename.cxx
@@ -29,137 +29,15 @@
         the next release after 1.4.x will be. We'll use std::string instead!
 */
 
+#include "tools/fluid_filename.h"
+
 #include <FL/filename.H>
 #include <FL/Fl.H>
-#include <FL/fl_string_functions.h>
-#include "../src/flstring.h"
-
-#include <stdlib.h>
-#include <string>
-
-/**
- Return a new string that contains the name part of the filename.
- \param[in] filename file path and name
- \return the name part of a filename
- \see fl_filename_name(const char *filename)
- */
-std::string fl_filename_name(const std::string &filename) {
-  return std::string(fl_filename_name(filename.c_str()));
-}
-
-/**
- Return a new string that contains the path part of the filename.
- \param[in] filename file path and name
- \return the path part of a filename without the name
- \see fl_filename_name(const char *filename)
- */
-std::string fl_filename_path(const std::string &filename) {
-  const char *base = filename.c_str();
-  const char *name = fl_filename_name(base);
-  if (name) {
-    return std::string(base, (int)(name-base));
-  } else {
-    return std::string();
-  }
-}
-
-/**
- Return a new string that contains the filename extension.
- \param[in] filename file path and name
- \return the filename extension including the prepending '.', or an empty
-    string if the filename has no extension
- \see fl_filename_ext(const char *buf)
- */
-std::string fl_filename_ext(const std::string &filename) {
-  return std::string(fl_filename_ext(filename.c_str()));
-}
-
-/**
- Return a copy of the old filename with the new extension.
- \param[in] filename file path and name
- \param[in] new_extension new filename extension, starts with a '.'
- \return the new filename
- \see fl_filename_setext(char *to, int tolen, const char *ext)
- */
-std::string fl_filename_setext(const std::string &filename, const std::string &new_extension) {
-  char buffer[FL_PATH_MAX];
-  fl_strlcpy(buffer, filename.c_str(), FL_PATH_MAX);
-  fl_filename_setext(buffer, FL_PATH_MAX, new_extension.c_str());
-  return std::string(buffer);
-}
-
-/**
- Expands a filename containing shell variables and tilde (~).
- \param[in] from file path and name
- \return the new, expanded filename
- \see fl_filename_expand(char *to, int tolen, const char *from)
-*/
-std::string fl_filename_expand(const std::string &from) {
-  char buffer[FL_PATH_MAX];
-  fl_filename_expand(buffer, FL_PATH_MAX, from.c_str());
-  return std::string(buffer);
-}
-
-/**
- Makes a filename absolute from a filename relative to the current working directory.
- \param[in] from relative filename
- \return the new, absolute filename
- \see fl_filename_absolute(char *to, int tolen, const char *from)
- */
-std::string fl_filename_absolute(const std::string &from) {
-  char buffer[FL_PATH_MAX];
-  fl_filename_absolute(buffer, FL_PATH_MAX, from.c_str());
-  return std::string(buffer);
-}
-
-/**
- Append the relative filename `from` to the absolute filename `base` to form
- the new absolute path.
- \param[in] from relative filename
- \param[in] base `from` is relative to this absolute file path
- \return the new, absolute filename
- \see fl_filename_absolute(char *to, int tolen, const char *from, const char *base)
- */
-std::string fl_filename_absolute(const std::string &from, const std::string &base) {
-  char buffer[FL_PATH_MAX];
-  fl_filename_absolute(buffer, FL_PATH_MAX, from.c_str(), base.c_str());
-  return std::string(buffer);
-}
-
-/**
- Makes a filename relative to the current working directory.
- \param[in] from file path and name
- \return the new, relative filename
- \see fl_filename_relative(char *to, int tolen, const char *from)
- */
-std::string fl_filename_relative(const std::string &from) {
-  char buffer[FL_PATH_MAX];
-  fl_filename_relative(buffer, FL_PATH_MAX, from.c_str());
-  return std::string(buffer);
-}
-
-/**
- Makes a filename relative to any directory.
- \param[in] from file path and name
- \param[in] base relative to this absolute path
- \return the new, relative filename
- \see fl_filename_relative(char *to, int tolen, const char *from, const char *base)
- */
-std::string fl_filename_relative(const std::string &from, const std::string &base) {
-  char buffer[FL_PATH_MAX];
-  fl_filename_relative(buffer, FL_PATH_MAX, from.c_str(), base.c_str());
-  return std::string(buffer);
-}
-
-/** Cross-platform function to get the current working directory
- as a UTF-8 encoded value in an std::string.
- \return the CWD encoded as UTF-8
- */
-std::string fl_getcwd() {
-  char buffer[FL_PATH_MAX];
-  fl_getcwd(buffer, FL_PATH_MAX);
-  return std::string(buffer);
-}
+//#include <FL/fl_string_functions.h>
+//#include "../src/flstring.h"
+//
+//#include <stdlib.h>
+//#include <string>
 
 /**
  Return a shortened filename for limited display width.
@@ -184,7 +62,7 @@ std::string fl_filename_shortened(const std::string &filename, int max_chars) {
   static std::string home;
   static int home_chars = -1;
   if (home_chars==-1) {
-    home = fl_filename_expand(tilde);
+    home = fl_filename_expand_str(tilde);
     home_chars = fl_utf_nb_char((const uchar*)home.c_str(), (int)home.size());
   }
   std::string homed_filename;
diff --git a/fluid/tools/fluid_filename.h b/fluid/tools/fluid_filename.h
index 1486e61abad0ba33ec7aeb7e1aee28b40f3a6a3f..4544a05346edd55b6e8c3206cba042f90d59c3d4 100644
--- a/fluid/tools/fluid_filename.h
+++ b/fluid/tools/fluid_filename.h
@@ -1,7 +1,7 @@
 /*
  * Filename header file for the Fast Light Tool Kit (FLTK).
  *
- * Copyright 1998-2023 by Bill Spitzak and others.
+ * Copyright 1998-2025 by Bill Spitzak and others.
  *
  * This library is free software. Distribution and use rights are outlined in
  * the file "COPYING" which should have been included with this file.  If this
@@ -15,45 +15,14 @@
  */
 
 /** \file fluid/fluid_filename.h
-
-  \brief File names and URI utility functions for FLUID only.
-
-  This file declares all fl_filename* functions using std::string and also
-  includes the main header file <FL/filename.H>.
-
-  \note This file contains some filename functions using std::string which
-        which are used in FLTK 1.4.x but will be removed in the next minor
-        or major release after 1.4.x (i.e. 1.5 or maybe 4.0).
-
-  \note This entire file should become obsolete in 1.5 or higher, whatever
-        the next release after 1.4.x will be. We'll use std::string instead!
+  \brief Handling file names operations that are not in the core library.
 */
 
-#ifndef FLUID_FILENAME_H
-#  define FLUID_FILENAME_H
-
-#include <FL/Fl_Export.H>
-#include <FL/platform_types.h>
-#include <FL/filename.H>
-
-#  if defined(__cplusplus)
+#ifndef FLUID_TOOLS_FILENAME_H
+#define FLUID_TOOLS_FILENAME_H
 
 #include <string>
 
 std::string fl_filename_shortened(const std::string &filename, int maxchars);
-std::string fl_filename_name(const std::string &filename);
-std::string fl_filename_path(const std::string &filename);
-std::string fl_filename_ext(const std::string &filename);
-std::string fl_filename_setext(const std::string &filename, const std::string &new_extension);
-std::string fl_filename_expand(const std::string &from);
-std::string fl_filename_absolute(const std::string &from);
-std::string fl_filename_absolute(const std::string &from, const std::string &base);
-std::string fl_filename_relative(const std::string &from);
-std::string fl_filename_relative(const std::string &from, const std::string &base);
-std::string fl_getcwd();
-
-#  endif
-
-/** @} */
 
-#endif /* FLUID_FILENAME_H */
+#endif // FLUID_TOOLS_FILENAME_H
diff --git a/src/filename_absolute.cxx b/src/filename_absolute.cxx
index da4dd816baf67287696b327e771f747166a14ca3..f70d59873d8ffc83399849a4be2887df0b992c1a 100644
--- a/src/filename_absolute.cxx
+++ b/src/filename_absolute.cxx
@@ -285,10 +285,6 @@ int Fl_System_Driver::filename_relative(char *to, int tolen, const char *dest_di
  \endcond
  */
 
-// FIXME: '0 &&' => We can't do that in 1.4.x, enable this block in 1.5 or higher.
-// There would be too many naming conflicts with fluid's usage of these functions.
-
-#if (0 && FLTK_USE_STD)
 
 /**
  Return a new string that contains the name part of the filename.
@@ -296,7 +292,7 @@ int Fl_System_Driver::filename_relative(char *to, int tolen, const char *dest_di
  \return the name part of a filename
  \see fl_filename_name(const char *filename)
  */
-std::string fl_filename_name(const std::string &filename) {
+std::string fl_filename_name_str(const std::string &filename) {
   return std::string(fl_filename_name(filename.c_str()));
 }
 
@@ -306,7 +302,7 @@ std::string fl_filename_name(const std::string &filename) {
  \return the path part of a filename without the name
  \see fl_filename_name(const char *filename)
  */
-std::string fl_filename_path(const std::string &filename) {
+std::string fl_filename_path_str(const std::string &filename) {
   const char *base = filename.c_str();
   const char *name = fl_filename_name(base);
   if (name) {
@@ -323,7 +319,7 @@ std::string fl_filename_path(const std::string &filename) {
     string if the filename has no extension
  \see fl_filename_ext(const char *buf)
  */
-std::string fl_filename_ext(const std::string &filename) {
+std::string fl_filename_ext_str(const std::string &filename) {
   return std::string(fl_filename_ext(filename.c_str()));
 }
 
@@ -334,7 +330,7 @@ std::string fl_filename_ext(const std::string &filename) {
  \return the new filename
  \see fl_filename_setext(char *to, int tolen, const char *ext)
  */
-std::string fl_filename_setext(const std::string &filename, const std::string &new_extension) {
+std::string fl_filename_setext_str(const std::string &filename, const std::string &new_extension) {
   char buffer[FL_PATH_MAX];
   fl_strlcpy(buffer, filename.c_str(), FL_PATH_MAX);
   fl_filename_setext(buffer, FL_PATH_MAX, new_extension.c_str());
@@ -347,7 +343,7 @@ std::string fl_filename_setext(const std::string &filename, const std::string &n
  \return the new, expanded filename
  \see fl_filename_expand(char *to, int tolen, const char *from)
 */
-std::string fl_filename_expand(const std::string &from) {
+std::string fl_filename_expand_str(const std::string &from) {
   char buffer[FL_PATH_MAX];
   fl_filename_expand(buffer, FL_PATH_MAX, from.c_str());
   return std::string(buffer);
@@ -359,7 +355,7 @@ std::string fl_filename_expand(const std::string &from) {
  \return the new, absolute filename
  \see fl_filename_absolute(char *to, int tolen, const char *from)
  */
-std::string fl_filename_absolute(const std::string &from) {
+std::string fl_filename_absolute_str(const std::string &from) {
   char buffer[FL_PATH_MAX];
   fl_filename_absolute(buffer, FL_PATH_MAX, from.c_str());
   return std::string(buffer);
@@ -373,7 +369,7 @@ std::string fl_filename_absolute(const std::string &from) {
  \return the new, absolute filename
  \see fl_filename_absolute(char *to, int tolen, const char *from, const char *base)
  */
-std::string fl_filename_absolute(const std::string &from, const std::string &base) {
+std::string fl_filename_absolute_str(const std::string &from, const std::string &base) {
   char buffer[FL_PATH_MAX];
   fl_filename_absolute(buffer, FL_PATH_MAX, from.c_str(), base.c_str());
   return std::string(buffer);
@@ -385,7 +381,7 @@ std::string fl_filename_absolute(const std::string &from, const std::string &bas
  \return the new, relative filename
  \see fl_filename_relative(char *to, int tolen, const char *from)
  */
-std::string fl_filename_relative(const std::string &from) {
+std::string fl_filename_relative_str(const std::string &from) {
   char buffer[FL_PATH_MAX];
   fl_filename_relative(buffer, FL_PATH_MAX, from.c_str());
   return std::string(buffer);
@@ -398,7 +394,7 @@ std::string fl_filename_relative(const std::string &from) {
  \return the new, relative filename
  \see fl_filename_relative(char *to, int tolen, const char *from, const char *base)
  */
-std::string fl_filename_relative(const std::string &from, const std::string &base) {
+std::string fl_filename_relative_str(const std::string &from, const std::string &base) {
   char buffer[FL_PATH_MAX];
   fl_filename_relative(buffer, FL_PATH_MAX, from.c_str(), base.c_str());
   return std::string(buffer);
@@ -408,10 +404,9 @@ std::string fl_filename_relative(const std::string &from, const std::string &bas
  as a UTF-8 encoded value in an std::string.
  \return the CWD encoded as UTF-8
  */
-std::string fl_getcwd() {
+std::string fl_getcwd_str() {
   char buffer[FL_PATH_MAX];
+  buffer[0] = 0;
   fl_getcwd(buffer, FL_PATH_MAX);
   return std::string(buffer);
 }
-
-#endif // FLTK_USE_STD