Another string simplification.
At some point using `std::filesystem::path` would be warranted. Better to simply clean up memory issues first, though. Then we can see what changes.
This commit is contained in:
12
src/dillo.cc
12
src/dillo.cc
@ -370,17 +370,18 @@ static void setColors()
|
|||||||
*/
|
*/
|
||||||
static DilloUrl *makeStartUrl(char *str, bool local)
|
static DilloUrl *makeStartUrl(char *str, bool local)
|
||||||
{
|
{
|
||||||
|
using namespace std::literals::string_literals;
|
||||||
std::string url_str;
|
std::string url_str;
|
||||||
char *p;
|
std::string p;
|
||||||
DilloUrl *start_url;
|
DilloUrl *start_url;
|
||||||
|
|
||||||
/* Relative path to a local file? */
|
/* Relative path to a local file? */
|
||||||
p = (*str == '/') ? dStrdup(str) :
|
p = (*str == '/') ? str :
|
||||||
dStrconcat(Paths::getOldWorkingDir(), "/", str, NULL);
|
Paths::getOldWorkingDir() + "/"s + str;
|
||||||
|
|
||||||
if (access(p, F_OK) == 0) {
|
if (access(p.c_str(), F_OK) == 0) {
|
||||||
/* absolute path may have non-URL characters */
|
/* absolute path may have non-URL characters */
|
||||||
url_str = a_Misc_escape_chars(p, "% #");
|
url_str = a_Misc_escape_chars(p.c_str(), "% #");
|
||||||
start_url = a_Url_new(url_str.c_str() + 1, "file:/");
|
start_url = a_Url_new(url_str.c_str() + 1, "file:/");
|
||||||
} else {
|
} else {
|
||||||
/* Not a file, filter URL string */
|
/* Not a file, filter URL string */
|
||||||
@ -389,7 +390,6 @@ static DilloUrl *makeStartUrl(char *str, bool local)
|
|||||||
dFree( tmp );
|
dFree( tmp );
|
||||||
start_url = a_Url_new(url_str.c_str(), NULL);
|
start_url = a_Url_new(url_str.c_str(), NULL);
|
||||||
}
|
}
|
||||||
dFree(p);
|
|
||||||
|
|
||||||
if (local)
|
if (local)
|
||||||
a_Url_set_flags(start_url, URL_FLAGS(start_url) | URL_SpamSafe);
|
a_Url_set_flags(start_url, URL_FLAGS(start_url) | URL_SpamSafe);
|
||||||
|
|||||||
Reference in New Issue
Block a user