Index: head/x11/xvkbd/Makefile =================================================================== --- head/x11/xvkbd/Makefile (revision 508476) +++ head/x11/xvkbd/Makefile (revision 508477) @@ -1,47 +1,47 @@ # Created by: roam@FreeBSD.org # $FreeBSD$ PORTNAME= xvkbd -PORTVERSION= 3.7 +PORTVERSION= 3.9 CATEGORIES= x11 MASTER_SITES= http://t-sato.in.coocan.jp/xvkbd/ MAINTAINER= ports@FreeBSD.org COMMENT= Virtual keyboard for X applications LICENSE= GPLv2+ USES= imake USE_XORG= ice sm x11 xaw xext xmu xpm xt DESKTOP_ENTRIES="Xvkbd" "" "" "xvkbd" "Utility;" false OPTIONS_DEFINE= DOCS NLS XAW3D XTEST OPTIONS_DEFAULT= XTEST XAW3D_DESC= Xaw3d widget library support XAW3D_LIB_DEPENDS= libXaw3d.so:x11-toolkits/Xaw3d XTEST_DESC= XTEST extensions support XTEST_USE= xorg=xtst post-patch: @${REINPLACE_CMD} -e \ 's|/usr/include/|${LOCALBASE}/include/|' ${WRKSRC}/XVkbd-small.ad post-patch-NLS-on: @${REINPLACE_CMD} -e \ '/define I18N/s|^XCOMM |#|' ${WRKSRC}/Imakefile post-patch-XAW3D-on: @${REINPLACE_CMD} -e \ '/define XAW3D/s|^XCOMM |#|' ${WRKSRC}/Imakefile post-patch-XTEST-on: @${REINPLACE_CMD} -e \ '/define XTEST/s|^XCOMM |#|' ${WRKSRC}/Imakefile post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${DOCSDIR} .include Index: head/x11/xvkbd/distinfo =================================================================== --- head/x11/xvkbd/distinfo (revision 508476) +++ head/x11/xvkbd/distinfo (revision 508477) @@ -1,2 +1,3 @@ -SHA256 (xvkbd-3.7.tar.gz) = 895f768269820e7c0379b0daac3687bda0c670d192ebb7e61e5613a5939ec90b -SIZE (xvkbd-3.7.tar.gz) = 81645 +TIMESTAMP = 1565025196 +SHA256 (xvkbd-3.9.tar.gz) = b81c37ddfb7b78993dad15d304f8fd78e540d57c0a72f7e3316fd45fba919a9d +SIZE (xvkbd-3.9.tar.gz) = 88440 Index: head/x11/xvkbd/files/patch-xvkbd.c =================================================================== --- head/x11/xvkbd/files/patch-xvkbd.c (revision 508476) +++ head/x11/xvkbd/files/patch-xvkbd.c (revision 508477) @@ -1,563 +1,545 @@ Description: Assorted compilation and usage fixes. - fix a lot of compiler warnings - unbreak the build if XTEST is not selected - use snprintf() instead of sprintf() and strcpy(), just in case - fix the text of an error message Forwarded: no Author: Peter Pentchev Last-Update: 2015-05-07 ---- xvkbd.c.orig 2015-02-14 11:32:32 UTC +--- xvkbd.c.orig 2018-02-25 00:55:33 UTC +++ xvkbd.c @@ -470,8 +470,8 @@ static int altgr_mask = 0; static int level3_shift_mask = 0; static KeySym altgr_keysym = NoSymbol; -static int shift_state = 0; -static int mouse_shift = 0; +static unsigned int shift_state = 0; +static unsigned int mouse_shift = 0; static Display *target_dpy = NULL; @@ -482,7 +482,7 @@ static Window focused_subwindow = None; static Pixmap xvkbd_pixmap = None; static int AddKeysym(KeySym keysym, Boolean top); /* forward */ -static void SendString(const unsigned char *str); +static void SendString(const char *str); static void MakeKeyboard(Boolean remake); static void MakeKeypad(Widget form, Widget from_vert, Widget from_horiz); static void MakeSunFunctionKey(Widget form, Widget from_vert, Widget from_horiz); @@ -492,6 +492,8 @@ static void PopupFunctionKeyEditor(void) static void DeleteWindowProc(Widget w, XEvent *event, String *pars, Cardinal *n_pars); static void SaveProperty(void); -+static void SignalUser1(int sig); ++static void SignalUser1(int dummy); + /* * Search for window which has specified instance name (WM_NAME) * or class name (WM_CLASS). @@ -500,8 +502,7 @@ static Window FindWindow(Window top, cha { Window w; Window *children, dummy; - unsigned int nchildren; - int i; + unsigned int nchildren, i; XClassHint hint; char *win_name; -@@ -802,7 +803,9 @@ static int MyErrorHandler(Display *my_dp +@@ -824,7 +825,9 @@ static int MyErrorHandler(Display *my_dp */ static void SendEvent(XKeyEvent *event) { +#ifdef USE_XTEST static Boolean first = TRUE; +#endif if (!appres.no_sync) { XSync(event->display, FALSE); -@@ -1099,11 +1102,11 @@ static void SendKeyPressedEvent(KeySym k +@@ -1136,11 +1139,11 @@ static void SendKeyPressedEvent(KeySym k #ifdef USE_XTEST if (appres.xtest && press_release == 0) { - Window root, child; + Window troot, child; int root_x, root_y, x, y; unsigned int mask; - XQueryPointer(target_dpy, event.root, &root, &child, &root_x, &root_y, &x, &y, &mask); + XQueryPointer(target_dpy, event.root, &troot, &child, &root_x, &root_y, &x, &y, &mask); event.type = KeyRelease; event.state = 0; -@@ -1281,7 +1284,7 @@ static int n_word_list = 0; +@@ -1332,7 +1335,7 @@ static int n_word_list = 0; static void SetDefaultDictionary(void) { - strncpy(dict_filename, appres.dict_file, sizeof(dict_filename)); + snprintf(dict_filename, sizeof(dict_filename), "%s", appres.dict_file); XtVaSetValues(props_dict_entry, XtNstring, dict_filename, NULL); } -@@ -1296,7 +1299,7 @@ static void ReadCompletionDictionary(voi +@@ -1347,7 +1350,7 @@ static void ReadCompletionDictionary(voi struct WORDLIST *p; if (strcmp(cur_dict_filename, dict_filename) == 0) return; - strcpy(cur_dict_filename, dict_filename); + snprintf(cur_dict_filename, sizeof(cur_dict_filename), "%s", dict_filename); if (!first) { int cnt = 0; -@@ -1346,7 +1349,7 @@ static void ReadCompletionDictionary(voi +@@ -1397,7 +1400,7 @@ static void ReadCompletionDictionary(voi static void AddToCompletionText(KeySym keysym) { - int len; + size_t len; struct WORDLIST *node_ptr; if (completion_entry != None) { -@@ -1436,7 +1439,7 @@ static void PopupCompletionPanel(void) +@@ -1487,7 +1490,7 @@ static void PopupCompletionPanel(void) ReadCompletionDictionary(); - sprintf(msg, "%d words in the dictionary", n_completion_words); + snprintf(msg, sizeof(msg), "%d words in the dictionary", n_completion_words); XtVaSetValues(completion_entry, XtNlabel, msg, NULL); completion_text[0] = '\0'; -@@ -1451,11 +1454,11 @@ static void PopupCompletionPanel(void) +@@ -1502,11 +1505,11 @@ static void PopupCompletionPanel(void) */ static void KeyPressed(Widget w, char *key, char *data); -static void SendString(const unsigned char *str) +static void SendString(const char *str) { - const unsigned char *cp, *cp2; /* I remember "unsigned" might be required for some systems */ + const char *cp, *cp2; char key[50]; - int len; + size_t len; int val; Window target_root, child, junk_w; int junk_i; -@@ -1480,8 +1483,7 @@ static void SendString(const unsigned ch +@@ -1536,8 +1539,7 @@ static void SendString(const unsigned ch } else { len = cp2 - cp - 1; if (sizeof(key) <= len) len = sizeof(key) - 1; - strncpy(key, cp + 1, len); - key[len] = '\0'; + snprintf(key, sizeof(key), "%s", cp + 1); KeyPressed(None, key, NULL); cp = cp2; } -@@ -1528,11 +1530,12 @@ static void SendString(const unsigned ch +@@ -1584,11 +1586,12 @@ static void SendString(const unsigned ch if ('1' <= *cp && *cp <= '9') { usleep((*cp - '0') * 100000); } else { - fprintf(stderr, "%s: no digit after \"\\m\"\n", + fprintf(stderr, "%s: no digit after \"\\D\"\n", PROGRAM_NAME); } break; case 'm': /* simulate click mouse button */ +#ifdef USE_XTEST cp++; if ('1' <= *cp && *cp <= '9') { if (appres.debug) fprintf(stderr, "XTestFakeButtonEvent(%d)\n", *cp - '0'); -@@ -1543,10 +1546,18 @@ static void SendString(const unsigned ch +@@ -1599,10 +1602,18 @@ static void SendString(const unsigned ch fprintf(stderr, "%s: no digit after \"\\m\"\n", PROGRAM_NAME); } +#else + fprintf(stderr, "%s: this binary is compiled without XTEST support\n", + PROGRAM_NAME); +#endif break; case 'x': case 'y': /* move mouse pointer */ - sscanf(cp + 1, "%d", &val); + if (sscanf(cp + 1, "%d", &val) != -1) { + fprintf(stderr, "%s: no number after \"\\%c\"\n", + PROGRAM_NAME, *cp); + break; + } target_root = RootWindow(target_dpy, DefaultScreen(target_dpy)); XQueryPointer(target_dpy, target_root, &junk_w, &child, &cur_x, &cur_y, &junk_i, &junk_i, &junk_u); -@@ -1628,7 +1639,7 @@ static void Highlight(char *name, int st +@@ -1684,7 +1695,7 @@ static void Highlight(char *name, int st char name1[50]; Widget w; - sprintf(name1, "*%s", name); + snprintf(name1, sizeof(name1), "*%s", name); w = XtNameToWidget(toplevel, name1); if (w != None) { if (strstr(name, "Focus") != NULL) { -@@ -1674,13 +1685,13 @@ static Boolean CheckShiftState(int row, +@@ -1730,13 +1741,13 @@ static Boolean CheckShiftState(int row, static void RefreshShiftState(Boolean force) { static Boolean first = TRUE; - static int last_shift_state = 0; - static int last_mouse_shift = 0; + static unsigned int last_shift_state = 0; + static unsigned int last_mouse_shift = 0; static int last_num_lock_state = FALSE; static Display *last_target_dpy = NULL; - static long last_focus = 0; - int cur_shift; - int changed; + static Window last_focus = 0; + unsigned int cur_shift; + unsigned int changed; int first_row, row, col; Boolean shifted; char *label; -@@ -1768,7 +1779,7 @@ static void RefreshShiftState(Boolean fo +@@ -1824,7 +1835,7 @@ static void RefreshShiftState(Boolean fo Window root, child; int root_x, root_y, x, y; - unsigned int mask; + unsigned int tmask; XKeyEvent event; -@@ -1784,28 +1795,28 @@ static void RefreshShiftState(Boolean fo +@@ -1840,28 +1851,28 @@ static void RefreshShiftState(Boolean fo event.same_screen = TRUE; event.state = 0; - XQueryPointer(target_dpy, event.root, &root, &child, &root_x, &root_y, &x, &y, &mask); + XQueryPointer(target_dpy, event.root, &root, &child, &root_x, &root_y, &x, &y, &tmask); if (strstr(appres.positive_modifiers, "shift") != NULL - && (shift_state & ShiftMask) != (mask & ShiftMask)) { + && (shift_state & ShiftMask) != (tmask & ShiftMask)) { event.keycode = XKeysymToKeycode(target_dpy, XK_Shift_L); event.type = (shift_state & ShiftMask) ? KeyPress : KeyRelease; SendEvent(&event); } if (strstr(appres.positive_modifiers, "control") != NULL - && (shift_state & ControlMask) != (mask & ControlMask)) { + && (shift_state & ControlMask) != (tmask & ControlMask)) { event.keycode = XKeysymToKeycode(target_dpy, XK_Control_L); event.type = (shift_state & ControlMask) ? KeyPress : KeyRelease; SendEvent(&event); } if (strstr(appres.positive_modifiers, "alt") != NULL - && (shift_state & alt_mask) != (mask & alt_mask)) { + && (shift_state & alt_mask) != (tmask & alt_mask)) { event.keycode = XKeysymToKeycode(target_dpy, XK_Alt_L); event.type = (shift_state & alt_mask) ? KeyPress : KeyRelease; SendEvent(&event); } if (strstr(appres.positive_modifiers, "meta") != NULL - && (shift_state & meta_mask) != (mask & meta_mask)) { + && (shift_state & meta_mask) != (tmask & meta_mask)) { event.keycode = XKeysymToKeycode(target_dpy, XK_Meta_L); event.type = (shift_state & meta_mask) ? KeyPress : KeyRelease; SendEvent(&event); -@@ -1866,7 +1877,7 @@ static char *GetWindowGeometry(Widget w) +@@ -1922,7 +1933,7 @@ static char *GetWindowGeometry(Widget w) XtVaGetValues(w, XtNx, &x0, XtNy, &y0, NULL); XGetGeometry(dpy, XtWindow(w), &root, &x1, &y1, &wd, &ht, &bd, &dp); - sprintf(geom, "%dx%d+%d+%d", wd, ht, (int)(x0 - x1), (int)(y0 - y1)); + snprintf(geom, sizeof(geom), "%dx%d+%d+%d", wd, ht, (int)(x0 - x1), (int)(y0 - y1)); return geom; } -@@ -1908,7 +1919,7 @@ static void SetWindowManagerHint(Boolean +@@ -1964,7 +1975,7 @@ static void SetWindowManagerHint(Boolean FALSE, SubstructureNotifyMask | SubstructureRedirectMask, (XEvent *)&ev); if (appres.debug) - fprintf(stderr, "SetWindowManagerHint: _NET_WM_STATE_ABOVE = %d\n", ev.data.l[0]); + fprintf(stderr, "SetWindowManagerHint: _NET_WM_STATE_ABOVE = %ld\n", ev.data.l[0]); } } -@@ -1930,7 +1941,7 @@ static void LayoutSelected(Widget w, cha +@@ -1986,7 +1997,7 @@ static void LayoutSelected(Widget w, cha if (key != NULL) { if (strcmp(key, "default") != 0) { sscanf(key, "%29[^/]/%29s", customization, lang); - sprintf(name, "XVkbd-%s", customization); + snprintf(name, sizeof(name), "XVkbd-%s", customization); xenv = XtResolvePathname(dpy, "app-defaults", name, NULL, NULL, NULL, 0, NULL); if (xenv == NULL) { fprintf(stderr, "%s: app-default file \"%s\" not installed\n", -@@ -1938,12 +1949,10 @@ static void LayoutSelected(Widget w, cha +@@ -1994,12 +2005,10 @@ static void LayoutSelected(Widget w, cha } } - env_lang = malloc(strlen("LC_ALL=") + strlen(lang) + 1); - sprintf(env_lang, "LC_ALL=%s", lang); + asprintf(&env_lang, "LC_ALL=%s", lang); putenv(env_lang); if (xenv != NULL) { - env_xenv = malloc(strlen("XENVIRONMENT=") + strlen(xenv) + 1); - sprintf(env_xenv, "XENVIRONMENT=%s", xenv); + asprintf(&env_xenv, "XENVIRONMENT=%s", xenv); putenv(env_xenv); keyboard_layout = XtNewString(key); -@@ -2063,6 +2072,7 @@ static void PropsItemToggled(Widget w, c +@@ -2119,6 +2128,7 @@ static void PropsItemToggled(Widget w, c XtVaGetValues(XtNameToWidget(props_panel, "*jump_pointer"), XtNstate, &appres.jump_pointer, NULL); + /* These two lines generate warnings with -Wbad-function-cast. Grrr. */ appres.key_click_duration = (int)XawToggleGetCurrent(click_buttons); appres.autoclick_delay = (int)XawToggleGetCurrent(autoclick_buttons); -@@ -2129,7 +2139,7 @@ static void PopupPropsPanel(void) +@@ -2185,7 +2195,7 @@ static void PopupPropsPanel(void) if (props_panel == None) { Widget label, button; Widget form, w; - int i; + Cardinal i; int val; props_panel = XtVaCreatePopupShell("props_panel", transientShellWidgetClass, -@@ -2155,7 +2165,7 @@ static void PopupPropsPanel(void) +@@ -2211,7 +2221,7 @@ static void PopupPropsPanel(void) click_buttons = button; for (val = 1; val <= 50; val *= 2) { char s1[10]; - sprintf(s1, "%dms", val); + snprintf(s1, sizeof(s1), "%dms", val); button = XtVaCreateManagedWidget(s1, toggleWidgetClass, form, XtNfromVert, w, XtNfromHoriz, button, XtNradioData, (XtPointer)val, -@@ -2177,7 +2187,7 @@ static void PopupPropsPanel(void) +@@ -2233,7 +2243,7 @@ static void PopupPropsPanel(void) autoclick_buttons = button; for (val = 500; val <= 1000; val += 100) { char s1[10]; - sprintf(s1, "%dms", val); + snprintf(s1, sizeof(s1), "%dms", val); button = XtVaCreateManagedWidget(s1, toggleWidgetClass, form, XtNfromVert, w, XtNfromHoriz, button, XtNradioData, (XtPointer)val, -@@ -2239,7 +2249,7 @@ static void OpenRemoteDisplay(Widget w, +@@ -2295,7 +2305,7 @@ static void OpenRemoteDisplay(Widget w, focused_subwindow = None; if (target_dpy != NULL && target_dpy != dpy) XCloseDisplay(target_dpy); - strncpy(name, (display_name == NULL) ? "" : display_name, sizeof(name)); + snprintf(name, sizeof(name), "%s", (display_name == NULL) ? "" : display_name); for (cp = name; isascii(*cp) && isprint(*cp); cp++) ; *cp = '\0'; -@@ -2443,7 +2453,7 @@ static void IconifyWindow(Widget w, Bool - } - } - --static void SignalUser1(void) -+static void SignalUser1(int sig) - { - XWindowAttributes attr; - XGetWindowAttributes(dpy, XtWindow(toplevel), &attr); -@@ -2752,7 +2762,7 @@ static Widget MakeKey(Widget parent, con +@@ -2806,7 +2816,7 @@ static Widget MakeKey(Widget parent, con XtAddCallback(w, XtNcallback, (XtCallbackProc)KeyPressed, (XtPointer)name); if (label != NULL) { - strncpy(str, label, sizeof(str) - 1); + snprintf(str, sizeof(str), "%s", label); if (strcmp(str, "space") == 0) strcpy(str, ""); len = strlen(str); if (3 <= len) { -@@ -2824,9 +2834,9 @@ static void MakeKeypad(Widget form, Widg +@@ -2878,9 +2888,9 @@ static void MakeKeypad(Widget form, Widg || (strncmp(keypad_shift[row][col], "KP_", 3) == 0 && isdigit(keypad_shift[row][col][3]))) color = appres.general_background; - strcpy(name, keypad[row][col]); + snprintf(name, sizeof(name), "%s", keypad[row][col]); if (strcmp(name, "Focus") != 0 && strcmp(name, "Num_Lock") != 0) - sprintf(name, "pad%d,%d", row, col); + snprintf(name, sizeof(name), "pad%d,%d", row, col); key = MakeKey(keypad_box, XtNewString(name), keypad_label[row][col], color); XtVaSetValues(key, XtNfont, font, NULL); -@@ -2928,12 +2938,12 @@ static void MakeKeyboard(Boolean remake) +@@ -2982,12 +2992,12 @@ static void MakeKeyboard(Boolean remake) Widget form, key, left; Pixel color; XFontStruct *font; - Dimension wd, max_wd; + Dimension dwd, max_dwd; int row, col, first_row; char name[50], *label; Widget key_box[NUM_KEY_ROWS]; Widget menu_entry; - int i; + Cardinal i; #include "xvkbd.xbm" #include "iconify.xbm" -@@ -2953,7 +2963,7 @@ static void MakeKeyboard(Boolean remake) +@@ -3007,7 +3017,7 @@ static void MakeKeyboard(Boolean remake) for (row = first_row; row < NUM_KEY_ROWS; row++) { if (keys_normal[row][0] == NULL) continue; - sprintf(name, "row%d", row); + snprintf(name, sizeof(name), "row%d", row); key_box[row] = XtVaCreateManagedWidget(name, formWidgetClass, form, NULL); key_box[row + 1] = None; if (row != first_row) -@@ -2963,7 +2973,7 @@ static void MakeKeyboard(Boolean remake) +@@ -3017,7 +3027,7 @@ static void MakeKeyboard(Boolean remake) left = None; for (col = 0; keys_normal[row][col] != NULL; col++) { - strcpy(name, keys_normal[row][col]); + snprintf(name, sizeof(name), "%s", keys_normal[row][col]); if (strcmp(name, "MainMenu") == 0) { Widget iconify_button = None; -@@ -3005,11 +3015,11 @@ static void MakeKeyboard(Boolean remake) +@@ -3059,11 +3069,11 @@ static void MakeKeyboard(Boolean remake) color = appres.general_background; font = appres.general_font; if (isalpha(name[0])) font = appres.letter_font; - if (strcmp(name, "space") != 0) sprintf(name, "%d,%d", row, col); + if (strcmp(name, "space") != 0) snprintf(name, sizeof(name), "%d,%d", row, col); } key = MakeKey(key_box[row], XtNewString(name), label, color); - XtVaGetValues(key, XtNwidth, &wd, NULL); - if (wd <= 1) { + XtVaGetValues(key, XtNwidth, &dwd, NULL); + if (dwd <= 1) { /* keys can be removed by setting its width to 1 */ XtDestroyWidget(key); key = None; -@@ -3045,7 +3055,7 @@ static void MakeKeyboard(Boolean remake) +@@ -3099,7 +3109,7 @@ static void MakeKeyboard(Boolean remake) Window root; int x1, y1; unsigned int wd, ht, bd, dp; - int max_wd, max_ht; + unsigned int max_wd, max_ht; XGetGeometry(dpy, XtWindow(toplevel), &root, &x1, &y1, &wd, &ht, &bd, &dp); max_wd = XtScreen(toplevel)->width * appres.max_width_ratio; -@@ -3063,16 +3073,16 @@ static void MakeKeyboard(Boolean remake) +@@ -3118,16 +3128,16 @@ static void MakeKeyboard(Boolean remake) if (!appres.debug && key_box[first_row] != None) { if (appres.keypad) { - XtVaGetValues(key_box[1], XtNwidth, &max_wd, NULL); + XtVaGetValues(key_box[1], XtNwidth, &max_dwd, NULL); } else { - max_wd = 0; + max_dwd = 0; for (row = first_row; row < NUM_KEY_ROWS && key_box[row] != None; row++) { - XtVaGetValues(key_box[row], XtNwidth, &wd, NULL); - if (max_wd < wd) max_wd = wd; + XtVaGetValues(key_box[row], XtNwidth, &dwd, NULL); + if (max_dwd < dwd) max_dwd = dwd; } } for (row = first_row; row < NUM_KEY_ROWS && key_box[row] != None; row++) { - XtVaSetValues(key_box[row], XtNwidth, max_wd, NULL); + XtVaSetValues(key_box[row], XtNwidth, max_dwd, NULL); } } if (0 < strlen(appres.geometry)) { -@@ -3180,11 +3190,11 @@ static void ReadProperty(void) +@@ -3236,11 +3246,11 @@ static void ReadProperty(void) home = getenv("HOME"); if (appres.key_file[0] != '/' && home != NULL && strlen(home) + strlen(appres.key_file) + 1 < sizeof(fkey_filename)) - sprintf(fkey_filename, "%s/%s", home, appres.key_file); + snprintf(fkey_filename, sizeof(fkey_filename), "%s/%s", home, appres.key_file); else - strncpy(fkey_filename, appres.key_file, sizeof(fkey_filename)); + snprintf(fkey_filename, sizeof(fkey_filename), "%s", appres.key_file); - strncpy(dict_filename, appres.dict_file, sizeof(dict_filename)); + snprintf(dict_filename, sizeof(dict_filename), "%s", appres.dict_file); fp = fopen(fkey_filename, "r"); if (fp == NULL) return; -@@ -3199,7 +3209,7 @@ static void ReadProperty(void) - LayoutSelected(None, keyboard_layout, NULL); - } +@@ -3253,7 +3263,7 @@ static void ReadProperty(void) + keyboard_layout, getenv("XENVIRONMENT")); + if (getenv("XENVIRONMENT") == NULL) layout_selected = TRUE; } else if (sscanf(&str[1], "dict_file %s", key) == 1) { - strncpy(dict_filename, key, sizeof(dict_filename)); + snprintf(dict_filename, sizeof(dict_filename), "%s", key); } else if (sscanf(&str[1], "%s %d", key, &val) == 2) { if (strcmp(key, "quick_modifiers") == 0) appres.quick_modifiers = val; -@@ -3273,9 +3283,9 @@ static void FKeyMenuSelected(Widget w, c +@@ -3329,9 +3339,9 @@ static void FKeyMenuSelected(Widget w, c if (key == NULL) strcpy(key2, ""); else if (strncmp(key, "Shift-", strlen("Shift-")) == 0) - sprintf(key2, "s:%s", &key[strlen("Shift-")]); + snprintf(key2, sizeof(key2), "s:%s", &key[strlen("Shift-")]); else - strcpy(key2, key); + snprintf(key2, sizeof(key2), "%s", key); if (strcmp(cur_fkey, key2) != 0) { if (strlen(cur_fkey) != 0) { -@@ -3298,7 +3308,7 @@ static void FKeyMenuSelected(Widget w, c +@@ -3354,7 +3364,7 @@ static void FKeyMenuSelected(Widget w, c prefix = ""; if (cur_fkey_value_mode[0] == 'c') prefix = "!"; else if (fkey_value[0] == '!' || fkey_value[0] == '\\') prefix = "\\"; - sprintf(sp->value, "%s %s%s", cur_fkey, prefix, fkey_value); + snprintf(sp->value, len + strlen(fkey_value) + 5, "%s %s%s", cur_fkey, prefix, fkey_value); } else { /* empty string - remove the entry for the function key */ if (sp != NULL) { if (sp2 != NULL) sp2->next = sp->next; -@@ -3318,10 +3328,10 @@ static void FKeyMenuSelected(Widget w, c +@@ -3374,10 +3384,10 @@ static void FKeyMenuSelected(Widget w, c FKeyValueMenuSelected(None, (value[0] == '!') ? "command" : "string"); if (value[0] == '!' || value[0] == '\\') value = value + 1; - strncpy(fkey_value, value, sizeof(fkey_value) - 1); + snprintf(fkey_value, sizeof(fkey_value), "%s", value); XtVaSetValues(fkey_value_entry, XtNstring, fkey_value, NULL); - strcpy(cur_fkey, key2); + snprintf(cur_fkey, sizeof(cur_fkey), "%s", key2); } } } -@@ -3385,9 +3395,9 @@ static void PopupFunctionKeyEditor(void) +@@ -3441,9 +3451,9 @@ static void PopupFunctionKeyEditor(void) for (j = 0; j <= 1; j++) { for (i = 1; i <= appres.editable_function_keys; i++) { if (j == 0) - sprintf(label, "F%d", i); + snprintf(label, sizeof(label), "F%d", i); else - sprintf(label, "Shift-F%d", i); + snprintf(label, sizeof(label), "Shift-F%d", i); key = XtNewString(label); menu_entry = XtVaCreateManagedWidget(key, smeBSBObjectClass, menu, NULL); XtAddCallback(menu_entry, XtNcallback, (XtCallbackProc)FKeyMenuSelected, -@@ -3449,8 +3459,8 @@ static const char *FindFunctionKeyValue( +@@ -3514,8 +3524,8 @@ static const char *FindFunctionKeyValue( else if (shift_state & ControlMask) prefix = 'c'; else if (shift_state & ShiftMask) prefix = 's'; } - if (prefix == '\0') sprintf(label, "%s", key); - else sprintf(label, "%c:%s", prefix, key); + if (prefix == '\0') snprintf(label, sizeof(label), "%s", key); + else snprintf(label, sizeof(label), "%c:%s", prefix, key); len = strlen(label); for (sp = fkey_list; sp != NULL; sp = sp->next) { -@@ -3508,8 +3518,10 @@ static void Autoclick(void) +@@ -3573,8 +3583,10 @@ static void Autoclick(void) { StopAutoclick(); +#ifdef USE_XTEST XTestFakeButtonEvent(target_dpy, 1, True, CurrentTime); XTestFakeButtonEvent(target_dpy, 1, False, CurrentTime); +#endif } static void ShowBalloon(Widget w, XEvent *event, String *pars, Cardinal *n_pars) -@@ -3590,7 +3602,7 @@ static void SetIconBitmap(Widget w) - static void VisibilityChanged(Widget w, XEvent *event, - String *pars, Cardinal *n_pars) - { -- static cnt = 0; -+ static int cnt = 0; - static time_t t1 = 0; - time_t t2; - -@@ -3638,7 +3650,9 @@ int main(int argc, char *argv[]) +@@ -3703,7 +3715,9 @@ int main(int argc, char *argv[]) Boolean open_keypad_panel = FALSE; char ch; Window child; +#ifdef USE_XTEST int op, ev, err; +#endif argc1 = argc; argv1 = malloc(sizeof(char *) * (argc1 + 5)); -@@ -3841,14 +3855,14 @@ char *setlocale(int category, const char +@@ -3905,14 +3919,14 @@ char *setlocale(int category, const char if (locale == NULL) { return cur_locale; } else if (category == LC_ALL) { - strcpy(old_locale, cur_locale); + snprintf(cur_locale, sizeof(cur_locale), "%s", s); if (locale[0] == '\0') { s = getenv("LC_ALL"); if (s == NULL) s = "C"; /* LC_ALL not defined */ } else { s = locale; } - strncpy(cur_locale, s, sizeof(cur_locale) - 1); + snprintf(cur_locale, sizeof(cur_locale), "%s", s); return old_locale; } else { return cur_locale; Index: head/x11/xvkbd/files/patch-xvkbd.man =================================================================== --- head/x11/xvkbd/files/patch-xvkbd.man (revision 508476) +++ head/x11/xvkbd/files/patch-xvkbd.man (revision 508477) @@ -1,728 +1,749 @@ Description: Escape a lot of minus signs. Forwarded: no Author: Peter Pentchev Last-Update: 2015-05-07 ---- xvkbd.man.orig 2015-09-12 07:21:58 UTC +--- xvkbd.man.orig 2018-02-25 00:56:26 UTC +++ xvkbd.man @@ -29,7 +29,7 @@ which may make it easier to enter long w .PP \fIIMPORTANT NOTE:\fP When invoking \fIxvkbd\fP from display managers such as XDM, GDM, etc., -always use \fIxvkbd\fP with \fB-secure\fP option +always use \fIxvkbd\fP with \fB\-secure\fP option or you will have serious security risk. .SH "Environment" @@ -117,7 +117,7 @@ and you can enter the remaining characte by clicking one of the words in the list. .PP The dictionary (list of words) file is \fB/usr/share/dict/words\fP by default, -but it can be changed by \fB-dict\fP option or \fBxvkbd.dictFile\fP resouce, +but it can be changed by \fB\-dict\fP option or \fBxvkbd.dictFile\fP resouce, or on the Property panel. .SH " Main Menu" -@@ -242,17 +242,17 @@ You may want to set \fIJump Pointer?\fP +@@ -242,38 +242,38 @@ You may want to set \fIJump Pointer?\fP \fICompletion Dictionary\fP Set the filename to be used for word completion. This setting take precedence over the `\fBxvkbd.dictFile\fP' resource -and the \fB-dict\fP option. +and the \fB\-dict\fP option. .SH " Options" \fIxvkbd\fP accept following command line options, in addition to -general options such as `\fB-display\fP'. +general options such as `\fB\-display\fP'. .PP .TP 4 -.B "-version" +.B "\-version" Display version information and exit. .TP 4 -.B "-xsendevent" +.B "\-xsendevent" Make \fIxvkbd\fP to use \fIXSendEvent()\fP to simulate keyboard events, as it was in \fIxvkbd\fP version 1.0. \fIxvkbd\fP version 1.1 and later will try to use XTEST extension instead -@@ -263,14 +263,14 @@ If XTEST extension is not supported by t + in the default configuration. + Because it is not unusual applications to ignore keyboard events +-generated with \fB-xsendevent\fP, +-you shouldn't use \fB-xsendevent\fP option unless it is really required. ++generated with \fB\-xsendevent\fP, ++you shouldn't use \fB\-xsendevent\fP option unless it is really required. .sp 0.5 + If XTEST extension is not supported by the X server, + \fIxvkbd\fP will automatically switch to this mode. + .sp 0.5 Resource `\fBxvkbd.xtest: false\fP' has the same function. .TP 4 -.B "-no-sync" +.B "\-no\-sync" Normally, \fIxvkbd\fP attempts to synchronize with the destinating client step by step. This can cause problem when the client (or the X server) responded too slow. -In such situation, maybe this \fB-no-sync\fP can solve the problem. +In such situation, maybe this \fB\-no\-sync\fP can solve the problem. .sp 0.5 Resource `\fBxvkbd.noSync: true\fP' has the same function. .TP 4 -.B "-no-jump-pointer" +.B "\-no\-jump\-pointer" Make \fIxvkbd\fP not to jump the pointer when sending events. In the default, \fIxvkbd\fP will temporary jump the pointer to the focused window, if input focus is set explicitly via \fIFocus\fP button, -@@ -278,14 +278,14 @@ and XTEST extension is to be used to sim +@@ -281,14 +281,14 @@ and XTEST extension is to be used to sim .sp 0.5 Resource `\fBxvkbd.jumpPointer: false\fP' has the same function. .TP 4 -.B "-no-back-pointer" +.B "\-no\-back\-pointer" Make \fIxvkbd\fP not to jump the pointer back to the original position after events has been sent. Maybe this can be useful when using \fIxvkbd\fP to move the pointer position. .sp 0.5 Resource `\fBxvkbd.jumpPointerBack: false\fP' has the same function. .TP 4 -.B "-modal" +.B "\-modal" Make labels on keys in the \fIxvkbd\fP window to be set independently for each of four shift states, not shifted, \fIShift\fP, \fIAltGr\fP and \fIShift\fP-\fIAltGr\fP. -@@ -296,27 +296,27 @@ and resouce files in the distribution. +@@ -299,27 +299,27 @@ and resouce files in the distribution. .sp 0.5 Resource `\fBxvkbd.modalKeytop: true\fP' has the same function. .TP 4 -.B "-geometry "[\fIwidth\fPx\fIheight\fP][\fB+\fIxoff\fP+\fIyoff\fP] +.B "\-geometry "[\fIwidth\fPx\fIheight\fP][\fB+\fIxoff\fP+\fIyoff\fP] Set window geometry (size and position). .sp 0.5 -You can use form like \fB-geometry 400x130\fP to specify the window size, -\fB-geometry +100+100\fP to specify the window position from left/top edge of the screen, -and \fB-geometry 400x130+100+100\fP to specify both the size and the position. +You can use form like \fB\-geometry 400x130\fP to specify the window size, +\fB\-geometry +100+100\fP to specify the window position from left/top edge of the screen, +and \fB\-geometry 400x130+100+100\fP to specify both the size and the position. You can specify position from right/bottom edge of the screen -by using \fB-\fP instead of \fB+\fP, +by using \fB\-\fP instead of \fB+\fP, but please note that you must take account of size of the window border. -(If you specify `\fB-geometry -0-0\fP', -+(If you specify `\fB\-geometry \-0\-0\fP', ++(If you specify `\fB\-geometry -0-0\fP', the window will not fit in the screen.) .sp 0.5 This can be set by \fBxvkbd.windowGeometry\fP resource (note that it is not \fBxvkbd.geometry\fP), too. .TP 4 -.B "-no-resize" -+.B "\-no\-resize" - Disable resize of the \fIxvkbd\fP window. ++.B "\-no-resize" + Disable resize of the \fIxvkbd\fP window. .sp 0.5 Resource `\fBxvkbd.resizable: false\fP' has the same function. .TP 4 -.B "-no-repeat" -+.B "\-no\-repeat" ++.B "\-no-repeat" Do not auto-repeat even if key is depressed long time. .sp 0.5 If auto-repeat is enabled (this is the default), -@@ -328,31 +328,31 @@ and period of repeat can be set as +@@ -331,31 +331,31 @@ and period of repeat can be set as .sp 0.5 Resource `\fBxvkbd.autoRepeat: false\fP' has the same function. .TP 4 -.B "-no-functionkey" +.B "\-no\-functionkey" Do not display function keys. .sp 0.5 Resource `\fBxvkbd.functionkey: false\fP' has the same function. .TP 4 -.B "-no-keypad" +.B "\-no\-keypad" Do not display keypad. .sp 0.5 Resource `\fBxvkbd.keypad: false\fP' has the same function. .TP 4 -.B "-compact" +.B "\-compact" Do not display function keys nor keypad. .sp 0.5 Resource `\fBxvkbd.compact: true\fP' has the same function. .TP 4 -.B "-keypad" +.B "\-keypad" Display only keypad. This option will be ignored -if `\fB-no-keypad\fP' or `\fB-compact\fP' is specified. +if `\fB\-no\-keypad\fP' or `\fB\-compact\fP' is specified. .sp 0.5 Resource `\fBxvkbd.keypadOnly: true\fP' has the same function. .TP 4 -.BI "-text " string +.BI "\-text " string Send the string to the focused window -(see also `\fB-window\fP' option). +(see also `\fB\-window\fP' option). .sp 0.5 If this option is specified, \fIxvkbd\fP will not open its window -@@ -399,28 +399,28 @@ will simulate press and release of the k +@@ -402,28 +402,28 @@ will simulate press and release of the k .IP " - " 6 \fB\\m\fP\fIdigit\fP - simulate click of the specified mouse button .TP 4 -.BI "-file " filename +.BI "\-file " filename Send the contents of the specified file to the focused window -(see also `\fB-window\fP' option). -If ``\fB-\fP'' was specified as the \fIfilename\fP, +(see also `\fB\-window\fP' option). +If ``\fB\-\fP'' was specified as the \fIfilename\fP, string to be sent will be read from the standard input (stdin). .sp 0.5 If this option is specified, \fIxvkbd\fP will not open its window and terminate soon after sending the string. .TP 4 -.B "-utf16" -- When used with \fB-file\fP option, +-When used with \fB-file\fP option, +.B "\-utf16" -+ When used with \fB\-file\fP option, ++When used with \fB\-file\fP option, make \fIxvkbd\fP to accept UTF16 characters in the file. .TP 4 -.BI "-delay " value +.BI "\-delay " value Put \fIvalue\fP ms of delay for evey characters -when sending characters with \fB-text\fP or \fB-file\fP. +when sending characters with \fB\-text\fP or \fB\-file\fP. Maybe this is useful when problem arises when characters are entered too fast. .sp 0.5 Resource `\fBxvkbd.textDelay: \fP\fIvalue\fP' has the same function. .TP 4 -.BI "-window " window +.BI "\-window " window Specify the ID (hexadecimal value leaded with `\fB0x\fP', or decimal value), the name (instance name or class name) of the window, -@@ -438,10 +438,10 @@ or clear the input focus. +@@ -441,10 +441,10 @@ or clear the input focus. If there are two or more windows which have the name specified with this option, the window which was found first will be selected. .TP 4 -.BI "-widget " widget-name +.BI "\-widget " widget-name Specify the name of the widget to set the input focus. To use this feature, the client must support \fIEditres\fP protocol. -In general, this option will be used with `\fB-window\fP' option. +In general, this option will be used with `\fB\-window\fP' option. .sp 0.5 If you want to set input focus to the widget \fBfoo.bar.zot\fP, you can write \fBzot\fP, \fBbar.zot\fP or \fBfoo.bar.zot\fP -@@ -452,24 +452,24 @@ with a single widget of the client. +@@ -455,24 +455,24 @@ with a single widget of the client. For example, .sp .in +4 -\fBxvkbd -window xarchie -widget searchText -text "\\Ca\\Ckabc\\r\fP" +\fBxvkbd \-window xarchie \-widget searchText \-text "\\Ca\\Ckabc\\r\fP" .sp .in -4 will enter the string ``\fBabc\fP'' to the ``Search Term'' field of a \fBxarchie\fP window. .TP 4 -.BI "-remote-display " display +.BI "\-remote\-display " display Specify the display (in the meaning of the X Window System) to connect; see also \fIConnect to Remote Display...\fP. - .TP 4 + .TP 4 -.B "-true-keypad" -+.B "\-true\-keypad" ++.B "\-true-keypad" If this option is specified, \fIxvkbd\fP will attempt to use \fIkeysym\fPs such as \fIXK_KP_1\fP instead of \fIXK_1\fP. .sp 0.5 Resource `\fBxvkbd.keypadKeysym: true\fP' has the same function. .TP 4 -.BI "-dict " filename +.BI "\-dict " filename Specify the default dictionary (list of words) file to be used for word completion. The `\fICompletion Dictionary\fP' filename -@@ -479,7 +479,7 @@ Resource `\fBxvkbd.dictFile: \fP\fIfilen +@@ -482,7 +482,7 @@ Resource `\fBxvkbd.dictFile: \fP\fIfilen .sp 0.5 See also ``Making your own completion dictionary''. .TP 4 -.B "-minimizable" +.B "\-minimizable" Make \fIxvkbd\fP window can be minimized (iconified) even if no window manager is in use. When this feature is enabled, -@@ -488,7 +488,7 @@ and \fIxvkbd\fP window will be minimized +@@ -491,7 +491,7 @@ and \fIxvkbd\fP window will be minimized .sp 0.5 Resource `\fBxvkbd.minimizable: true\fP' has the same function. .TP 4 -.B "-secure" +.B "\-secure" Disable invocation of external commands, including user assigned command and the online manual reader. Connection to another displays would also be disabled. -@@ -496,25 +496,25 @@ This option may be useful when \fIxvkbd\ +@@ -499,25 +499,25 @@ This option may be useful when \fIxvkbd\ .sp 0.5 Resource `\fBxvkbd.secure: true\fP' has the same function. .TP 4 -.B "-nonexitable" +.B "\-nonexitable" Disable termination of the \fIxvkbd\fP program. This option may be useful when \fIxvkbd\fP is to be run automatically for systems with no keyboards and users should not terminate the \fIxvkbd\fP. .sp 0.5 Resource `\fBxvkbd.nonexitable: true\fP' has the same function. .TP 4 -.B "-xdm" -Same as \fB-secure -nonexitable\fP. +.B "\-xdm" +Same as \fB\-secure \-nonexitable\fP. When \fIxvkbd\fP is to be run for login screen, it would be suggested to use this option. .TP 4 -.BI "-modifiers " modifiers +.BI "\-modifiers " modifiers Normally, \fIxvkbd\fP will activate modifiers (control, shift, etc.) only while sending characters. If modifiers were specified with this option, the specified modifiers will be activated while corresponding key on the \fIxvkbd\fP window is in active. -For example, you can specify \fB-modifiers shift,control,meta,alt\fP +For example, you can specify \fB\-modifiers shift,control,meta,alt\fP to apply this for those four modifiers. Maybe this can be useful when attempting to decorate the mouse operations with the modifiers. -@@ -524,101 +524,101 @@ and which can prevent the correct operat +@@ -527,105 +527,105 @@ and which can prevent the correct operat .sp 0.5 Resource `\fBxvkbd.positiveModifiers: \fP\fImodifiers...\fP' has the same function. .TP 4 -.B "-debug" +.B "\-debug" Make \fIxvkbd\fP to output debug information. It also disables keyboard width adjustment, to help adjusting key size when making keyboard layout file. It also make \fIxvkbd\fP to accept signals SIGINT and SIGQUIT, which otherwise be ignored. .TP 4 -.B "-version" +.B "\-version" Output version information and exit. - .SH "Screen Shot" + .SH "Screenshot" .TP 4 Default (US) --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-normal.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-normal.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-normal.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-normal.gif .TP 4 Belgian --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-belgian.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-belgian.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-belgian.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-belgian.gif .TP 4 Danish --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-danish.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-danish.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-danish.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-danish.gif .TP 4 French --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-french.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-french.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-french.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-french.gif .sp 0.5 --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-french2.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-french2.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-french2.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-french2.gif .TP 4 German --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-german.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-german.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-german.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-german.gif .TP 4 Icelandic --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-icelandic.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-icelandic.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-icelandic.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-icelandic.gif .TP 4 Italian --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-italian.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-italian.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-italian.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-italian.gif .TP 4 Japanese (JIS-X-6002) --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-jisx6002.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-jisx6002.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-jisx6002.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-jisx6002.gif .TP 4 Japanese (JIS-X-6004) --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-jisx6004.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-jisx6004.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-jisx6004.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-jisx6004.gif .TP 4 Norwegian --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-norwegian.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-norwegian.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-norwegian.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-norwegian.gif .TP 4 Portuguese --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-portuguese.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-portuguese.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-portuguese.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-portuguese.gif .TP 4 Spanish --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-spanish.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-spanish.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-spanish.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-spanish.gif .TP 4 Swedish --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-swedish.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-swedish.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-swedish.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-swedish.gif .TP 4 Swiss/German --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-swissgerman.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-swissgerman.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-swissgerman.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-swissgerman.gif .TP 4 United Kingdom --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-uk.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-uk.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-uk.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-uk.gif .TP 4 Latin-1 --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-latin1.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-latin1.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-latin1.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-latin1.gif .TP 4 Small Keyboard (maybe suitable for PDAs) --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-small.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-small.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-small.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-small.gif .TP 4 Hebrew --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-hebrew.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-hebrew.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-hebrew.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-hebrew.gif .TP 4 Greek --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-greek.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-greek.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-greek.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-greek.gif .TP 4 Turkish --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-turkish.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-turkish.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-turkish.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-turkish.gif .TP 4 Slovene --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-slovene.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-slovene.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-slovene.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-slovene.gif .TP 4 Korean --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-korean.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-korean.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-korean.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-korean.gif .TP 4 Russian (Cyrillic) --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-russian.gif -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-russian.gif +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-russian.gif ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-russian.gif .SH "Download" .TP 4 \fILatest Official Release\fP --\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.7.tar.gz\fP -+\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.7.tar.gz\fP +-\fIhttp://t-sato.in.coocan.jp/xvkbd/xvkbd-3.9.tar.gz\fP ++\fIhttp://t-sato.in.coocan.jp/xvkbd/xvkbd\-3.9.tar.gz\fP .br - - source of version 3.7 (2015-09-12) + - source of version 3.9 (2018-02-25) .TP 4 previous release --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.6.tar.gz -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.6.tar.gz +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-3.8.tar.gz ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-3.8.tar.gz .br - - source of version 3.6 (2015-02-15) + - source of version 3.8 (2017-06-06) .sp 0.5 --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.5.tar.gz -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.5.tar.gz +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-3.7.tar.gz ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-3.7.tar.gz .br - - source of version 3.5 (2013-07-15) + - source of version 3.7 (2015-09-12) + .sp 0.5 +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-3.6.tar.gz ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-3.6.tar.gz + .br + - source of version 3.6 (2015-02-15) .PP -@@ -655,8 +655,8 @@ load them via \fIxrdb\fP(1), or +@@ -662,8 +662,8 @@ load them via \fIxrdb\fP(1), or .IP " o " 4 set the filename to the \fB$XENVIRONMENT\fP environment variable, or .IP " o " 4 -put them in application default directory as `\fBXVkbd-\fP\fIsuffix\fP' -and set resource ``\fBxvkbd.customization: -\fP\fIsuffix\fP'', or +put them in application default directory as `\fBXVkbd\-\fP\fIsuffix\fP' +and set resource ``\fBxvkbd.customization: \-\fP\fIsuffix\fP'', or .IP " o " 4 put them in application default directory as \fBXVkbd\fP. .PP -@@ -668,11 +668,11 @@ directories specified with \fB$XUSERFILE +@@ -675,11 +675,11 @@ directories specified with \fB$XUSERFILE system's application default directory specified with \fB$XFILESEACHPATH\fP environment variable, or else the directory specified when compiling the X -(e.g., \fB/usr/lib/X11/app-defaults\fP) +(e.g., \fB/usr/lib/X11/app\-defaults\fP) .PP When the application default file is to be stored in the system's application default directory, -the file must contain ``\fB#include "XVkbd-common"\fP'' +the file must contain ``\fB#include "XVkbd\-common"\fP'' near top of the file. .PP \fIxvkbd\fP is distributed with some application default files, -@@ -703,7 +703,7 @@ You may also want to set: +@@ -710,7 +710,7 @@ You may also want to set: to display only the labels for the current shift state, instead of trying to always display all of them in the small keytop. .PP -See also \fBXVkbd-small.ad\fP in the \fIxvkbd\fP distribution. +See also \fBXVkbd\-small.ad\fP in the \fIxvkbd\fP distribution. .SH " Removing Unwanted Keys" Keys on \fIxvkbd\fP window can be removed by setting their width to 1. -@@ -777,12 +777,12 @@ when \fBxvkbd.modalKeytop\fP resoruce is +@@ -784,12 +784,12 @@ when \fBxvkbd.modalKeytop\fP resoruce is In all of those resources, each keys are separated by spaces, and rows of keys are terminated with `\fB \\n\\\fP' (note that `\fB\\n\fP' must have space before it). -Please refer \fBXVkbd-german.ad\fP and \fBXVkbd-latin1.ad\fP +Please refer \fBXVkbd\-german.ad\fP and \fBXVkbd\-latin1.ad\fP in the \fIxvkbd\fP distribution for more about these resources. .PP -\fBXVkbd-german\fP and \fBXVkbd-latin1\fP will be installed +\fBXVkbd\-german\fP and \fBXVkbd\-latin1\fP will be installed in the system's application default directory, -and setting the resource ``\fBxvkbd.customization: -german\fP'' +and setting the resource ``\fBxvkbd.customization: \-german\fP'' will make \fIxvkbd\fP to use the German layout. For another method to activate those settings, please refer "How to Customize \fIxvkbd\fP" above. -@@ -844,7 +844,7 @@ You can use \fBxev\fP command to check w +@@ -851,7 +851,7 @@ You can use \fBxev\fP command to check w .IP " o " 4 If \fIAlt\fP or \fIMeta\fP is not defined as modifier, the key can't be used as modifier. -You can use `\fBxmodmap -pm\fP' to check how modifiers are defined. +You can use `\fBxmodmap \-pm\fP' to check how modifiers are defined. .IP " o " 4 \fINum Lock\fP (and maybe other modifiers) on the physical keyboard may not work correctly when \fIxvkbd\fP is in use. -@@ -855,10 +855,10 @@ FAQ - Possible Problems and Solutions - http://homepage3.nifty.com/tsato/xvkbd/faq.html +@@ -862,10 +862,10 @@ FAQ - Possible Problems and Solutions + http://t-sato.in.coocan.jp/xvkbd/faq.html .TP 4 Making your own completion dictionary --http://homepage3.nifty.com/tsato/xvkbd/make-dic.html -+http://homepage3.nifty.com/tsato/xvkbd/make\-dic.html +-http://t-sato.in.coocan.jp/xvkbd/make-dic.html ++http://t-sato.in.coocan.jp/xvkbd/make\-dic.html .TP 4 --Hints to use \fBxvkbd -text\fP --http://homepage3.nifty.com/tsato/xvkbd/xvkbd-text.html -+Hints to use \fBxvkbd \-text\fP -+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-text.html + Hints to use \fBxvkbd -text\fP +-http://t-sato.in.coocan.jp/xvkbd/xvkbd-text.html ++http://t-sato.in.coocan.jp/xvkbd/xvkbd\-text.html .TP 4 Note about how to send key events - http://homepage3.nifty.com/tsato/xvkbd/events.html -@@ -879,26 +879,26 @@ which can't be entered directly from key + http://t-sato.in.coocan.jp/xvkbd/events.html +@@ -886,26 +886,26 @@ which can't be entered directly from key can be entered using dedicated key combinations. .IP " - " 6 Make keyboard layout not to be disturbed when -window size if specified with \fB-geometry\fP option. +window size if specified with \fB\-geometry\fP option. .IP " - " 6 Sample app-defaults file is added. .TP 4 Version 0.3 (2000-10-05) .IP " - " 6 -\fB-text\fP option can now accept some modifiers +\fB\-text\fP option can now accept some modifiers (\fB\\S\fP, \fB\\C\fP, etc.) and any keysyms (\fB\\[\fP\fIkeysym\fP\fB]\fP). .IP " - " 6 In addition to the window ID, -\fB-window\fP option can now accept window name. +\fB\-window\fP option can now accept window name. .IP " - " 6 -New \fB-widget\fP option to specify the widget to set the input focus. +New \fB\-widget\fP option to specify the widget to set the input focus. .TP 4 Version 1.0 (2000-11-03) .IP " - " 6 Keyboard layout can be now configured with resources. See "Customizing Keyboard Layout" above, -and \fBXVkbd-german.ad\fP in the distribution. +and \fBXVkbd\-german.ad\fP in the distribution. .IP " - " 6 \fIxvkbd\fP can now send keys with \fIMode_switch\fP (\fIAltGr\fP) modifier, -@@ -906,9 +906,9 @@ which enables those characters in the po +@@ -913,9 +913,9 @@ which enables those characters in the po .IP " - " 6 \fIxvkbd\fP now support \fIAltGr\fP key so that German (and some other) keyboard layout can be used. -See \fBXVkbd-german.ad\fP in the distribution. +See \fBXVkbd\-german.ad\fP in the distribution. .IP " - " 6 -\fBXVkbd-german\fP and \fBXVkbd-latin1\fP are included +\fBXVkbd\-german\fP and \fBXVkbd\-latin1\fP are included in the distribution, which modifies keyboard layout and put some non-ASCII keys on the \fIxvkbd\fP window. .IP " - " 6 -@@ -924,7 +924,7 @@ Labels on keys can now be set independen +@@ -931,7 +931,7 @@ Labels on keys can now be set independen not shifted, \fIShift\fP, \fIAltGr\fP and \fIShift\fP-\fIAltGr\fP. (thanks, Jim) .IP " - " 6 -\fB-kterm\fP option and \fBxvkbd.kterm\fP resource are removed. +\fB\-kterm\fP option and \fBxvkbd.kterm\fP resource are removed. .TP 4 Version 1.2 (2001-02-18) .IP " - " 6 -@@ -952,7 +952,7 @@ so that it will not terminated accidentl +@@ -959,7 +959,7 @@ so that it will not terminated accidentl .TP 4 Version 1.3 (2001-03-19) .IP " - " 6 -New app-defaults file for Swiss-German layout, \fBXVkbd-swissgerman.ad\fP. +New app-defaults file for Swiss-German layout, \fBXVkbd\-swissgerman.ad\fP. (contributed from Marcel Portner) .IP " - " 6 \fIxvkbd\fP now catches MappingNotify event and reload the new mapping. -@@ -1002,7 +1002,7 @@ and older \fIxvkbd\fP may not work corre +@@ -1009,7 +1009,7 @@ and older \fIxvkbd\fP may not work corre .TP 4 Version 1.6 (2001-11-10) .IP " - " 6 -New `\fB-file\fP' option to send characters in the specified file. +New `\fB\-file\fP' option to send characters in the specified file. (thanks, Gregory) .IP " - " 6 New entry `\fIUse XTEST Extension?\fP' is added -@@ -1021,7 +1021,7 @@ after \fIxvkbd\fP is invoked. +@@ -1028,7 +1028,7 @@ after \fIxvkbd\fP is invoked. Show/hide of the keypad and funcion keys on the main window can now be toggled from the main menu. .IP " - " 6 -New app-defaults file for French layout, \fBXVkbd-french.ad\fP. +New app-defaults file for French layout, \fBXVkbd\-french.ad\fP. (contributed from Jean-Pierre Demailly) .TP 4 Version 2.1 (2002-01-27) -@@ -1029,9 +1029,9 @@ Version 2.1 (2002-01-27) +@@ -1036,9 +1036,9 @@ Version 2.1 (2002-01-27) When height of the \fIxvkbd\fP window is smaller than \fBXVkbd.modalThreshold\fP, \fIxvkbd\fP will now automatically switch the keytop -as if \fB-modal\fP option was specified. +as if \fB\-modal\fP option was specified. .IP " - " 6 -\fB\\[\fP\fIkeysym\fP\fB]\fP in \fB-text\fP option +\fB\\[\fP\fIkeysym\fP\fB]\fP in \fB\-text\fP option would send wrong keys - this problem is now fixed. .IP " - " 6 Target \fBdistclean\fP in the \fBImakefile\fP is renamed -@@ -1044,8 +1044,8 @@ Version 2.2 (2002-03-17) +@@ -1051,8 +1051,8 @@ Version 2.2 (2002-03-17) String assigned to function keys can now be edited on a panel popped up via "\fIEdit Function Keys...\fP" in the main menu. .IP " - " 6 -When ``\fB-\fP'' was specified as the filename parameter -for \fB-file\fP option, \fIxvkbd\fP will now read +When ``\fB\-\fP'' was specified as the filename parameter +for \fB\-file\fP option, \fIxvkbd\fP will now read its standard input (stdin) to get the string to be sent. .IP " - " 6 In the previous release, -@@ -1074,7 +1074,7 @@ Swiss/German, +@@ -1081,7 +1081,7 @@ Swiss/German, United Kingdom and Latin-1. .IP " - " 6 -\fB-keypad\fP option would crash previous version of \fIxvkbd\fP +\fB\-keypad\fP option would crash previous version of \fIxvkbd\fP - this problem is now fixed. .TP 4 Version 2.4 (2002-10-02) -@@ -1135,24 +1135,24 @@ Yet another Japanese keyboard layout, JI +@@ -1142,24 +1142,24 @@ Yet another Japanese keyboard layout, JI .IP " - " 6 It is now possible to minimize (iconify) the main window even if no window manager is in use. -This feature can be activated by \fB-minimizable\fP option +This feature can be activated by \fB\-minimizable\fP option or \fBxvkbd.minimizable\fP resource. .IP " - " 6 Experimental code to keep the \fIxvkbd\fP window always on the top of the display. -This feature can be activated by \fB-always-on-top\fP option, +This feature can be activated by \fB\-always\-on\-top\fP option, \fBxvkbd.alwaysOnTop\fP resource or the "Always on Top?" entry in the main menu. Care should be taken as this feature can cause problem in some situations. .IP " - " 6 -\fB-text\fP option now support combinations of modifiers and a special key. -For example, \fB-text '\\C\\A\\d'\fP can be used for Control-Alt-Delete key combination. +\fB\-text\fP option now support combinations of modifiers and a special key. +For example, \fB\-text '\\C\\A\\d'\fP can be used for Control-Alt-Delete key combination. .IP " - " 6 New options: -\fB-secure\fP option (\fBxvkbd.secure\fP resource) +\fB\-secure\fP option (\fBxvkbd.secure\fP resource) which disables invocation of external commands, -\fB-nonexitable\fP option (\fBxvkbd.nonexitable\fP resource) +\fB\-nonexitable\fP option (\fBxvkbd.nonexitable\fP resource) which inhibits termination of the program, -and \fB-xdm\fP option which is equivalent to \fB-secure -nonexitable\fP +and \fB\-xdm\fP option which is equivalent to \fB\-secure \-nonexitable\fP and maybe useful when run \fIxvkbd\fP from a display manager. .TP 4 Version 2.7a (2005-05-07) -@@ -1168,17 +1168,17 @@ where we must use \fIISO_Level3_Shift\fP +@@ -1175,17 +1175,17 @@ where we must use \fIISO_Level3_Shift\fP Reference to the target bitmap is changed from \fB/usr/X11R6/include/X11/bitmaps/target\fP to \fB/usr/include/X11/bitmaps/target\fP. .IP " - " 6 -New options: \fB-no-back-pointer\fP, \fB-no-sync\fP, \fB-modifiers\fP. +New options: \fB\-no\-back\-pointer\fP, \fB\-no\-sync\fP, \fB\-modifiers\fP. .TP 4 Version 2.9 (2008-03-30) .IP " - " 6 Russian (Cyrillic) keyboard layout supported. (thanks, Victor) .IP " - " 6 -New \fB-delay\fP option. +New \fB\-delay\fP option. .IP " - " 6 -\fB\\D\fP special sequence in \fB-text\fP can be used to put a delay in specific position. +\fB\\D\fP special sequence in \fB\-text\fP can be used to put a delay in specific position. .IP " - " 6 -\fB-text\fP can now simulate mouse operation +\fB\-text\fP can now simulate mouse operation via \fB\\x\fP, \fB\\y\fP and \fB\\m\fP special sequences. .TP 4 Version 3.0 (2008-05-05) -@@ -1193,7 +1193,7 @@ Version 3.1 (2010-01-17) +@@ -1200,7 +1200,7 @@ Version 3.1 (2010-01-17) .IP " - " 6 Changed the default setting for automatic click to OFF, which was set ON in the previous release in error and caused confusion. .IP " - " 6 -The keypad is now customizable, too (see XVkbd-strip.ad for the example). +The keypad is now customizable, too (see XVkbd\-strip.ad for the example). .IP " - " 6 Up to 25x25 keys can now be supported both for the main keyboard and the keypad. .IP " - " 6 -@@ -1201,7 +1201,7 @@ Able to open the keypad panel when start +@@ -1208,7 +1208,7 @@ Able to open the keypad panel when start .IP " - " 6 Fixed errors in some keyboard layout files (Korean, Slovene, UK). .IP " - " 6 -A new sample layout file XVkbd-strip.ad. +A new sample layout file XVkbd\-strip.ad. .TP 4 Version 3.2 (2010-03-14) .IP " - " 6 -@@ -1212,10 +1212,10 @@ New option `\fIBehave as Toolbar Window? +@@ -1219,10 +1219,10 @@ such as Matchbox window manager. (Thanks `\fIAlways on Top\fP' will work rather better with window managers - which support extended window manager hint \fB_NET_WM_STATE_ABOVE\fP. + which support extended window manager hint \fB_NET_WM_STATE_ABOVE\fP. .IP " - " 6 -\fB-window\fP option can now find window which have title match with +\fB\-window\fP option can now find window which have title match with - the specified string. + the specified string. .IP " - " 6 -\fB-window\fP option now accept wildcard characters +\fB\-window\fP option now accept wildcard characters - `\fB*\fP' and `\fB?\fP'. + `\fB*\fP' and `\fB?\fP'. .IP " - " 6 Word completion dictionary file to be used with `\fIWord Completion...\fP' -@@ -1224,18 +1224,18 @@ Word completion dictionary file to be us +@@ -1231,18 +1231,18 @@ can now be specified on the Property pan Only the words which have two or more characters will be appeared - in the word completion list. + in the word completion list. .IP " - " 6 -New \fB-version\fP option to display version information. +New \fB\-version\fP option to display version information. .TP 4 Version 3.3 (2012-03-03) .IP " - " 6 -\fB-text\fP can now accept \fB\\{\fP\fIkeysym\fP\fB}\fP +\fB\-text\fP can now accept \fB\\{\fP\fIkeysym\fP\fB}\fP - so that the specified key can be processed in more primitive manner, - and so that modofier keys such as \fIControl_L\fP, \fIMeta_L\fP, etc. - can also be simulated. - Also, \fB\\{+\fP\fIkeysym\fP\fB}\fP and \fB\\{-\fP\fIkeysym\fP\fB}\fP - will now simulate press and release of the key, respectively. + so that the specified key can be processed in more primitive manner, + and so that modofier keys such as \fIControl_L\fP, \fIMeta_L\fP, etc. + can also be simulated. + Also, \fB\\{+\fP\fIkeysym\fP\fB}\fP and \fB\\{-\fP\fIkeysym\fP\fB}\fP + will now simulate press and release of the key, respectively. .IP " - " 6 -New option \fB-remote-display\fP to make \fIxvkbd\fP connect to +New option \fB\-remote\-display\fP to make \fIxvkbd\fP connect to - the specified display when startup. + the specified display when startup. .IP " - " 6 Bug fixed: \fBKP_0\fP now works. -@@ -1251,7 +1251,7 @@ as it seems delay of 0 caused problems i +@@ -1258,7 +1258,7 @@ as it seems delay of 0 caused problems i ISO_Left_Tab is assigned to the shifted position of the Tab key on the \fIxvkbd\fP window, so that Shift-Tab can be simulated. .IP " - " 6 -New option \fB-no-resize\fP to disable resize of \fIxvkbd\fP window. +New option \fB\-no\-resize\fP to disable resize of \fIxvkbd\fP window. .TP 4 Version 3.5 (2013-07-15) .IP " - " 6 -@@ -1262,8 +1262,8 @@ Fixed a problem that "Always on Top" not +@@ -1269,8 +1269,8 @@ Fixed a problem that "Always on Top" not .TP 4 Version 3.6 (2015-02-15) .IP " - " 6 -New \fB-utf16\fP option - -when used with \fB-file\fP option, +New \fB\-utf16\fP option - +when used with \fB\-file\fP option, make \fIxvkbd\fP to accept UTF16 characters in the file. .IP " - " 6 Keyboard layout selected with "Change Keyboard Layout..." will be kept +@@ -1306,7 +1306,7 @@ A workaround for this problem is now imp + .TP 4 + Version 3.9 (2018-02-25) + .IP " - " 6 +-Modifiers (Alt, etc.) not working with \fB-text\fP option in the recent releases (Debian Bug#891082). This bug is now fixed. ++Modifiers (Alt, etc.) not working with \fB\-text\fP option in the recent releases (Debian Bug#891082). This bug is now fixed. + + + .SH "Author" Index: head/x11/xvkbd/pkg-descr =================================================================== --- head/x11/xvkbd/pkg-descr (revision 508476) +++ head/x11/xvkbd/pkg-descr (revision 508477) @@ -1,8 +1,8 @@ xvkbd is a virtual (graphical) keyboard program for X Window System which provides facility to enter characters onto other clients (softwares) by clicking on a keyboard displayed on the screen. This may be used for systems without a hardware keyboard such as kiosk terminals or handheld devices. This program also has facility to send characters specified as the command line option to another client. -WWW: http://homepage3.nifty.com/tsato/xvkbd/ +WWW: http://t-sato.in.coocan.jp/xvkbd/ Index: head/x11/xvkbd/pkg-plist =================================================================== --- head/x11/xvkbd/pkg-plist (revision 508476) +++ head/x11/xvkbd/pkg-plist (revision 508477) @@ -1,30 +1,31 @@ bin/xvkbd lib/X11/app-defaults/XVkbd lib/X11/app-defaults/XVkbd-belgian lib/X11/app-defaults/XVkbd-common lib/X11/app-defaults/XVkbd-danish lib/X11/app-defaults/XVkbd-fitaly lib/X11/app-defaults/XVkbd-french lib/X11/app-defaults/XVkbd-french2 lib/X11/app-defaults/XVkbd-german lib/X11/app-defaults/XVkbd-greek lib/X11/app-defaults/XVkbd-hebrew lib/X11/app-defaults/XVkbd-icelandic lib/X11/app-defaults/XVkbd-italian lib/X11/app-defaults/XVkbd-jisx6002 lib/X11/app-defaults/XVkbd-jisx6004 lib/X11/app-defaults/XVkbd-korean lib/X11/app-defaults/XVkbd-latin1 lib/X11/app-defaults/XVkbd-norwegian lib/X11/app-defaults/XVkbd-portuguese lib/X11/app-defaults/XVkbd-russian lib/X11/app-defaults/XVkbd-slovene lib/X11/app-defaults/XVkbd-small -lib/X11/app-defaults/XVkbd-strip lib/X11/app-defaults/XVkbd-spanish +lib/X11/app-defaults/XVkbd-strip lib/X11/app-defaults/XVkbd-swedish lib/X11/app-defaults/XVkbd-swissgerman lib/X11/app-defaults/XVkbd-turkish +lib/X11/app-defaults/XVkbd-turkishF lib/X11/app-defaults/XVkbd-uk man/man1/xvkbd.1.gz %%PORTDOCS%%%%DOCSDIR%%/README