aboutsummaryrefslogtreecommitdiff
path: root/vietnamese/vnterm/files/patch-menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'vietnamese/vnterm/files/patch-menu.c')
-rw-r--r--vietnamese/vnterm/files/patch-menu.c111
1 files changed, 111 insertions, 0 deletions
diff --git a/vietnamese/vnterm/files/patch-menu.c b/vietnamese/vnterm/files/patch-menu.c
new file mode 100644
index 000000000000..f4cb2a2da457
--- /dev/null
+++ b/vietnamese/vnterm/files/patch-menu.c
@@ -0,0 +1,111 @@
+--- menu.c.orig Mon Aug 21 08:47:47 2000
++++ menu.c Sat Feb 10 05:32:41 2001
+@@ -33,6 +33,10 @@
+ #include <stdio.h>
+ #include <signal.h>
+
++#ifndef NO_VIETNAMESE
++#include "vnvars.h"
++#endif /* NO_VIETNAMESE */
++
+ extern void FindFontSelection();
+
+ Arg menuArgs[2] = {{ XtNleftBitmap, (XtArgVal) 0 },
+@@ -57,12 +61,20 @@
+ do_tektextlarge(), do_tektext2(), do_tektext3(), do_tektextsmall(),
+ do_tekpage(), do_tekreset(), do_tekcopy(), do_vtshow(), do_vtmode(),
+ do_tekhide(), do_vtfont();
++#ifndef NO_VIETNAMESE
++static void do_vnfilterkeyboard(), do_vnfilterscreen();
++#endif /* NO_VIETNAMESE */
+
+
+ /*
+ * The order entries MUST match the values given in menu.h
+ */
+ MenuEntry mainMenuEntries[] = {
++#ifndef NO_VIETNAMESE
++ { "Enable Vietnamese keys",do_vnfilterkeyboard, NULL }, /* 0 */
++ { "Use Vietnamese screen", do_vnfilterscreen, NULL }, /* 1 */
++ { "line3", NULL, NULL }, /* 2 */
++#endif /* NO_VIETNAMESE */
+ { "securekbd", do_securekbd, NULL }, /* 0 */
+ { "allowsends", do_allowsends, NULL }, /* 1 */
+ #ifdef ALLOWLOGGING
+@@ -80,6 +92,11 @@
+ { "quit", do_quit, NULL }}; /* 12 */
+
+ MenuEntry vtMenuEntries[] = {
++#ifndef NO_VIETNAMESE
++ { "Enable Vietnamese keys",do_vnfilterkeyboard, NULL }, /* 0 */
++ { "Use Vietnamese screen", do_vnfilterscreen, NULL }, /* 1 */
++ { "line3", NULL, NULL }, /* 2 */
++#endif /* NO_VIETNAMESE */
+ { "scrollbar", do_scrollbar, NULL }, /* 0 */
+ { "jumpscroll", do_jumpscroll, NULL }, /* 1 */
+ { "reversevideo", do_reversevideo, NULL }, /* 2 */
+@@ -160,6 +177,10 @@
+ Cardinal *param_count; /* 0 or 1 */
+ {
+ TScreen *screen = &term->screen;
++#ifndef NO_VIETNAMESE
++ extern Boolean vn_filter_keyboard;
++ extern Boolean vn_filter_screen;
++#endif
+
+ if (*param_count != 1) {
+ Bell(XkbBI_MinorError,0);
+@@ -209,6 +230,10 @@
+ update_cursesemul();
+ update_visualbell();
+ update_marginbell();
++#ifndef NO_VIETNAMESE
++ update_vnfilterkeyboard();
++ update_vnfilterscreen();
++#endif
+ #ifndef NO_ACTIVE_ICON
+ if (!screen->fnt_icon || !screen->iconVwin.window) {
+ set_sensitivity (screen->vtmenu,
+@@ -1277,3 +1302,42 @@
+ }
+
+
++#ifndef NO_VIETNAMESE
++
++static void do_vnfilterkeyboard (gw, closure, data)
++ Widget gw;
++ caddr_t closure, data;
++{
++ unsigned char buf[5];
++ int count;
++
++ vn_filter_keyboard = !vn_filter_keyboard;
++ if (vn_filter_keyboard) {
++ vn_keyboard_id = vk_init(VK_ST_VIETNAMESE, VK_DEFAULT_ESC, vn_erase_char);
++ } else {
++ vk_end(vn_keyboard_id, buf, &count);
++ }
++ _Set_Vn_Title(VK_ST_VIETNAMESE);
++ update_vnfilterkeyboard();
++}
++
++
++static void do_vnfilterscreen (gw, closure, data)
++ Widget gw;
++ caddr_t closure, data;
++{
++ unsigned char buf[5];
++ int count;
++
++ vn_filter_screen = !vn_filter_screen;
++ if (vn_filter_screen) {
++ vn_screen_id = vk_init(VK_ST_VIETNAMESE, VK_DEFAULT_ESC, vn_erase_char);
++ /* set it in batch mode so we don't get backspaces in immediate mode */
++ vk_set(vn_screen_id, 1, VK_SET_BATCH);
++ } else {
++ vk_end(vn_screen_id, buf, &count);
++ }
++ update_vnfilterscreen();
++}
++
++#endif /* NO_VIETNAMESE */