]> git.lyx.org Git - lyx.git/blobdiff - src/support/lyxlib.h
lyxserver cleanup patch + andre's small patches
[lyx.git] / src / support / lyxlib.h
index 89e1b3c8d59617c66b50c669b7e1f3b51dee4dd7..8554ca0ec8e952b32805c2f99c01be4c15a6d584 100644 (file)
@@ -5,7 +5,7 @@
  *           LyX, The Document Processor
  *        
  *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2000 The LyX Team.
+ *           Copyright 1995-2001 The LyX Team.
  *
  * ====================================================== */
 
 // three/four times. Don't you think it better to use a macro definition
 // (an inlined member of some class)?
 
-// This should have been a namespace
-#ifdef CXX_WORKING_NAMESPACES
-///
+// Use a namespace if we can, a struct otherwise
 namespace lyx {
-       ///
-       char * getcwd(char * buffer, size_t size);
-       ///
-       int chdir(char const * name);
-        ///
-        int chdir(string const & name);
-       /// Returns false it it fails
-       bool rename(char const * from, char const * to);
-        /// 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(char const * file);
-       /// 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(long 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);
-}
-#else
+
+///
+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);
 ///
-struct lyx {
-       ///
-       static char * getcwd(char * buffer, size_t size);
-       ///
-       static int chdir(char const * name);
-       ///
-       static int chdir(string const & name);
-       /// Returns false it it fails
-       static bool rename(char const * from, char const * to);
-        /// Returns false if it fails
-        static bool rename(string const & from, string const & to);
-       /// Returns false it it fails
-       static bool copy(string const & from, string const & to);
-       /// generates a checksum
-       static unsigned long sum(char const * file);
-       /// generates a checksum
-       static unsigned long sum(string const & file);
-       /// returns a date string (not used currently)
-       static char * date(); 
-       /// returns the name of the user (not used currently)
-       static string const getUserName();
-       ///
-       static int kill(long int pid, int sig);
-       ///
-       static void abort();
-       ///
-       static int mkdir(string const & pathname, unsigned long int mode);
-       ///
-       static int putenv(char const * str);
-        ///
-        int unlink(string const & file);
-        ///
-        int rmdir(string const & file);
-        ///
-        int atoi(string const & nstr);
-};
-#endif // CXX_WORKING_NAMESPACES
-#endif
+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);
+}
+
+} // namespace lyx
+#endif /* LYX_LIB_H */