diff options
author | Omar Polo <op@omarpolo.com> | 2021-08-09 09:39:20 +0000 |
---|---|---|
committer | Omar Polo <op@omarpolo.com> | 2021-10-08 20:10:26 +0200 |
commit | a3384b7461005260d0dd5c8f05df28ee842442de (patch) | |
tree | 9e5bbd41c081a10743ad454f1294da6f4c3043d4 /platform | |
parent | 0cbb19a246b2a701dde848d86bff319b571efad7 (diff) |
use .get_file() instead of basename(3)
On OpenBSD the compiler complains that calling basename(3) would lose
const qualifier. basename(3) is defined as
char *basename(char *);
and can, accorgindly to the POSIX.1, modify the passed string.
This uses the .get_file() method. The check is necessary because
file_name could be a directory, in which case .get_file() would return
an empty string. The .get_base_dir().get_file() idiom is already used.
The usage of get_file() and the check were suggested by theraot, thanks!
Diffstat (limited to 'platform')
-rw-r--r-- | platform/linuxbsd/os_linuxbsd.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/platform/linuxbsd/os_linuxbsd.cpp b/platform/linuxbsd/os_linuxbsd.cpp index 23e448fbd7..65a9f3b042 100644 --- a/platform/linuxbsd/os_linuxbsd.cpp +++ b/platform/linuxbsd/os_linuxbsd.cpp @@ -399,7 +399,10 @@ Error OS_LinuxBSD::move_to_trash(const String &p_path) { // The trash can is successfully created, now we check that we don't exceed our file name length limit. // If the file name is too long trim it so we can add the identifying number and ".trashinfo". // Assumes that the file name length limit is 255 characters. - String file_name = basename(p_path.utf8().get_data()); + String file_name = p_path.get_file(); + if (file_name.length() == 0) { + file_name = p_path.get_base_dir().get_file(); + } if (file_name.length() > 240) { file_name = file_name.substr(0, file_name.length() - 15); } |