]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/util.hxx
apt.dat parser: clearer log and exception messages
[flightgear.git] / src / Main / util.hxx
index acb25ac0d070c7d47c895ea1e9f00e529c79a56f..f078d0fdb3c3860b9a3d83b139137d4e6cad9cb3 100644 (file)
 //
 // $Id$
 
-
 #ifndef __UTIL_HXX
 #define __UTIL_HXX 1
 
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
+#include <string>
+#include <simgear/misc/sg_path.hxx>
 
 /**
  * Move a value towards a target.
  *        (elapsed time/smoothing time)
  * @return The new value.
  */
-extern double fgGetLowPass (double current, double target, double timeratio);
-
+double fgGetLowPass (double current, double target, double timeratio);
 
 /**
- * Unescape string.
+ * File access control, used by Nasal and fgcommands.
+ * @param path Path to be validated
+ * @param write True for write operations and false for read operations.
+ * @return The validated path on success or empty if access denied.
  *
- * @param str String possibly containing escaped characters.
- * @return string with escaped characters replaced by single character values.
+ * Warning: because this always (not just on Windows) treats both \ and /
+ * as path separators, and accepts relative paths (check-to-use race if
+ * the current directory changes),
+ * always use the returned path not the original one
  */
-extern std::string fgUnescape (const char *str);
-
+std::string fgValidatePath(const SGPath& path, bool write);
+std::string fgValidatePath(const std::string& path, bool write);
 
 /**
- * Validation listener interface for io.nas, used by fgcommands.
- * @param path Path to be validated
- * @param write True for write operations and false for read operations.
- * @return The validated path on success or 0 if access denied.
+ * Set allowed paths for fgValidatePath
  */
-extern const char *fgValidatePath (const char *path, bool write);
+void fgInitAllowedPaths();
 
 #endif // __UTIL_HXX