Update to xvkbd-3.2 and specify the GPL-2+ license as best I can.

This commit is contained in:
Peter Pentchev 2010-06-11 14:43:50 +00:00
parent 2ebe6573ab
commit 60b3435d8a
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=256394
5 changed files with 212 additions and 141 deletions

View file

@ -6,13 +6,17 @@
#
PORTNAME= xvkbd
PORTVERSION= 3.1
PORTVERSION= 3.2
CATEGORIES= x11
MASTER_SITES= http://homepage3.nifty.com/tsato/xvkbd/
MAINTAINER= roam@FreeBSD.org
COMMENT= A virtual keyboard for X applications
# FIXME: IMHO, there really ought to be a GPL-2+ option or some such.
LICENSE= GPLv2 GPLv3
LICENSE_COMB= dual
MAN1= xvkbd.1
OPTIONS= XAW3D "Xaw3d support" off \

View file

@ -1,3 +1,3 @@
MD5 (xvkbd-3.1.tar.gz) = d1905b22bf134b9abba27444adc2bec0
SHA256 (xvkbd-3.1.tar.gz) = 294b4d3d63c52352284a4cae769a4932a62a073e63b9c7e85bb4cd414d3f61cc
SIZE (xvkbd-3.1.tar.gz) = 75944
MD5 (xvkbd-3.2.tar.gz) = 1bce8d6c27e6e7df92ec09b414f82dad
SHA256 (xvkbd-3.2.tar.gz) = 93c4bdced9f13f22c367d990e98ffbc53f8210fa28a816fa9c610d86e78bf807
SIZE (xvkbd-3.2.tar.gz) = 78617

View file

@ -1,16 +0,0 @@
Description: Fix the words file location on FreeBSD.
Forwarded: not-needed
Author: Peter Pentchev <roam@FreeBSD.org>
Last-Update: 2008-05-28
--- README.orig
+++ README
@@ -93,7 +93,7 @@
characters of the selected word by clicking one of the words in the
list.
- The dictionary (list of words) file is /usr/dict/words by default, but
+ The dictionary (list of words) file is /usr/share/dict/words by default, but
it can be changed by -dict option or xvkbd.dictFile resouce.
Main Menu

View file

@ -1,25 +1,15 @@
Description: Assorted compilation and usage fixes.
- fix a lot of compiler warnings
- unbreak the build if XTEST is not selected
- fix the location of the words file on FreeBSD
- use snprintf() instead of sprintf() and strcpy(), just in case
- fix the text of an error message
Forwarded: no
Author: Peter Pentchev <roam@FreeBSD.org>
Last-Update: 2010-01-18
Last-Update: 2010-06-11
--- xvkbd.c.orig
+++ xvkbd.c
@@ -356,7 +356,7 @@
{ "keyFile", "KeyFile", XtRString, sizeof(char *),
Offset(key_file), XtRImmediate, ".xvkbd" },
{ "dictFile", "DictFile", XtRString, sizeof(char *),
- Offset(dict_file), XtRImmediate, "/usr/dict/words" },
+ Offset(dict_file), XtRImmediate, "/usr/share/dict/words" },
{ "customizations", "Customizations", XtRString, sizeof(char *),
Offset(customizations), XtRImmediate, "default" },
{ "editableFunctionKeys", "EditableFunctionKeys", XtRInt, sizeof(int),
@@ -449,8 +449,8 @@
@@ -460,8 +460,8 @@
static int altgr_mask = 0;
static KeySym altgr_keysym = NoSymbol;
@ -30,7 +20,7 @@ Last-Update: 2010-01-18
static Display *target_dpy = NULL;
@@ -461,7 +461,7 @@
@@ -472,7 +472,7 @@
static Pixmap xvkbd_pixmap = None;
static int AddKeysym(KeySym keysym, Boolean top); /* forward */
@ -39,7 +29,7 @@ Last-Update: 2010-01-18
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);
@@ -470,6 +470,8 @@
@@ -481,6 +481,8 @@
static void PopupFunctionKeyEditor(void);
static void DeleteWindowProc(Widget w, XEvent *event, String *pars, Cardinal *n_pars);
@ -48,7 +38,7 @@ Last-Update: 2010-01-18
/*
* Search for window which has specified instance name (WM_NAME)
* or class name (WM_CLASS).
@@ -478,8 +480,7 @@
@@ -489,8 +491,7 @@
{
Window w;
Window *children, dummy;
@ -56,9 +46,9 @@ Last-Update: 2010-01-18
- int i;
+ unsigned int nchildren, i;
XClassHint hint;
char *win_name;
w = None;
@@ -756,7 +757,9 @@
@@ -774,7 +775,9 @@
*/
static void SendEvent(XKeyEvent *event)
{
@ -68,7 +58,7 @@ Last-Update: 2010-01-18
if (!appres.no_sync) {
XSync(event->display, FALSE);
@@ -1037,11 +1040,11 @@
@@ -1055,11 +1058,11 @@
#ifdef USE_XTEST
if (appres.xtest) {
@ -82,16 +72,25 @@ Last-Update: 2010-01-18
event.type = KeyRelease;
event.state = 0;
@@ -1164,7 +1167,7 @@
* via xvkbd can be listed, and choosing one of them will send the
* suffix to the clients.
* Words for completion will be read from dictionary file specified
- * with xvkbd.dictFile resource, such as /usr/dict/words.
+ * with xvkbd.dictFile resource, such as /usr/share/dict/words.
*/
static Widget completion_panel = None;
static Widget completion_entry = None;
@@ -1221,7 +1224,7 @@
@@ -1209,7 +1212,7 @@
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);
}
@@ -1224,7 +1227,7 @@
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;
@@ -1274,7 +1277,7 @@
static void AddToCompletionText(KeySym keysym)
{
@ -100,7 +99,16 @@ Last-Update: 2010-01-18
struct WORDLIST *node_ptr;
if (completion_entry != None) {
@@ -1310,11 +1313,11 @@
@@ -1364,7 +1367,7 @@
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';
@@ -1379,11 +1382,11 @@
*/
static void KeyPressed(Widget w, char *key, char *data);
@ -115,7 +123,17 @@ Last-Update: 2010-01-18
int val;
Window target_root, child, junk_w;
int junk_i;
@@ -1360,11 +1363,12 @@
@@ -1408,8 +1411,7 @@
} 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;
}
@@ -1429,11 +1431,12 @@
if ('1' <= *cp && *cp <= '9') {
usleep((*cp - '0') * 100000);
} else {
@ -129,7 +147,7 @@ Last-Update: 2010-01-18
cp++;
if ('1' <= *cp && *cp <= '9') {
if (appres.debug) fprintf(stderr, "XTestFakeButtonEvent(%d)\n", *cp - '0');
@@ -1375,10 +1379,18 @@
@@ -1444,10 +1447,18 @@
fprintf(stderr, "%s: no digit after \"\\m\"\n",
PROGRAM_NAME);
}
@ -149,7 +167,7 @@ Last-Update: 2010-01-18
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);
@@ -1446,7 +1458,7 @@
@@ -1515,7 +1526,7 @@
char name1[50];
Widget w;
@ -158,7 +176,7 @@ Last-Update: 2010-01-18
w = XtNameToWidget(toplevel, name1);
if (w != None) {
if (strstr(name, "Focus") != NULL) {
@@ -1475,13 +1487,13 @@
@@ -1544,13 +1555,13 @@
static void RefreshShiftState(Boolean force)
{
static Boolean first = TRUE;
@ -177,7 +195,7 @@ Last-Update: 2010-01-18
int first_row, row, col;
Boolean shifted;
char *label;
@@ -1572,7 +1584,7 @@
@@ -1641,7 +1652,7 @@
Window root, child;
int root_x, root_y, x, y;
@ -186,7 +204,7 @@ Last-Update: 2010-01-18
XKeyEvent event;
@@ -1588,28 +1600,28 @@
@@ -1657,28 +1668,28 @@
event.same_screen = TRUE;
event.state = 0;
@ -220,7 +238,7 @@ Last-Update: 2010-01-18
event.keycode = XKeysymToKeycode(target_dpy, XK_Meta_L);
event.type = (shift_state & meta_mask) ? KeyPress : KeyRelease;
SendEvent(&event);
@@ -1670,7 +1682,7 @@
@@ -1739,7 +1750,7 @@
XtVaGetValues(w, XtNx, &x0, XtNy, &y0, NULL);
XGetGeometry(dpy, XtWindow(w), &root, &x1, &y1, &wd, &ht, &bd, &dp);
@ -229,16 +247,31 @@ Last-Update: 2010-01-18
return geom;
}
@@ -1690,7 +1702,7 @@
@@ -1801,7 +1812,7 @@
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",
@@ -1809,12 +1820,10 @@
}
}
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",
@@ -1807,6 +1819,7 @@
- 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);
} else if (getenv("XENVIRONMENT") != NULL) {
putenv("XENVIRONMENT=");
@@ -1923,6 +1932,7 @@
XtVaGetValues(XtNameToWidget(props_panel, "*jump_pointer"),
XtNstate, &appres.jump_pointer, NULL);
@ -246,7 +279,7 @@ Last-Update: 2010-01-18
appres.key_click_duration = (int)XawToggleGetCurrent(click_buttons);
appres.autoclick_delay = (int)XawToggleGetCurrent(autoclick_buttons);
@@ -1863,7 +1876,7 @@
@@ -1989,7 +1999,7 @@
if (props_panel == None) {
Widget label, button;
Widget form, w;
@ -255,7 +288,25 @@ Last-Update: 2010-01-18
int val;
props_panel = XtVaCreatePopupShell("props_panel", transientShellWidgetClass,
@@ -1955,7 +1968,7 @@
@@ -2015,7 +2025,7 @@
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,
@@ -2037,7 +2047,7 @@
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,
@@ -2099,7 +2109,7 @@
focused_subwindow = None;
if (target_dpy != NULL && target_dpy != dpy) XCloseDisplay(target_dpy);
@ -264,16 +315,16 @@ Last-Update: 2010-01-18
for (cp = name; isascii(*cp) && isprint(*cp); cp++) ;
*cp = '\0';
@@ -2146,7 +2159,7 @@
@@ -2292,7 +2302,7 @@
}
}
-void SignalUser1(void)
-static void SignalUser1(void)
+static void SignalUser1(int sig)
{
XWindowAttributes attr;
XGetWindowAttributes(dpy, XtWindow(toplevel), &attr);
@@ -2448,7 +2461,7 @@
@@ -2594,7 +2604,7 @@
XtAddCallback(w, XtNcallback, (XtCallbackProc)KeyPressed, (XtPointer)name);
if (label != NULL) {
@ -282,7 +333,7 @@ Last-Update: 2010-01-18
if (strcmp(str, "space") == 0) strcpy(str, "");
len = strlen(str);
if (3 <= len) {
@@ -2520,9 +2533,9 @@
@@ -2666,9 +2676,9 @@
|| (strncmp(keypad_shift[row][col], "KP_", 3) == 0
&& isdigit(keypad_shift[row][col][3])))
color = appres.general_background;
@ -294,7 +345,7 @@ Last-Update: 2010-01-18
key = MakeKey(keypad_box, XtNewString(name),
keypad_label[row][col], color);
XtVaSetValues(key, XtNfont, font, NULL);
@@ -2624,12 +2637,12 @@
@@ -2770,12 +2780,12 @@
Widget form, key, left;
Pixel color;
XFontStruct *font;
@ -309,7 +360,7 @@ Last-Update: 2010-01-18
#include "xvkbd.xbm"
#include "iconify.xbm"
@@ -2649,7 +2662,7 @@
@@ -2795,7 +2805,7 @@
for (row = first_row; row < NUM_KEY_ROWS; row++) {
if (keys_normal[row][0] == NULL) continue;
@ -318,7 +369,7 @@ Last-Update: 2010-01-18
key_box[row] = XtVaCreateManagedWidget(name, formWidgetClass, form, NULL);
key_box[row + 1] = None;
if (row != first_row)
@@ -2659,7 +2672,7 @@
@@ -2805,7 +2815,7 @@
left = None;
for (col = 0; keys_normal[row][col] != NULL; col++) {
@ -327,7 +378,7 @@ Last-Update: 2010-01-18
if (strcmp(name, "MainMenu") == 0) {
Widget iconify_button = None;
@@ -2701,11 +2714,11 @@
@@ -2847,11 +2857,11 @@
color = appres.general_background;
font = appres.general_font;
if (isalpha(name[0])) font = appres.letter_font;
@ -342,7 +393,7 @@ Last-Update: 2010-01-18
/* keys can be removed by setting its width to 1 */
XtDestroyWidget(key);
key = None;
@@ -2740,7 +2753,7 @@
@@ -2888,7 +2898,7 @@
Window root;
int x1, y1;
unsigned int wd, ht, bd, dp;
@ -351,7 +402,7 @@ Last-Update: 2010-01-18
XGetGeometry(dpy, XtWindow(toplevel), &root, &x1, &y1, &wd, &ht, &bd, &dp);
max_wd = XtScreen(toplevel)->width * appres.max_width_ratio;
@@ -2758,16 +2771,16 @@
@@ -2906,16 +2916,16 @@
if (!appres.debug && key_box[first_row] != None) {
if (appres.keypad) {
@ -373,7 +424,7 @@ Last-Update: 2010-01-18
}
}
if (0 < strlen(appres.geometry)) {
@@ -2862,17 +2875,18 @@
@@ -3015,19 +3025,20 @@
home = getenv("HOME");
if (appres.key_file[0] != '/' && home != NULL
&& strlen(home) + strlen(appres.key_file) + 1 < sizeof(fkey_filename))
@ -383,6 +434,9 @@ Last-Update: 2010-01-18
- 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;
@ -396,7 +450,16 @@ Last-Update: 2010-01-18
appres.quick_modifiers = val;
else if (strcmp(key, "shift_lock") == 0)
appres.shift_lock = val;
@@ -2941,9 +2955,9 @@
@@ -3047,7 +3058,7 @@
appres.jump_pointer = val;
else if (strcmp(key, "dict_file") == 0) {
sscanf(&str[1], "%*s %s", &key);
- strncpy(dict_filename, key, sizeof(dict_filename));
+ snprintf(dict_filename, sizeof(dict_filename), "%s", key);
}
} else if (isalpha(str[0])) {
len = strlen(str);
@@ -3102,9 +3113,9 @@
if (key == NULL)
strcpy(key2, "");
else if (strncmp(key, "Shift-", strlen("Shift-")) == 0)
@ -408,7 +471,16 @@ Last-Update: 2010-01-18
if (strcmp(cur_fkey, key2) != 0) {
if (strlen(cur_fkey) != 0) {
@@ -2986,10 +3000,10 @@
@@ -3127,7 +3138,7 @@
prefix = "";
if (cur_fkey_value_mode[0] == 'c') prefix = "!";
else if (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;
@@ -3147,10 +3158,10 @@
FKeyValueMenuSelected(None, (value[0] == '!') ? "command" : "string");
if (value[0] == '!' || value[0] == '\\') value = value + 1;
@ -421,7 +493,7 @@ Last-Update: 2010-01-18
}
}
}
@@ -3048,9 +3062,9 @@
@@ -3213,9 +3224,9 @@
for (j = 0; j <= 1; j++) {
for (i = 1; i <= appres.editable_function_keys; i++) {
if (j == 0)
@ -433,7 +505,7 @@ Last-Update: 2010-01-18
key = XtNewString(label);
menu_entry = XtVaCreateManagedWidget(key, smeBSBObjectClass, menu, NULL);
XtAddCallback(menu_entry, XtNcallback, (XtCallbackProc)FKeyMenuSelected,
@@ -3112,8 +3126,8 @@
@@ -3277,8 +3288,8 @@
else if (shift_state & ControlMask) prefix = 'c';
else if (shift_state & ShiftMask) prefix = 's';
}
@ -444,7 +516,7 @@ Last-Update: 2010-01-18
len = strlen(label);
for (sp = fkey_list; sp != NULL; sp = sp->next) {
@@ -3171,8 +3185,10 @@
@@ -3336,8 +3347,10 @@
{
StopAutoclick();
@ -455,7 +527,7 @@ Last-Update: 2010-01-18
}
static void ShowBalloon(Widget w, XEvent *event, String *pars, Cardinal *n_pars)
@@ -3253,7 +3269,7 @@
@@ -3418,7 +3431,7 @@
static void VisibilityChanged(Widget w, XEvent *event,
String *pars, Cardinal *n_pars)
{
@ -464,7 +536,7 @@ Last-Update: 2010-01-18
static time_t t1 = 0;
time_t t2;
@@ -3301,7 +3317,9 @@
@@ -3466,7 +3479,9 @@
Boolean open_keypad_panel = FALSE;
char ch;
Window child;
@ -474,7 +546,15 @@ Last-Update: 2010-01-18
argc1 = argc;
argv1 = malloc(sizeof(char *) * (argc1 + 5));
@@ -3500,7 +3518,7 @@
@@ -3664,14 +3679,14 @@
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;
}

View file

@ -1,7 +1,7 @@
Description: Fix the words file location and escape a lot of minus signs.
Description: Escape a lot of minus signs.
Forwarded: no
Author: Peter Pentchev <roam@FreeBSD.org>
Last-Update: 2010-01-18
Last-Update: 2010-06-11
--- xvkbd.man.orig
+++ xvkbd.man
@ -14,18 +14,7 @@ Last-Update: 2010-01-18
or you will have serious security risk.
.SH "Environment"
@@ -116,8 +116,8 @@
and you can enter the remaining characters of the selected word
by clicking one of the words in the list.
.PP
-The dictionary (list of words) file is \fB/usr/dict/words\fP by default,
-but it can be changed by \fB-dict\fP option or \fBxvkbd.dictFile\fP resouce.
+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.
.SH " Main Menu"
Pressing the ``xvkbd'' logo on the main keyboard
@@ -235,10 +235,10 @@
@@ -245,13 +245,13 @@
.SH " Options"
\fIxvkbd\fP accept following command line options, in addition to
@ -33,12 +22,16 @@ Last-Update: 2010-01-18
+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
@@ -249,14 +249,14 @@
@@ -262,14 +262,14 @@
.sp 0.5
Resource `\fBxvkbd.xtest: false\fP' has the same function.
.TP 4
@ -56,7 +49,7 @@ Last-Update: 2010-01-18
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,
@@ -264,14 +264,14 @@
@@ -277,14 +277,14 @@
.sp 0.5
Resource `\fBxvkbd.jumpPointer: false\fP' has the same function.
.TP 4
@ -73,7 +66,7 @@ Last-Update: 2010-01-18
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.
@@ -282,22 +282,22 @@
@@ -295,22 +295,22 @@
.sp 0.5
Resource `\fBxvkbd.modalKeytop: true\fP' has the same function.
.TP 4
@ -103,7 +96,7 @@ Last-Update: 2010-01-18
Do not auto-repeat even if key is depressed long time.
.sp 0.5
If auto-repeat is enabled (this is the default),
@@ -309,31 +309,31 @@
@@ -322,31 +322,31 @@
.sp 0.5
Resource `\fBxvkbd.autoRepeat: false\fP' has the same function.
.TP 4
@ -142,7 +135,7 @@ Last-Update: 2010-01-18
.sp 0.5
If this option is specified,
\fIxvkbd\fP will not open its window
@@ -373,22 +373,22 @@
@@ -386,22 +386,22 @@
.IP " - " 6
\fB\\m\fP\fIdigit\fP - simulate click of the specified mouse button
.TP 4
@ -170,9 +163,9 @@ Last-Update: 2010-01-18
-.BI "-window " window
+.BI "\-window " window
Specify the ID
(hexadecimal value leaded with `\fB0x\fP', or decimal value)
or name (instance name or class name) of the window to set input focus.
@@ -402,10 +402,10 @@
(hexadecimal value leaded with `\fB0x\fP', or decimal value),
the name (instance name or class name) of the window,
@@ -419,10 +419,10 @@
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
@ -185,7 +178,7 @@ Last-Update: 2010-01-18
.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
@@ -416,20 +416,20 @@
@@ -433,20 +433,20 @@
For example,
.sp
.in +4
@ -206,10 +199,10 @@ Last-Update: 2010-01-18
.TP 4
-.BI "-dict " filename
+.BI "\-dict " filename
Specify the dictionary (list of words) file to be used for
Specify the default dictionary (list of words) file to be used for
word completion.
.sp 0.5
@@ -437,7 +437,7 @@
The `\fICompletion Dictionary\fP' filename
@@ -456,7 +456,7 @@
.sp 0.5
See also ``Making your own completion dictionary''.
.TP 4
@ -218,7 +211,7 @@ Last-Update: 2010-01-18
Make \fIxvkbd\fP window can be minimized (iconified)
even if no window manager is in use.
When this feature is enabled,
@@ -446,7 +446,7 @@
@@ -465,7 +465,7 @@
.sp 0.5
Resource `\fBxvkbd.minimizable: true\fP' has the same function.
.TP 4
@ -227,7 +220,7 @@ Last-Update: 2010-01-18
Disable invocation of external commands,
including user assigned command and the online manual reader.
Connection to another displays would also be disabled.
@@ -454,25 +454,25 @@
@@ -473,25 +473,25 @@
.sp 0.5
Resource `\fBxvkbd.secure: true\fP' has the same function.
.TP 4
@ -249,7 +242,7 @@ Last-Update: 2010-01-18
-.BI "-modifiers " modifiers
+.BI "\-modifiers " modifiers
Normally, \fIxvkbd\fP will activate modifiers (control, shift, etc.)
only whille sending characters.
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.
@ -258,7 +251,7 @@ Last-Update: 2010-01-18
to apply this for those four modifiers.
Maybe this can be useful when attempting to decorate
the mouse operations with the modifiers.
@@ -485,85 +485,85 @@
@@ -515,89 +515,89 @@
.SH "Screen Shot"
.TP 4
Default (US)
@ -359,18 +352,23 @@ Last-Update: 2010-01-18
.SH "Download"
.TP 4
\fILatest Official Release\fP
-\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.1.tar.gz\fP
+\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.1.tar.gz\fP
-\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.2.tar.gz\fP
+\fIhttp://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.2.tar.gz\fP
.br
- source of version 3.1 (2010-01-17)
- source of version 3.2 (2010-03-14)
.TP 4
previous release
-http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.1.tar.gz
+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.1.tar.gz
.br
- source of version 3.1 (2010-01-17)
.sp 0.5
-http://homepage3.nifty.com/tsato/xvkbd/xvkbd-3.0.tar.gz
+http://homepage3.nifty.com/tsato/xvkbd/xvkbd\-3.0.tar.gz
.br
- source of version 3.0 (2008-05-05)
.PP
@@ -600,8 +600,8 @@
@@ -634,8 +634,8 @@
.IP " o " 4
set the filename to the \fB$XENVIRONMENT\fP environment variable, or
.IP " o " 4
@ -381,7 +379,7 @@ Last-Update: 2010-01-18
.IP " o " 4
put them in application default directory as \fBXVkbd\fP.
.PP
@@ -613,11 +613,11 @@
@@ -647,11 +647,11 @@
system's application default directory specified with
\fB$XFILESEACHPATH\fP environment variable,
or else the directory specified when compiling the X
@ -395,7 +393,7 @@ Last-Update: 2010-01-18
near top of the file.
.PP
\fIxvkbd\fP is distributed with some application default files,
@@ -648,7 +648,7 @@
@@ -682,7 +682,7 @@
to display only the labels for the current shift state,
instead of trying to always display all of them in the small keytop.
.PP
@ -404,7 +402,7 @@ Last-Update: 2010-01-18
.SH " Removing Unwanted Keys"
Keys on \fIxvkbd\fP window can be removed by setting its width to 1.
@@ -719,12 +719,12 @@
@@ -753,12 +753,12 @@
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).
@ -420,7 +418,7 @@ Last-Update: 2010-01-18
will make \fIxvkbd\fP to use the German layout.
For another method to activate those settings, please refer
"How to Customize \fIxvkbd\fP" above.
@@ -786,7 +786,7 @@
@@ -820,7 +820,7 @@
.IP " o " 4
If \fIAlt\fP or \fIMeta\fP is not defined as modifier,
the key can't be used as modifier.
@ -429,16 +427,21 @@ Last-Update: 2010-01-18
.IP " o " 4
\fINum Lock\fP (and maybe other modifiers) on the physical keyboard
may not work correctly when \fIxvkbd\fP is in use.
@@ -797,7 +797,7 @@
@@ -831,10 +831,10 @@
http://homepage3.nifty.com/tsato/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
.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
.TP 4
Note about how to send key events
http://homepage3.nifty.com/tsato/xvkbd/events.html
@@ -818,26 +818,26 @@
@@ -855,26 +855,26 @@
can be entered using dedicated key combinations.
.IP " - " 6
Make keyboard layout not to be disturbed when
@ -470,7 +473,7 @@ Last-Update: 2010-01-18
.IP " - " 6
\fIxvkbd\fP can now send keys
with \fIMode_switch\fP (\fIAltGr\fP) modifier,
@@ -845,9 +845,9 @@
@@ -882,9 +882,9 @@
.IP " - " 6
\fIxvkbd\fP now support \fIAltGr\fP key
so that German (and some other) keyboard layout can be used.
@ -482,7 +485,7 @@ Last-Update: 2010-01-18
in the distribution, which modifies keyboard layout
and put some non-ASCII keys on the \fIxvkbd\fP window.
.IP " - " 6
@@ -863,7 +863,7 @@
@@ -900,7 +900,7 @@
not shifted, \fIShift\fP, \fIAltGr\fP and \fIShift\fP-\fIAltGr\fP.
(thanks, Jim)
.IP " - " 6
@ -491,7 +494,7 @@ Last-Update: 2010-01-18
.TP 4
Version 1.2 (2001-02-18)
.IP " - " 6
@@ -891,7 +891,7 @@
@@ -928,7 +928,7 @@
.TP 4
Version 1.3 (2001-03-19)
.IP " - " 6
@ -500,7 +503,7 @@ Last-Update: 2010-01-18
(contributed from Marcel Portner)
.IP " - " 6
\fIxvkbd\fP now catches MappingNotify event and reload the new mapping.
@@ -941,7 +941,7 @@
@@ -978,7 +978,7 @@
.TP 4
Version 1.6 (2001-11-10)
.IP " - " 6
@ -509,7 +512,7 @@ Last-Update: 2010-01-18
(thanks, Gregory)
.IP " - " 6
New entry `\fIUse XTEST Extension?\fP' is added
@@ -960,7 +960,7 @@
@@ -997,7 +997,7 @@
Show/hide of the keypad and funcion keys on the main window
can now be toggled from the main menu.
.IP " - " 6
@ -518,7 +521,7 @@ Last-Update: 2010-01-18
(contributed from Jean-Pierre Demailly)
.TP 4
Version 2.1 (2002-01-27)
@@ -968,9 +968,9 @@
@@ -1005,9 +1005,9 @@
When height of the \fIxvkbd\fP window is smaller than
\fBXVkbd.modalThreshold\fP,
\fIxvkbd\fP will now automatically switch the keytop
@ -530,7 +533,7 @@ Last-Update: 2010-01-18
would send wrong keys - this problem is now fixed.
.IP " - " 6
Target \fBdistclean\fP in the \fBImakefile\fP is renamed
@@ -983,8 +983,8 @@
@@ -1020,8 +1020,8 @@
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
@ -541,7 +544,7 @@ Last-Update: 2010-01-18
its standard input (stdin) to get the string to be sent.
.IP " - " 6
In the previous release,
@@ -1013,7 +1013,7 @@
@@ -1050,7 +1050,7 @@
United Kingdom
and Latin-1.
.IP " - " 6
@ -550,7 +553,7 @@ Last-Update: 2010-01-18
- this problem is now fixed.
.TP 4
Version 2.4 (2002-10-02)
@@ -1074,24 +1074,24 @@
@@ -1111,24 +1111,24 @@
.IP " - " 6
It is now possible to minimize (iconify) the main window
even if no window manager is in use.
@ -582,7 +585,7 @@ Last-Update: 2010-01-18
and maybe useful when run \fIxvkbd\fP from a display manager.
.TP 4
Version 2.7a (2005-05-07)
@@ -1107,17 +1107,17 @@
@@ -1144,17 +1144,17 @@
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
@ -604,7 +607,7 @@ Last-Update: 2010-01-18
via \fB\\x\fP, \fB\\y\fP and \fB\\m\fP special sequences.
.TP 4
Version 3.0 (2008-05-05)
@@ -1132,7 +1132,7 @@
@@ -1169,7 +1169,7 @@
.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
@ -613,12 +616,12 @@ Last-Update: 2010-01-18
.IP " - " 6
Up to 25x25 keys can now be supported both for the main keyboard and the keypad.
.IP " - " 6
@@ -1140,7 +1140,7 @@
@@ -1177,7 +1177,7 @@
.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.
.SH "Author"
\fIxvkbd\fP was written by Tom Sato,
.TP 4
Version 3.2 (2010-03-14)
.IP " - " 6