x11/xvkbd: Update to 4.1

Update x11/xvkbd to 4.1
Switch to autotools instead of imake
This fixes the build with -fno-common, which is the default with llvm 11.

MFH:		2020Q3
This commit is contained in:
Niclas Zeising 2020-08-29 13:02:59 +00:00
parent e7e0282ac0
commit e91eeda76f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=546909
7 changed files with 131 additions and 562 deletions

View File

@ -2,7 +2,7 @@
# $FreeBSD$
PORTNAME= xvkbd
PORTVERSION= 3.9
PORTVERSION= 4.1
CATEGORIES= x11
MASTER_SITES= http://t-sato.in.coocan.jp/xvkbd/
@ -11,14 +11,14 @@ COMMENT= Virtual keyboard for X applications
LICENSE= GPLv2+
USES= imake xorg
USE_XORG= ice sm x11 xaw xext xmu xpm xt
USES= gmake pkgconfig xorg
USE_XORG= x11 xaw xmu xt xtst
DESKTOP_ENTRIES="Xvkbd" "" "" "xvkbd" "Utility;" false
OPTIONS_DEFINE= DOCS NLS XAW3D XTEST
OPTIONS_DEFAULT= XTEST
OPTIONS_DEFINE= DOCS
GNU_CONFIGURE= yes
XAW3D_DESC= Xaw3d widget library support
XAW3D_LIB_DEPENDS= libXaw3d.so:x11-toolkits/Xaw3d
XTEST_DESC= XTEST extensions support
@ -29,18 +29,6 @@ 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}

View File

@ -1,3 +1,3 @@
TIMESTAMP = 1565025196
SHA256 (xvkbd-3.9.tar.gz) = b81c37ddfb7b78993dad15d304f8fd78e540d57c0a72f7e3316fd45fba919a9d
SIZE (xvkbd-3.9.tar.gz) = 88440
TIMESTAMP = 1598703337
SHA256 (xvkbd-4.1.tar.gz) = 952d07df0fe1e45286520b7c98b4fd00fd60dbf3e3e8ff61e12c259f76a3bef4
SIZE (xvkbd-4.1.tar.gz) = 408704

View File

@ -1,24 +0,0 @@
Description: Disable all optional features, reenabled in the port's Makefile.
Forwarded: not-needed
Author: Peter Pentchev <roam@FreeBSD.org>
Last-Update: 2002-02-22
--- Imakefile.orig 2014-11-11 13:01:21 UTC
+++ Imakefile
@@ -4,13 +4,13 @@
XCOMM Remove the next line if you want genuine Xaw instead of Xaw3d
-#define XAW3D
+XCOMM define XAW3D
XCOMM Remove the next line if you don't want to enable XTEST support
-#define XTEST
+XCOMM define XTEST
XCOMM Remove the next line if you want to disable internationalization
-#define I18N
+XCOMM define I18N
SRCS = xvkbd.c findwidget.c

View File

@ -0,0 +1,11 @@
--- Makefile.in.orig 2020-08-29 12:53:21 UTC
+++ Makefile.in
@@ -988,7 +988,7 @@ XVkbd-common.h: XVkbd-common.ad
[ which ad2c > /dev/null ] || ad2c XVkbd-common.ad > XVkbd-common.h
install-data-hook:
- [ -d $(DESTDIR)$(appdefaultdir) ] || mkdir $(DESTDIR)$(appdefaultdir)
+ [ -d $(DESTDIR)$(appdefaultdir) ] || mkdir -p $(DESTDIR)$(appdefaultdir)
for file in *.ad; do \
$(INSTALL_DATA) $$file $(DESTDIR)$(appdefaultdir)/$${file%.ad}; \
done

View File

