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!
(cherry picked from commit a3384b7461
)
This commit is contained in:
parent
eeb6652436
commit
04c08d1f8c
1 changed files with 4 additions and 1 deletions
|
@ -3835,7 +3835,10 @@ Error OS_X11::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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue