blob: b514e2e4b27afcc39b9b2777691ec1d5d7dddc9f [file] [log] [blame]
Makes brltty not show confusing messages such as 'screen not in text mode'
to the user when the api client is not connected. This is needed because
it is hard to localize those messages and they don't mean anything to
the end user.
diff --git a/Drivers/Screen/Linux/screen.c b/Drivers/Screen/Linux/screen.c
index bc2f2c4..556ee9c 100644
--- a/Drivers/Screen/Linux/screen.c
+++ b/Drivers/Screen/Linux/screen.c
@@ -52,15 +52,17 @@ typedef enum {
PARM_CHARSET,
PARM_DEBUGSFM,
PARM_HFB,
+ PARM_MSGS,
PARM_VT,
} ScreenParameters;
-#define SCRPARMS "charset", "debugsfm", "hfb", "vt"
+#define SCRPARMS "charset", "debugsfm", "hfb", "msgs", "vt"
#include "scr_driver.h"
#include "screen.h"
static const char *problemText;
static unsigned int debugScreenFontMap;
+static unsigned int showProblemText = 1;
static int virtualTerminal;
#define UNICODE_ROW_DIRECT 0XF000
@@ -1093,6 +1095,15 @@ processParameters_LinuxScreen (char **parameters) {
}
}
+ showProblemText = 1;
+ if (*parameters[PARM_MSGS]) {
+ if (!validateYesNo(&showProblemText, parameters[PARM_MSGS])) {
+ logMessage(LOG_WARNING, "%s: %s", "invalid value for msgs",
+ parameters[PARM_MSGS]);
+ showProblemText = 1;
+ }
+ }
+
return 1;
}
@@ -1388,7 +1399,7 @@ readCharacters_LinuxScreen (const ScreenBox *box, ScreenCharacter *buffer) {
if (readScreenSize(&size)) {
if (validateScreenBox(box, size.columns, size.rows)) {
if (problemText) {
- setScreenMessage(box, buffer, problemText);
+ setScreenMessage(box, buffer, showProblemText ? problemText : "");
return 1;
}
diff --git a/Programs/scr_driver.c b/Programs/scr_driver.c
index 16d60d7..0797468 100644
--- a/Programs/scr_driver.c
+++ b/Programs/scr_driver.c
@@ -38,7 +38,7 @@ typedef enum {
#define DRIVER_DEVELOPERS ""
#include "scr_driver.h"
-static const char defaultScreenMessage[] = strtext("no screen");
+static const char defaultScreenMessage[] = "";
static const char *screenMessage = defaultScreenMessage;
static int