@ -7,9 +7,9 @@ Forwarded: no
Author: Peter Pentchev <roam@FreeBSD.org>
Last-Update: 2015-05-07
--- xvkbd.c.orig 2018-02-25 00:55:33 UTC
--- xvkbd.c.orig 2020-05-04 04:34:19 UTC
+++ xvkbd.c
@@ -470,8 +470,8 @@ static int altgr_mask = 0;
@@ -492,8 +492,8 @@ static int altgr_mask = 0;
static int level3_shift_mask = 0;
static KeySym altgr_keysym = NoSymbol;
@ -20,16 +20,7 @@ Last-Update: 2015-05-07
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)
@@ -513,6 +513,8 @@ static void PopupFunctionKeyEditor(void);
static void DeleteWindowProc(Widget w, XEvent *event, String *pars, Cardinal *n_pars);
static void SaveProperty(void);
@ -38,7 +29,7 @@ Last-Update: 2015-05-07
/*
* 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
@@ -521,8 +523,7 @@ static Window FindWindow(Window top, char *name)
{
Window w;
Window *children, dummy;
@ -48,7 +39,7 @@ Last-Update: 2015-05-07
XClassHint hint;
char *win_name;
@@ -824,7 +825,9 @@ static int MyErrorHandler(Display *my_dp
@@ -846,7 +847,9 @@ static int MyErrorHandler(Display *my_dpy, XErrorEvent
*/
static void SendEvent(XKeyEvent *event)
{
@ -58,7 +49,7 @@ Last-Update: 2015-05-07
if (!appres.no_sync) {
XSync(event->display, FALSE);
@@ -1136,11 +1139,11 @@ static void SendKeyPressedEvent(KeySym k
@@ -1157,11 +1160,11 @@ static void SendKeyPressedEvent(KeySym keysym, unsigne
#ifdef USE_XTEST
if (appres.xtest && press_release == 0) {
@ -72,16 +63,16 @@ Last-Update: 2015-05-07
event.type = KeyRelease;
event.state = 0;
@@ -1332,7 +1335,7 @@ static int n_word_list = 0;
@@ -1377,7 +1380,7 @@ static XtIntervalId save_private_dict_timer_id = (XtIn
static void SetDefaultDictionary(void)
{
- strncpy(dict_filename, appres.dict_file, sizeof(dict_filename));
- strncpy(dict_filename, appres.dict_file, sizeof(dict_filename) - 1);
+ snprintf(dict_filename, sizeof(dict_filename), "%s", appres.dict_file);
XtVaSetValues(props_dict_entry, XtNstring, dict_filename, NULL);
}
@@ -1347,7 +1350,7 @@ static void ReadCompletionDictionary(voi
@@ -1394,7 +1397,7 @@ static void ReadCompletionDictionary(void)
struct WORDLIST *p;
if (strcmp(cur_dict_filename, dict_filename) == 0) return;
@ -90,40 +81,25 @@ Last-Update: 2015-05-07
if (!first) {
int cnt = 0;
@@ -1397,7 +1400,7 @@ static void ReadCompletionDictionary(voi
@@ -1522,7 +1525,7 @@ static void SavePrivateDictionary(void)
static void AddToCompletionText(KeySym keysym)
{
- int len;
+ size_t len;
struct WORDLIST *node_ptr;
char ch;
if (completion_entry != None) {
@@ -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';
@@ -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)
@@ -1729,7 +1732,7 @@ static void SendString(const char *str)
{
- const unsigned char *cp, *cp2; /* I remember "unsigned" might be required for some systems */
+ const char *cp, *cp2;
const char *cp, *cp2;
char key[50];
- int len;
+ size_t len;
int val;
Window target_root, child, junk_w;
int junk_i;
@@ -1536,8 +1539,7 @@ static void SendString(const unsigned ch
@@ -1761,8 +1764,7 @@ static void SendString(const char *str)
} else {
len = cp2 - cp - 1;
if (sizeof(key) <= len) len = sizeof(key) - 1;
@ -133,7 +109,7 @@ Last-Update: 2015-05-07
KeyPressed(None, key, NULL);
cp = cp2;
}
@@ -1584,11 +1586,12 @@ static void SendString(const unsigned ch
@@ -1810,11 +1812,12 @@ static void SendString(const char *str)
if ('1' <= *cp && *cp <= '9') {
usleep((*cp - '0') * 100000);
} else {
@ -146,8 +122,8 @@ Last-Update: 2015-05-07
+#ifdef USE_XTEST
cp++;
if ('1' <= *cp && *cp <= '9') {
if (appres.debug) fprintf(stderr, "XTestFakeButtonEvent(%d)\n", *cp - '0');
@@ -1599,10 +1602,18 @@ static void SendString(const unsigned ch
if (appres.debug) fprintf(stderr, "xvkbd: XTestFakeButtonEvent(%d)\n", *cp - '0');
@@ -1825,10 +1828,18 @@ static void SendString(const char *str)
fprintf(stderr, "%s: no digit after \"\\m\"\n",
PROGRAM_NAME);
}
@ -167,16 +143,7 @@ Last-Update: 2015-05-07
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);
@@ -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) {
@@ -1730,13 +1741,13 @@ static Boolean CheckShiftState(int row,
@@ -1956,13 +1967,13 @@ static Boolean CheckShiftState(int row, int col, int s
static void RefreshShiftState(Boolean force)
{
static Boolean first = TRUE;
@ -195,7 +162,7 @@ Last-Update: 2015-05-07
int first_row, row, col;
Boolean shifted;
char *label;
@@ -1824,7 +1835,7 @@ static void RefreshShiftState(Boolean fo
@@ -2054,7 +2065,7 @@ static void RefreshShiftState(Boolean force)
Window root, child;
int root_x, root_y, x, y;
@ -204,7 +171,7 @@ Last-Update: 2015-05-07
XKeyEvent event;
@@ -1840,28 +1851,28 @@ static void RefreshShiftState(Boolean fo
@@ -2070,28 +2081,28 @@ static void RefreshShiftState(Boolean force)
event.same_screen = TRUE;
event.state = 0;
@ -238,57 +205,15 @@ Last-Update: 2015-05-07
event.keycode = XKeysymToKeycode(target_dpy, XK_Meta_L);
event.type = (shift_state & meta_mask) ? KeyPress : KeyRelease;
SendEvent(&event);
@@ -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;
}
@@ -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]);
}
}
@@ -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",
@@ -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);
@@ -2119,6 +2128,7 @@ static void PropsItemToggled(Widget w, c
XtVaGetValues(XtNameToWidget(props_panel, "*jump_pointer"),
XtNstate, &appres.jump_pointer, NULL);
@@ -2354,6 +2365,7 @@ static void PropsItemToggled(Widget w, char *key, char
XtVaGetValues(XtNameToWidget(props_panel, "*integrate_completion_panel"),
XtNstate, &appres.integrate_completion_panel, 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);
@@ -2185,7 +2195,7 @@ static void PopupPropsPanel(void)
@@ -2426,7 +2438,7 @@ static void PopupPropsPanel(void)
if (props_panel == None) {
Widget label, button;
Widget form, w;
@ -297,34 +222,16 @@ Last-Update: 2015-05-07
int val;
props_panel = XtVaCreatePopupShell("props_panel", transientShellWidgetClass,
@@ -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,
@@ -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,
@@ -2295,7 +2305,7 @@ static void OpenRemoteDisplay(Widget w,
@@ -2560,7 +2572,7 @@ static void OpenRemoteDisplay(Widget w, char *display_
focused_subwindow = None;
if (target_dpy != NULL && target_dpy != dpy) XCloseDisplay(target_dpy);
- strncpy(name, (display_name == NULL) ? "" : display_name, sizeof(name));
- strncpy(name, (display_name == NULL) ? "" : display_name, sizeof(name) - 1);
+ snprintf(name, sizeof(name), "%s", (display_name == NULL) ? "" : display_name);
for (cp = name; isascii(*cp) && isprint(*cp); cp++) ;
*cp = '\0';
@@ -2806,7 +2816,7 @@ static Widget MakeKey(Widget parent, con
@@ -3087,7 +3099,7 @@ static Widget MakeKey(Widget parent, const char *name,
XtAddCallback(w, XtNcallback, (XtCallbackProc)KeyPressed, (XtPointer)name);
if (label != NULL) {
@ -333,19 +240,16 @@ Last-Update: 2015-05-07
if (strcmp(str, "space") == 0) strcpy(str, "");
len = strlen(str);
if (3 <= len) {
@@ -2878,9 +2888,9 @@ static void MakeKeypad(Widget form, Widg
@@ -3158,7 +3170,7 @@ static void MakeKeypad(Widget form, Widget from_vert,
|| (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);
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);
@@ -2982,12 +2992,12 @@ static void MakeKeyboard(Boolean remake)
@@ -3261,12 +3273,12 @@ static void MakeKeyboard(Boolean remake)
Widget form, key, left;
Pixel color;
XFontStruct *font;
@ -360,16 +264,7 @@ Last-Update: 2015-05-07
#include "xvkbd.xbm"
#include "iconify.xbm"
@@ -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)
@@ -3017,7 +3027,7 @@ static void MakeKeyboard(Boolean remake)
@@ -3300,7 +3312,7 @@ static void MakeKeyboard(Boolean remake)
left = None;
for (col = 0; keys_normal[row][col] != NULL; col++) {
@ -378,12 +273,8 @@ Last-Update: 2015-05-07
if (strcmp(name, "MainMenu") == 0) {
Widget iconify_button = None;
@@ -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);
@@ -3345,8 +3357,8 @@ static void MakeKeyboard(Boolean remake)
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);
@ -393,7 +284,7 @@ Last-Update: 2015-05-07
/* keys can be removed by setting its width to 1 */
XtDestroyWidget(key);
key = None;
@@ -3099,7 +3109,7 @@ static void MakeKeyboard(Boolean remake)
@@ -3382,7 +3394,7 @@ static void MakeKeyboard(Boolean remake)
Window root;
int x1, y1;
unsigned int wd, ht, bd, dp;
@ -402,7 +293,7 @@ Last-Update: 2015-05-07
XGetGeometry(dpy, XtWindow(toplevel), &root, &x1, &y1, &wd, &ht, &bd, &dp);
max_wd = XtScreen(toplevel)->width * appres.max_width_ratio;
@@ -3118,16 +3128,16 @@ static void MakeKeyboard(Boolean remake)
@@ -3401,16 +3413,16 @@ static void MakeKeyboard(Boolean remake)
if (!appres.debug && key_box[first_row] != None) {
if (appres.keypad) {
@ -423,44 +314,38 @@ Last-Update: 2015-05-07
+ XtVaSetValues(key_box[row], XtNwidth, max_dwd, NULL);
}
}
if (0 < strlen(appres.geometry)) {
@@ -3236,11 +3246,11 @@ static void ReadProperty(void)
home = getenv("HOME");
if (appres.key_file[0] != '/' && home != NULL
@@ -3523,9 +3535,9 @@ static void ReadProperty(void)
&& 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);
snprintf(fkey_filename, sizeof(fkey_filename), "%s/%s", home, appres.key_file);
else
- strncpy(fkey_filename, appres.key_file, sizeof(fkey_filename));
- strncpy(fkey_filename, appres.key_file, sizeof(fkey_filename) - 1);
+ snprintf(fkey_filename, sizeof(fkey_filename), "%s", appres.key_file);
- strncpy(dict_filename, appres.dict_file, sizeof(dict_filename));
- strncpy(dict_filename, appres.dict_file, sizeof(dict_filename) - 1);
+ snprintf(dict_filename, sizeof(dict_filename), "%s", appres.dict_file);
fp = fopen(fkey_filename, "r");
if (fp == NULL) return;
@@ -3253,7 +3263,7 @@ static void ReadProperty(void)
@@ -3538,7 +3550,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));
- strncpy(dict_filename, key, sizeof(dict_filename) - 1);
+ snprintf(dict_filename, sizeof(dict_filename), "%s", key);
} else if (sscanf(&str[1], "private_dict_weight %s", key) == 1) {
strncpy(private_dict_weight_value, key, sizeof(private_dict_weight_value) - 1);
} else if (sscanf(&str[1], "%s %d", key, &val) == 2) {
if (strcmp(key, "quick_modifiers") == 0)
appres.quick_modifiers = val;
@@ -3329,9 +3339,9 @@ static void FKeyMenuSelected(Widget w, c
if (key == NULL)
strcpy(key2, "");
@@ -3624,7 +3636,7 @@ static void FKeyMenuSelected(Widget w, char *key)
else if (strncmp(key, "Shift-", strlen("Shift-")) == 0)
- sprintf(key2, "s:%s", &key[strlen("Shift-")]);
+ snprintf(key2, sizeof(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) {
@@ -3354,7 +3364,7 @@ static void FKeyMenuSelected(Widget w, c
@@ -3647,7 +3659,7 @@ static void FKeyMenuSelected(Widget w, char *key)
prefix = "";
if (cur_fkey_value_mode[0] == 'c') prefix = "!";
else if (fkey_value[0] == '!' || fkey_value[0] == '\\') prefix = "\\";
@ -469,7 +354,7 @@ Last-Update: 2015-05-07
} else { /* empty string - remove the entry for the function key */
if (sp != NULL) {
if (sp2 != NULL) sp2->next = sp->next;
@@ -3374,10 +3384,10 @@ static void FKeyMenuSelected(Widget w, c
@@ -3667,10 +3679,10 @@ static void FKeyMenuSelected(Widget w, char *key)
FKeyValueMenuSelected(None, (value[0] == '!') ? "command" : "string");
if (value[0] == '!' || value[0] == '\\') value = value + 1;
@ -482,30 +367,7 @@ Last-Update: 2015-05-07
}
}
}
@@ -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,
@@ -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) {
@@ -3573,8 +3583,10 @@ static void Autoclick(void)
@@ -3870,8 +3882,10 @@ static void Autoclick(void)
{
StopAutoclick();
@ -516,7 +378,7 @@ Last-Update: 2015-05-07
}
static void ShowBalloon(Widget w, XEvent *event, String *pars, Cardinal *n_pars)
@@ -3703,7 +3715,9 @@ int main(int argc, char *argv[])
@@ -4000,7 +4014,9 @@ int main(int argc, char *argv[])
Boolean open_keypad_panel = FALSE;
char ch;
Window child;
@ -526,7 +388,7 @@ Last-Update: 2015-05-07
argc1 = argc;
argv1 = malloc(sizeof(char *) * (argc1 + 5));
@@ -3905,14 +3919,14 @@ char *setlocale(int category, const char
@@ -4207,14 +4223,14 @@ char *setlocale(int category, const char *locale)
if (locale == NULL) {
return cur_locale;
} else if (category == LC_ALL) {

View File

@ -3,9 +3,9 @@ Forwarded: no
Author: Peter Pentchev <roam@FreeBSD.org>
Last-Update: 2015-05-07
--- xvkbd.man.orig 2018-02-25 00:56:26 UTC
--- xvkbd.man.orig 2020-02-08 11:34:33 UTC
+++ xvkbd.man
@@ -29,7 +29,7 @@ which may make it easier to enter long w
@@ -31,7 +31,7 @@ which may make it easier to enter long words with \fIx
.PP
\fIIMPORTANT NOTE:\fP
When invoking \fIxvkbd\fP from display managers such as XDM, GDM, etc.,
@ -14,21 +14,7 @@ Last-Update: 2015-05-07
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,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.
@@ -273,34 +273,34 @@ You may want to set \fIJump Pointer?\fP to OFF to avoi
.SH " Options"
\fIxvkbd\fP accept following command line options, in addition to
@ -71,7 +57,7 @@ Last-Update: 2015-05-07
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,
@@ -281,14 +281,14 @@ and XTEST extension is to be used to sim
@@ -308,14 +308,14 @@ and XTEST extension is to be used to simulate keyboard
.sp 0.5
Resource `\fBxvkbd.jumpPointer: false\fP' has the same function.
.TP 4
@ -88,7 +74,7 @@ Last-Update: 2015-05-07
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.
@@ -299,27 +299,27 @@ and resouce files in the distribution.
@@ -326,27 +326,27 @@ and resouce files in the distribution.
.sp 0.5
Resource `\fBxvkbd.modalKeytop: true\fP' has the same function.
.TP 4
@ -124,7 +110,7 @@ Last-Update: 2015-05-07
Do not auto-repeat even if key is depressed long time.
.sp 0.5
If auto-repeat is enabled (this is the default),
@@ -331,31 +331,31 @@ and period of repeat can be set as
@@ -358,31 +358,31 @@ and period of repeat can be set as
.sp 0.5
Resource `\fBxvkbd.autoRepeat: false\fP' has the same function.
.TP 4
@ -163,7 +149,7 @@ Last-Update: 2015-05-07
.sp 0.5
If this option is specified,
\fIxvkbd\fP will not open its window
@@ -402,28 +402,28 @@ will simulate press and release of the k
@@ -431,28 +431,28 @@ will simulate press and release of the key, respective
.IP " - " 6
\fB\\m\fP\fIdigit\fP - simulate click of the specified mouse button
.TP 4
@ -200,7 +186,7 @@ Last-Update: 2015-05-07
Specify the ID
(hexadecimal value leaded with `\fB0x\fP', or decimal value),
the name (instance name or class name) of the window,
@@ -441,10 +441,10 @@ or clear the input focus.
@@ -470,10 +470,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
@ -213,7 +199,7 @@ Last-Update: 2015-05-07
.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
@@ -455,24 +455,24 @@ with a single widget of the client.
@@ -484,24 +484,24 @@ with a single widget of the client.
For example,
.sp
.in +4
@ -242,7 +228,7 @@ Last-Update: 2015-05-07
Specify the default dictionary (list of words) file to be used for
word completion.
The `\fICompletion Dictionary\fP' filename
@@ -482,7 +482,7 @@ Resource `\fBxvkbd.dictFile: \fP\fIfilen
@@ -511,7 +511,7 @@ Resource `\fBxvkbd.dictFile: \fP\fIfilename\fP' has th
.sp 0.5
See also ``Making your own completion dictionary''.
.TP 4
@ -251,7 +237,7 @@ Last-Update: 2015-05-07
Make \fIxvkbd\fP window can be minimized (iconified)
even if no window manager is in use.
When this feature is enabled,
@@ -491,7 +491,7 @@ and \fIxvkbd\fP window will be minimized
@@ -520,7 +520,7 @@ and \fIxvkbd\fP window will be minimized when the tria
.sp 0.5
Resource `\fBxvkbd.minimizable: true\fP' has the same function.
.TP 4
@ -260,7 +246,7 @@ Last-Update: 2015-05-07
Disable invocation of external commands,
including user assigned command and the online manual reader.
Connection to another displays would also be disabled.
@@ -499,25 +499,25 @@ This option may be useful when \fIxvkbd\
@@ -528,25 +528,25 @@ This option may be useful when \fIxvkbd\fP is to be ru
.sp 0.5
Resource `\fBxvkbd.secure: true\fP' has the same function.
.TP 4
@ -291,7 +277,7 @@ Last-Update: 2015-05-07
to apply this for those four modifiers.
Maybe this can be useful when attempting to decorate
the mouse operations with the modifiers.
@@ -527,105 +527,105 @@ and which can prevent the correct operat
@@ -556,106 +556,110 @@ and which can prevent the correct operation in some si
.sp 0.5
Resource `\fBxvkbd.positiveModifiers: \fP\fImodifiers...\fP' has the same function.
.TP 4
@ -406,12 +392,23 @@ Last-Update: 2015-05-07
.SH "Download"
.TP 4
\fILatest Official Release\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
-\fIhttp://t-sato.in.coocan.jp/xvkbd/xvkbd-4.0.tar.gz\fP
+\fIhttp://t-sato.in.coocan.jp/xvkbd/xvkbd\-4.1.tar.gz\fP
.br
- source of version 3.9 (2018-02-25)
-- source of version 4.0 (2019-08-31)
+- source of version 4.1 (2020-05-04)
.TP 4
previous release
-http://t-sato.in.coocan.jp/xvkbd/xvkbd-3.9.tar.gz
+http://t-sato.in.coocan.jp/xvkbd/xvkbd\-4.0.tar.gz
.br
+- source of version 4.0 (2010-09-31)
+.sp 0.5
+http://t-sato.in.coocan.jp/xvkbd/xvkbd\-3.9.tar.gz
+.br
- source of version 3.9 (2018-02-25)
.sp 0.5
-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
@ -421,13 +418,8 @@ Last-Update: 2015-05-07
+http://t-sato.in.coocan.jp/xvkbd/xvkbd\-3.7.tar.gz
.br
- 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
@@ -662,8 +662,8 @@ load them via \fIxrdb\fP(1), or
@@ -702,8 +706,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
@ -438,7 +430,7 @@ Last-Update: 2015-05-07
.IP " o " 4
put them in application default directory as \fBXVkbd\fP.
.PP
@@ -675,11 +675,11 @@ directories specified with \fB$XUSERFILE
@@ -715,11 +719,11 @@ directories specified with \fB$XUSERFILESEACHPATH\fP,
system's application default directory specified with
\fB$XFILESEACHPATH\fP environment variable,
or else the directory specified when compiling the X
@ -452,7 +444,7 @@ Last-Update: 2015-05-07
near top of the file.
.PP
\fIxvkbd\fP is distributed with some application default files,
@@ -710,7 +710,7 @@ You may also want to set:
@@ -750,7 +754,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
@ -461,7 +453,7 @@ Last-Update: 2015-05-07
.SH " Removing Unwanted Keys"
Keys on \fIxvkbd\fP window can be removed by setting their width to 1.
@@ -784,12 +784,12 @@ when \fBxvkbd.modalKeytop\fP resoruce is
@@ -824,12 +828,12 @@ when \fBxvkbd.modalKeytop\fP resoruce is set \fBtrue\f
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).
@ -477,7 +469,7 @@ Last-Update: 2015-05-07
will make \fIxvkbd\fP to use the German layout.
For another method to activate those settings, please refer
"How to Customize \fIxvkbd\fP" above.
@@ -851,7 +851,7 @@ You can use \fBxev\fP command to check w
@@ -891,7 +895,7 @@ You can use \fBxev\fP command to check what is actuall
.IP " o " 4
If \fIAlt\fP or \fIMeta\fP is not defined as modifier,
the key can't be used as modifier.
@ -486,264 +478,3 @@ Last-Update: 2015-05-07
.IP " o " 4
\fINum Lock\fP (and maybe other modifiers) on the physical keyboard
may not work correctly when \fIxvkbd\fP is in use.
@@ -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://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://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://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,
@@ -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
@@ -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
@@ -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.
@@ -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
@@ -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)
@@ -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
@@ -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,
@@ -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)
@@ -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)
@@ -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)
@@ -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
@@ -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
@@ -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.
.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.
.IP " - " 6
-\fB-window\fP option now accept wildcard characters
+\fB\-window\fP option now accept wildcard characters
`\fB*\fP' and `\fB?\fP'.
.IP " - " 6
Word completion dictionary file to be used with `\fIWord Completion...\fP'
@@ -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.
.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.
.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.
.IP " - " 6
Bug fixed: \fBKP_0\fP now works.
@@ -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
@@ -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"

View File

@ -1,31 +1,32 @@
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-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
share/X11/app-defaults/XVkbd
share/X11/app-defaults/XVkbd-belgian
share/X11/app-defaults/XVkbd-common
share/X11/app-defaults/XVkbd-danish
share/X11/app-defaults/XVkbd-fitaly
share/X11/app-defaults/XVkbd-french
share/X11/app-defaults/XVkbd-french2
share/X11/app-defaults/XVkbd-german
share/X11/app-defaults/XVkbd-greek
share/X11/app-defaults/XVkbd-hebrew
share/X11/app-defaults/XVkbd-icelandic
share/X11/app-defaults/XVkbd-italian
share/X11/app-defaults/XVkbd-jisx6002
share/X11/app-defaults/XVkbd-jisx6004
share/X11/app-defaults/XVkbd-korean
share/X11/app-defaults/XVkbd-latin1
share/X11/app-defaults/XVkbd-norwegian
share/X11/app-defaults/XVkbd-portuguese
share/X11/app-defaults/XVkbd-russian
share/X11/app-defaults/XVkbd-slovene
share/X11/app-defaults/XVkbd-small
share/X11/app-defaults/XVkbd-spanish
share/X11/app-defaults/XVkbd-strip
share/X11/app-defaults/XVkbd-swedish
share/X11/app-defaults/XVkbd-swissgerman
share/X11/app-defaults/XVkbd-turkish
share/X11/app-defaults/XVkbd-turkishF
share/X11/app-defaults/XVkbd-uk
man/man1/xvkbd.1.gz
%%DATADIR%%/words.english
%%PORTDOCS%%%%DOCSDIR%%/README