namespace lyx {
namespace support {
-/// remove directory and all contents, returns 0 on success
-int destroyDir(std::string const & tmpdir);
+/// remove directory and all contents, returns true on success
+bool destroyDir(std::string const & tmpdir);
/// Creates the per buffer temporary directory
std::string const createBufferTmpDir();
*/
bool IsFileReadable (std::string const & path);
-/** Is file read only?
- returns
- 1: read-write
- 0: read_only
- -1: error (doesn't exist, no access, anything else)
- */
-int IsFileWriteable (std::string const & path);
-
///
bool IsLyXFilename(std::string const & filename);
i18nLibFileSearch(std::string const & dir, std::string const & name,
std::string const & ext = std::string());
-/** Takes a command such as "sh $$s/convertDefault.sh file.in file.out"
- * and replaces "$$s/" with the path to the "most important" of LyX's
- * script directories containing this script. If the script is not found,
- * "$$s/" is removed. Executing the command will still fail, but the
- * error message will make some sort of sense ;-)
+/** Takes a command such as "sh $$s/scripts/convertDefault.sh file.in file.out"
+ * and replaces "$$s/" with the path to the LyX support directory containing
+ * this script. If the script is not found, "$$s/" is removed. Executing the
+ * command will still fail, but the error message will make some sort of
+ * sense ;-)
*/
std::string const LibScriptSearch(std::string const & command);
*/
std::vector<std::string> const getEnvPath(std::string const & name);
+/** Set the contents of the environment variable \c name
+ * using the paths stored in the \c env vector.
+ * Each element is passed through os::external_path.
+ */
+void setEnvPath(std::string const & name, std::vector<std::string> const & env);
+
+/** Prepend a list of paths to that returned by the environment variable.
+ * Identical paths occurring later in the list are removed.
+ * @param name the name of the environment variable.
+ * @prefix the list of paths in OS-native syntax.
+ * Eg "/foo/bar:/usr/bin:/usr/local/bin" on *nix,
+ * "C:\foo\bar;C:\windows" on Windows.
+ */
+void prependEnvPath(std::string const & name, std::string const & prefix);
+
+/// Set an environment variable using a string of the form "name=FOO".
+bool putEnv(std::string const & envstr);
+
/// Substitutes active latex characters with underscores in filename
std::string const MakeLatexName(std::string const & file);