* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team.
+ * Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
// (an inlined member of some class)?
// Use a namespace if we can, a struct otherwise
-#ifdef CXX_WORKING_NAMESPACES
-#define OPT_STATIC
namespace lyx {
-#else
-#define OPT_STATIC static
-struct lyx {
-#endif
- ///
- OPT_STATIC char * getcwd(char * buffer, size_t size);
- ///
- OPT_STATIC int chdir(string const & name);
- /// Returns false if it fails
- OPT_STATIC bool rename(string const & from, string const & to);
- /// Returns false it it fails
- OPT_STATIC bool copy(string const & from, string const & to);
- /// generates a checksum
- OPT_STATIC unsigned long sum(string const & file);
- /// returns a date string (not used currently)
- OPT_STATIC char * date();
- /// returns the name of the user (not used currently)
- OPT_STATIC string const getUserName();
- ///
- OPT_STATIC int kill(int pid, int sig);
- ///
- OPT_STATIC void abort();
- ///
- OPT_STATIC int mkdir(string const & pathname, unsigned long int mode);
- ///
- OPT_STATIC int putenv(char const * str);
- ///
- OPT_STATIC int unlink(string const & file);
- ///
- OPT_STATIC int rmdir(string const & file);
- ///
- OPT_STATIC int atoi(string const & nstr);
-#ifdef CXX_WORKING_NAMESPACES
+
+///
+string const getcwd();
+///
+int chdir(string const & name);
+/// Returns false if it fails
+bool rename(string const & from, string const & to);
+/// Returns false it it fails
+bool copy(string const & from, string const & to);
+/// generates a checksum
+unsigned long sum(string const & file);
+/// returns a date string (not used currently)
+char * date();
+/// returns the name of the user (not used currently)
+string const getUserName();
+///
+int kill(int pid, int sig);
+///
+void abort();
+///
+int mkdir(string const & pathname, unsigned long int mode);
+///
+int putenv(char const * str);
+///
+int unlink(string const & file);
+///
+int rmdir(string const & file);
+///
+int atoi(string const & nstr);
+///
+string const tempName(string const & dir = string(),
+ string const & mask = string());
+
+
+/** Returns true if var is approximately equal to number with allowed error
+ * of 'error'.
+ *
+ * Reason: A float can be very close to the number, yet still need not be
+ * exactly equal, you can have exp(-10) which is very close to zero but not
+ * zero. If you only need an approximate equality (you usually do), use this
+ * template.
+ *
+ * Usage: if (float_equal(var, number, 0.0001)) { }
+ *
+ * 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)
+{
+ return (number - error <= var && var <= number + error);
}
-#else
-};
-#endif
-#undef OPT_STATIC
-
+} // namespace lyx
#endif /* LYX_LIB_H */