Update to xvkbd-3.2 and specify the GPL-2+ license as best I can.
This commit is contained in:
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
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue