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:
parent
e7e0282ac0
commit
e91eeda76f
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=546909
@ -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}
|
||||
|
@ -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
|
||||
|
@ -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
|
11
x11/xvkbd/files/patch-Makefile.in
Normal file
11
x11/xvkbd/files/patch-Makefile.in
Normal 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
|
@ -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) {
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user