vm/file-editor: mask some charracters in filename (#406)
mimeopen passes wrong filename to the editor/viewer when filename contains '#'. So mask this (replace _) and some other non-alpha-numeric characters.
This commit is contained in:
parent
5e0cde15de
commit
068e169436
@ -12,12 +12,18 @@ char *get_filename()
|
||||
{
|
||||
char buf[DVM_FILENAME_SIZE];
|
||||
static char retname[sizeof(buf) + sizeof("/tmp/")];
|
||||
int i;
|
||||
if (!read_all(0, buf, sizeof(buf)))
|
||||
exit(1);
|
||||
if (index(buf, '/')) {
|
||||
fprintf(stderr, "filename contains /");
|
||||
exit(1);
|
||||
}
|
||||
for (i=0; i < DVM_FILENAME_SIZE && buf[i]!=0; i++) {
|
||||
// replace some characters with _ (eg mimeopen have problems with some of them)
|
||||
if ((buf[i] > 0x20 && buf[i] < 0x30) || index(";:<=>?`~", buf[i]))
|
||||
buf[i]='_';
|
||||
}
|
||||
snprintf(retname, sizeof(retname), "/tmp/%s", buf);
|
||||
return retname;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user