make sure the -c argument is turned absolute before use
This commit is contained in:
parent
27b41b3911
commit
c3ad4341dc
@ -1,5 +1,5 @@
|
||||
#ifndef lint
|
||||
static char rcsid[] = "@(#$Id: rclconfig.cpp,v 1.41 2007-02-02 10:12:58 dockes Exp $ (C) 2004 J.F.Dockes";
|
||||
static char rcsid[] = "@(#$Id: rclconfig.cpp,v 1.42 2007-02-06 14:16:43 dockes Exp $ (C) 2004 J.F.Dockes";
|
||||
#endif
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -65,7 +65,12 @@ RclConfig::RclConfig(const string *argcnf)
|
||||
|
||||
// Command line config name overrides environment
|
||||
if (argcnf && !argcnf->empty()) {
|
||||
m_confdir = *argcnf;
|
||||
m_confdir = path_absolute(*argcnf);
|
||||
if (m_confdir.empty()) {
|
||||
m_reason =
|
||||
string("Cant turn [") + *argcnf + "] into absolute path";
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
const char *cp = getenv("RECOLL_CONFDIR");
|
||||
if (cp) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
#ifndef lint
|
||||
static char rcsid[] = "@(#$Id: pathut.cpp,v 1.14 2006-12-23 13:07:21 dockes Exp $ (C) 2004 J.F.Dockes";
|
||||
static char rcsid[] = "@(#$Id: pathut.cpp,v 1.15 2007-02-06 14:16:43 dockes Exp $ (C) 2004 J.F.Dockes";
|
||||
#endif
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@ -217,6 +217,21 @@ extern string path_tildexpand(const string &s)
|
||||
return o;
|
||||
}
|
||||
|
||||
extern std::string path_absolute(const std::string &is)
|
||||
{
|
||||
if (is.length() == 0)
|
||||
return is;
|
||||
string s = is;
|
||||
if (s[0] != '/') {
|
||||
char buf[MAXPATHLEN];
|
||||
if (!getcwd(buf, MAXPATHLEN)) {
|
||||
return "";
|
||||
}
|
||||
s = path_cat(string(buf), s);
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
#include <smallut.h>
|
||||
extern std::string path_canon(const std::string &is)
|
||||
{
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
*/
|
||||
#ifndef _PATHUT_H_INCLUDED_
|
||||
#define _PATHUT_H_INCLUDED_
|
||||
/* @(#$Id: pathut.h,v 1.11 2006-12-16 15:31:51 dockes Exp $ (C) 2004 J.F.Dockes */
|
||||
/* @(#$Id: pathut.h,v 1.12 2007-02-06 14:16:43 dockes Exp $ (C) 2004 J.F.Dockes */
|
||||
|
||||
#include <string>
|
||||
#include <list>
|
||||
@ -41,7 +41,10 @@ extern string path_getfather(const string &s);
|
||||
extern string path_home();
|
||||
/// Expand ~ at the beginning of string
|
||||
extern string path_tildexpand(const string &s);
|
||||
/// Clean up path by removing duplicated / and resolving ../
|
||||
/// Use getcwd() to make absolute path if needed. Beware: ***this can fail***
|
||||
/// we return an empty path in this case.
|
||||
extern string path_absolute(const string &s);
|
||||
/// Clean up path by removing duplicated / and resolving ../ + make it absolute
|
||||
extern string path_canon(const string &s);
|
||||
/// Use glob(3) to return a list of file names matching pattern inside dir
|
||||
extern list<string> path_dirglob(const string &dir,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user