#ifndef LYX_LIB_H
#define LYX_LIB_H
+#include "support/FileName.h"
+
#include <string>
namespace support {
/// get the current working directory
-std::string const getcwd();
+FileName const getcwd();
/// change to a directory, 0 is returned on success.
-int chdir(std::string const & name);
+int chdir(FileName const & name);
+/// Change file permissions
+bool chmod(FileName const & file, unsigned long int mode);
/**
* rename a file, returns false if it fails.
* It can handle renames across partitions.
*/
-bool rename(std::string const & from, std::string const & to);
+bool rename(FileName const & from, FileName const & to);
/// copy a file, returns false it it fails
-bool copy(std::string const & from, std::string const & to);
+bool copy(FileName const & from, FileName const & to,
+ unsigned long int mode = (unsigned long int)-1);
/// generates a checksum of a file
-unsigned long sum(std::string const & file);
+unsigned long sum(FileName const & file);
/// FIXME: some point to this hmm ?
int kill(int pid, int sig);
/// FIXME: same here
void abort();
/// create the given directory with the given mode
-int mkdir(std::string const & pathname, unsigned long int mode);
-/// put variable=value as a C std::string into the environment
-bool putenv(std::string const & varname, std::string const & value);
+int mkdir(FileName const & pathname, unsigned long int mode);
/// unlink the given file
-int unlink(std::string const & file);
-/// remove the given directory
-int rmdir(std::string const & file);
-/// convert the given string to an integer
-int atoi(std::string const & nstr);
-/// (securely) create a temporary file in the given dir with the given prefix
-std::string const tempName(std::string const & dir = std::string(),
+int unlink(FileName const & file);
+/// (securely) create a temporary file in the given dir with the given mask
+/// \p mask must be in filesystem encoding
+FileName const tempName(FileName const & dir = FileName(),
std::string const & mask = std::string());
*
* This will check if 'var' is approx. equal to 'number' with error of 1/1000
*/
-inline bool float_equal(float var, float number, float error)
+inline bool float_equal(double var, double number, double error)
{
return (number - error <= var && var <= number + error);
}