Added some diagnostics for missing terminal capability.
This commit is contained in:
@@ -113,6 +113,14 @@ int write_to_terminal(TERMINAL_CHAR_TYPE ch) {
|
|||||||
write(current_terminal, &ch, 1);
|
write(current_terminal, &ch, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char* getcap(const char* capability) {
|
||||||
|
char* cap = tgetstr((char*)capability, NULL);
|
||||||
|
// if (cap == NULL) {
|
||||||
|
// printf("unknown capability '%s'\n", capability);
|
||||||
|
// }
|
||||||
|
return cap;
|
||||||
|
}
|
||||||
|
|
||||||
void write_capability(JNIEnv *env, const char* capability, jobject result) {
|
void write_capability(JNIEnv *env, const char* capability, jobject result) {
|
||||||
if (capability == NULL) {
|
if (capability == NULL) {
|
||||||
mark_failed_with_message(env, "unknown terminal capability", result);
|
mark_failed_with_message(env, "unknown terminal capability", result);
|
||||||
@@ -159,15 +167,15 @@ Java_net_rubygrapefruit_platform_internal_jni_TerminfoFunctions_initTerminal(JNI
|
|||||||
mark_failed_with_message(env, "could not get termcap entry", result);
|
mark_failed_with_message(env, "could not get termcap entry", result);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
terminal_capabilities[NORMAL_TEXT] = tgetstr((char*)"me", NULL);
|
terminal_capabilities[NORMAL_TEXT] = getcap("me");
|
||||||
terminal_capabilities[BRIGHT_TEXT] = tgetstr((char*)"md", NULL);
|
terminal_capabilities[BRIGHT_TEXT] = getcap("md");
|
||||||
terminal_capabilities[FOREGROUND_COLOR] = tgetstr((char*)"AF", NULL);
|
terminal_capabilities[FOREGROUND_COLOR] = getcap("AF");
|
||||||
terminal_capabilities[CURSOR_UP] = tgetstr((char*)"up", NULL);
|
terminal_capabilities[CURSOR_UP] = getcap("up");
|
||||||
terminal_capabilities[CURSOR_DOWN] = tgetstr((char*)"do", NULL);
|
terminal_capabilities[CURSOR_DOWN] = getcap("do");
|
||||||
terminal_capabilities[CURSOR_LEFT] = tgetstr((char*)"le", NULL);
|
terminal_capabilities[CURSOR_LEFT] = getcap("le");
|
||||||
terminal_capabilities[CURSOR_RIGHT] = tgetstr((char*)"nd", NULL);
|
terminal_capabilities[CURSOR_RIGHT] = getcap("nd");
|
||||||
terminal_capabilities[CURSOR_START_LINE] = tgetstr((char*)"cr", NULL);
|
terminal_capabilities[CURSOR_START_LINE] = getcap("cr");
|
||||||
terminal_capabilities[CLEAR_END_OF_LINE] = tgetstr((char*)"ce", NULL);
|
terminal_capabilities[CLEAR_END_OF_LINE] = getcap("ce");
|
||||||
}
|
}
|
||||||
current_terminal = output + 1;
|
current_terminal = output + 1;
|
||||||
write_capability(env, terminal_capabilities[NORMAL_TEXT], result);
|
write_capability(env, terminal_capabilities[NORMAL_TEXT], result);
|
||||||
|
|||||||
Reference in New Issue
Block a user