]> git.lyx.org Git - lyx.git/blobdiff - src/support/lyxlib.h
Merge branch 'master' into biblatex2
[lyx.git] / src / support / lyxlib.h
index b515f55670253a4a0525b82b559425610f26f13c..23894ee2ebea1d47d077ca3344ada70edd32e89f 100644 (file)
@@ -7,49 +7,33 @@
  * 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
+ * Full author contact details are available in file CREDITS.
  */
 
 #ifndef LYX_LIB_H
 #define LYX_LIB_H
 
-#include "LString.h"
+// 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
-string const getcwd();
-/// change to a directory, 0 is returned on success.
-int chdir(string const & name);
-/**
- * rename a file, returns false if it fails.
- * It can handle renames across partitions.
- */
-bool rename(string const & from, string const & to);
-/// copy a file, returns false it it fails
-bool copy(string const & from, string const & to);
-/// generates a checksum of a file
-unsigned long sum(string 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(string const & pathname, unsigned long int mode);
-/// put a C string into the environment
-int putenv(char const * str);
-/// unlink the given file
-int unlink(string const & file);
-/// remove the given directory
-int rmdir(string const & file);
-/// convert the given string to an integer
-int atoi(string const & nstr);
-/// (securely) create a temporary file in the given dir with the given prefix
-string const tempName(string const & dir = string(),
-                     string const & mask = string());
-
 
 /**
  * Returns true if var is approximately equal to number with allowed error
@@ -59,11 +43,18 @@ string const tempName(string const & dir = 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);
 }
 
+/// round \p x to nearest integer
+inline int iround(double x)
+{
+       return static_cast<int>(round(x));
+}
+
+} // namespace support
 } // namespace lyx
 
 #endif /* LYX_LIB_H */