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:
Marek Marczykowski 2012-01-11 19:08:15 +01:00
parent 5e0cde15de
commit 068e169436

View File

@ -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;
}