//
// $Id$
-
#ifndef __UTIL_HXX
#define __UTIL_HXX 1
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
-
-/**
- * Initialize a single value through all existing weather levels.
- *
- * This function is useful mainly from the command-line.
- *
- * @param propname The name of the subproperty to initialized.
- * @param value The initial value.
- */
-extern void fgDefaultWeatherValue (const char * propname, double value);
-
-
-/**
- * Set up a plausible wind layout, boundary and aloft,
- * based on just a few parameters.
- *
- * @param min_hdg Minimal wind heading
- * @param max_hdg Maximal wind heading
- * @param speed Windspeed in knots
- * @param gust Wind gust variation in knots
- */
-extern void fgSetupWind (double min_hdg, double max_hdg,
- double speed, double gust);
-
-/**
- * Clean up and exit FlightGear.
- *
- * This function makes sure that network connections and I/O streams
- * are cleaned up.
- *
- * @param status The exit status to pass to the operating system.
- */
-extern void fgExit (int status = 0);
-
+#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);
+/**
+ * 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.
+ *
+ * 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
+ */
+std::string fgValidatePath(const SGPath& path, bool write);
+std::string fgValidatePath(const std::string& path, bool write);
+
+/**
+ * Set allowed paths for fgValidatePath
+ */
+void fgInitAllowedPaths();
#endif // __UTIL_HXX