* A selection of useful system functions made
* handy for C++ usage.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
*
* Full author contact details are available in file CREDITS.
*/
#ifndef LYX_LIB_H
#define LYX_LIB_H
-#include "support/FileName.h"
-
-#include <string>
+// always include <math.h> (also with MSVC), to avoid compiler specific side effects
+#include <math.h>
+#ifdef _MSC_VER
+/// Replacement for C99 round()
+inline double round(double x)
+{
+ if (x < 0)
+ return ceil(x - 0.5);
+ else
+ return floor(x + 0.5);
+}
+#endif
namespace lyx {
namespace support {
-/// get the current working directory
-FileName const getcwd();
-/// change to a directory, 0 is returned on success.
-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(FileName const & from, FileName const & to);
-/// copy a file, returns false it it fails
-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(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
-/// \ret return 0 if the directory is successfully created
-int mkdir(FileName const & pathname, unsigned long int mode);
-/// create the given directory with the given mode, create all
-/// intermediate directories if necessary
-/// \ret return 0 if the directory is successfully created
-int makedir(char * pathname, unsigned long int mode=0755);
-/// (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());
-
/**
* Returns true if var is approximately equal to number with allowed error
return (number - error <= var && var <= number + error);
}
+/// round \p x to nearest integer
+inline int iround(double x)
+{
+ return static_cast<int>(round(x));
+}
+
} // namespace support
} // namespace lyx