Kriechi / Cura-DuetRRFPlugin

Cura plugin to print directly to a DuetRRF printer
GNU Affero General Public License v3.0
39 stars 10 forks source link

Fails when there are special characters in filename (e.g. "(") #10

Closed zylantha closed 4 years ago

zylantha commented 6 years ago

When the uploaded filename to the Duet includes a "(" character, the plugin appears to fail, with messages on the Duet console such as: Error: M32: GCode file "/gcodes/KPRO_Shiny Amur .gcode" not found

(In this instance, it was "KPRO_Shiny Amur (1).gcode" that I uploaded - it truncated the filename at the open bracket).

Perhaps there needs to be an escaping of the filename - is it uploading over HTTP? In this case I think the filenames would need to be escaped?

Removing the brackets from the uploaded filename fixes the issue, but this is a pain to do every time.

Kriechi commented 6 years ago

Parenthesis are interpreted as "comments": https://www.duet3d.com/forum/thread.php?id=4723#p41212

I think we need to use quotes around filenames.

beikeland commented 5 years ago

I accidentally uploaded a file with a question mark in it, maybe less likely to be an issue as it only happened because I change keyboard layouts and they have _ and ? on the same key, so sometimes i get the wrong one.

Upload got to 2% and got stuck, verified with another attempt, same outcome. Same result with both print and upload buttons.

Update: the next day there was an error in Cura. Code 99 I think, and new upload possible without restarting Cura.

Kriechi commented 5 years ago

I don't think ? is an allowed character for filenames in general - but yes, ideally my plugin would display an error message.

beikeland commented 5 years ago

yes and no, linux escapes them

$ touch test?file
$ ls
'test?file'
$ rm test\?file
$ ls
$
Kriechi commented 4 years ago

fixed by 84ff2e13d4007247b07ce20b8a12a9cb64d9ee2f.