1999-10-02 16:21:10 +00:00
|
|
|
// -*- C++ -*-
|
|
|
|
/* This file is part of
|
2002-03-21 17:09:55 +00:00
|
|
|
* ======================================================
|
|
|
|
*
|
1999-10-02 16:21:10 +00:00
|
|
|
* LyX, The Document Processor
|
2002-03-21 17:09:55 +00:00
|
|
|
*
|
2000-03-09 03:36:48 +00:00
|
|
|
* Copyright 1995 Matthias Ettrich
|
2001-05-30 13:53:44 +00:00
|
|
|
* Copyright 1995-2001 The LyX Team.
|
1999-10-02 16:21:10 +00:00
|
|
|
*
|
1999-11-15 10:54:16 +00:00
|
|
|
* ====================================================== */
|
1999-10-02 16:21:10 +00:00
|
|
|
|
|
|
|
#ifndef LYX_LIB_H
|
|
|
|
#define LYX_LIB_H
|
|
|
|
|
|
|
|
#include "LString.h"
|
|
|
|
|
|
|
|
// Where can I put this? I found the occurence of the same code
|
|
|
|
// three/four times. Don't you think it better to use a macro definition
|
|
|
|
// (an inlined member of some class)?
|
1999-11-01 04:22:28 +00:00
|
|
|
|
2000-10-20 13:13:38 +00:00
|
|
|
// Use a namespace if we can, a struct otherwise
|
2000-01-17 22:42:04 +00:00
|
|
|
namespace lyx {
|
2000-10-20 13:13:38 +00:00
|
|
|
|
2001-03-15 18:21:56 +00:00
|
|
|
///
|
|
|
|
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)
|
2002-03-21 17:09:55 +00:00
|
|
|
char * date();
|
2001-03-15 18:21:56 +00:00
|
|
|
/// 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());
|
|
|
|
|
2001-07-28 12:24:16 +00:00
|
|
|
|
|
|
|
/** Returns true if var is approximately equal to number with allowed error
|
|
|
|
* of 'error'.
|
|
|
|
*
|
2002-03-21 17:09:55 +00:00
|
|
|
* Reason: A float can be very close to the number, yet still need not be
|
2001-07-28 12:24:16 +00:00
|
|
|
* 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)) { }
|
2002-03-21 17:09:55 +00:00
|
|
|
*
|
2001-07-28 12:24:16 +00:00
|
|
|
* 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);
|
|
|
|
}
|
|
|
|
|
2001-03-15 18:21:56 +00:00
|
|
|
} // namespace lyx
|
2000-10-20 13:13:38 +00:00
|
|
|
#endif /* LYX_LIB_H */
|