Better handling of characters, which are not printable on the Touchscreen.
This commit is contained in:
@@ -598,55 +598,35 @@ void AnycubicTouchscreenClass::Ls()
|
|||||||
{
|
{
|
||||||
card.selectFileByIndex(cnt - 1);
|
card.selectFileByIndex(cnt - 1);
|
||||||
|
|
||||||
bool hasInvalidCharacter = false;
|
int fileNameLen = strlen(card.longFilename);
|
||||||
|
char buffer[fileNameLen];
|
||||||
|
|
||||||
for (unsigned char currentChar = 0; currentChar < strlen(card.longFilename); currentChar++)
|
for (unsigned char i = 0; i < fileNameLen; i++){
|
||||||
if (!isPrintable(card.longFilename[currentChar]))
|
buffer[i] = card.longFilename[i];
|
||||||
{
|
if (!isPrintable(buffer[i]))
|
||||||
hasInvalidCharacter = true;
|
{
|
||||||
break;
|
buffer[i] = '_';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
buffer[fileNameLen] = '\0';
|
||||||
|
|
||||||
|
|
||||||
if (card.flag.filenameIsDir)
|
if (card.flag.filenameIsDir)
|
||||||
{
|
{
|
||||||
if(hasInvalidCharacter)
|
ANYCUBIC_SERIAL_PROTOCOLPGM("/");
|
||||||
{
|
ANYCUBIC_SERIAL_PROTOCOLLN(card.filename);
|
||||||
ANYCUBIC_SERIAL_PROTOCOLPGM("/");
|
ANYCUBIC_SERIAL_PROTOCOLPGM("/");
|
||||||
ANYCUBIC_SERIAL_PROTOCOLLN(card.filename);
|
ANYCUBIC_SERIAL_PROTOCOLLN(buffer);
|
||||||
ANYCUBIC_SERIAL_PROTOCOLPGM("/");
|
SERIAL_ECHO(cnt);
|
||||||
ANYCUBIC_SERIAL_PROTOCOLLN(card.filename);
|
SERIAL_ECHOPGM("/");
|
||||||
SERIAL_ECHO(cnt);
|
SERIAL_ECHOLN(buffer);
|
||||||
SERIAL_ECHOPGM("/");
|
|
||||||
SERIAL_ECHOLN(card.filename);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ANYCUBIC_SERIAL_PROTOCOLPGM("/");
|
|
||||||
ANYCUBIC_SERIAL_PROTOCOLLN(card.filename);
|
|
||||||
ANYCUBIC_SERIAL_PROTOCOLPGM("/");
|
|
||||||
ANYCUBIC_SERIAL_PROTOCOLLN(card.longFilename);
|
|
||||||
SERIAL_ECHO(cnt);
|
|
||||||
SERIAL_ECHOPGM("/");
|
|
||||||
SERIAL_ECHOLN(card.longFilename);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(hasInvalidCharacter)
|
ANYCUBIC_SERIAL_PROTOCOLLN(card.filename);
|
||||||
{
|
ANYCUBIC_SERIAL_PROTOCOLLN(buffer);
|
||||||
ANYCUBIC_SERIAL_PROTOCOLLN(card.filename);
|
SERIAL_ECHO(cnt);
|
||||||
ANYCUBIC_SERIAL_PROTOCOLLN(card.filename);
|
SERIAL_ECHOLN(buffer);
|
||||||
SERIAL_ECHO(cnt);
|
|
||||||
SERIAL_ECHOLN(card.filename);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ANYCUBIC_SERIAL_PROTOCOLLN(card.filename);
|
|
||||||
ANYCUBIC_SERIAL_PROTOCOLLN(card.longFilename);
|
|
||||||
SERIAL_ECHO(cnt);
|
|
||||||
SERIAL_ECHOLN(card.longFilename);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user