X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Flyxlib.h;h=23894ee2ebea1d47d077ca3344ada70edd32e89f;hb=ecbd047cffa1c4af95cf4ab91a7d2fded4a5584c;hp=b515f55670253a4a0525b82b559425610f26f13c;hpb=13349032cb4dc8ef44146aa652ff6bbff6698249;p=lyx.git diff --git a/src/support/lyxlib.h b/src/support/lyxlib.h index b515f55670..23894ee2eb 100644 --- a/src/support/lyxlib.h +++ b/src/support/lyxlib.h @@ -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 (also with MSVC), to avoid compiler specific side effects +#include + +#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(round(x)); +} + +} // namespace support } // namespace lyx #endif /* LYX_LIB_H */