diff options
Diffstat (limited to 'x11/xvkbd')
-rw-r--r-- | x11/xvkbd/Makefile | 12 | ||||
-rw-r--r-- | x11/xvkbd/distinfo | 6 | ||||
-rw-r--r-- | x11/xvkbd/files/patch-README | 12 | ||||
-rw-r--r-- | x11/xvkbd/files/patch-xvkbd.c | 230 | ||||
-rw-r--r-- | x11/xvkbd/files/patch-xvkbd.man | 12 | ||||
-rw-r--r-- | x11/xvkbd/pkg-plist | 4 |
6 files changed, 270 insertions, 6 deletions
diff --git a/x11/xvkbd/Makefile b/x11/xvkbd/Makefile index 788cd3e537b0..106625c9a73c 100644 --- a/x11/xvkbd/Makefile +++ b/x11/xvkbd/Makefile @@ -6,8 +6,7 @@ # PORTNAME= xvkbd -PORTVERSION= 2.6 -PORTREVISION= 3 +PORTVERSION= 3.0 CATEGORIES= x11 MASTER_SITES= http://homepage3.nifty.com/tsato/xvkbd/ @@ -38,9 +37,16 @@ XK_DEFSUBST += -e 's/XCOMM define XTEST/\#define XTEST/;' XK_DEFSUBST += -e 's/XCOMM define I18N/\#define I18N/;' .endif -.if defined(XK_DEFSUBST) post-patch: +.if defined(XK_DEFSUBST) ${REINPLACE_CMD} ${XK_DEFSUBST} ${WRKSRC}/Imakefile .endif + ${REINPLACE_CMD} -e "s@/usr/include/@${LOCALBASE}/include/@" ${WRKSRC}/XVkbd-small.ad + +.if !defined(NOPORTDOCS) +post-install: + ${MKDIR} ${DOCSDIR} + ${INSTALL_DATA} ${WRKSRC}/README ${DOCSDIR}/ +.endif .include <bsd.port.post.mk> diff --git a/x11/xvkbd/distinfo b/x11/xvkbd/distinfo index 67adf774d104..367cc2f464cd 100644 --- a/x11/xvkbd/distinfo +++ b/x11/xvkbd/distinfo @@ -1,3 +1,3 @@ -MD5 (xvkbd-2.6.tar.gz) = 8abe45b05c95dcc6e0281eb0e2d09bfa -SHA256 (xvkbd-2.6.tar.gz) = 654c7f51940e4632e8e08023bdfff11c8f814130beb57d480027720dc5b50606 -SIZE (xvkbd-2.6.tar.gz) = 59829 +MD5 (xvkbd-3.0.tar.gz) = 72fd96feeb2a589b2b68e9fa387afb0b +SHA256 (xvkbd-3.0.tar.gz) = 068ddd35d2a4fe434c2a1110e3722ea9a118aabc3bfafdf0402704121f86c53c +SIZE (xvkbd-3.0.tar.gz) = 74033 diff --git a/x11/xvkbd/files/patch-README b/x11/xvkbd/files/patch-README new file mode 100644 index 000000000000..b28771ae4275 --- /dev/null +++ b/x11/xvkbd/files/patch-README @@ -0,0 +1,12 @@ +diff -urN -x .svn ../../vendor/xvkbd/README ./README +--- ../../vendor/xvkbd/README 2008-05-28 23:43:41.000000000 +0300 ++++ ./README 2008-05-29 00:13:19.000000000 +0300 +@@ -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 diff --git a/x11/xvkbd/files/patch-xvkbd.c b/x11/xvkbd/files/patch-xvkbd.c new file mode 100644 index 000000000000..8de81a063b76 --- /dev/null +++ b/x11/xvkbd/files/patch-xvkbd.c @@ -0,0 +1,230 @@ +diff -urN -x .svn ../../vendor/xvkbd/xvkbd.c ./xvkbd.c +--- ../../vendor/xvkbd/xvkbd.c 2008-05-28 23:43:41.000000000 +0300 ++++ ./xvkbd.c 2008-05-29 00:38:40.000000000 +0300 +@@ -346,7 +346,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), +@@ -1154,7 +1154,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; +@@ -1350,11 +1350,12 @@ + if ('1' <= *cp && *cp <= '9') { + usleep((*cp - '0') * 100000); + } else { +- fprintf(stderr, "%s: no digit after \"\\m\"\n", ++ fprintf(stderr, "%s: no digit after \"\\D\"\n", + PROGRAM_NAME); + } + break; + case 'm': /* simulate click mouse button */ ++#ifdef USE_XTEST + cp++; + if ('1' <= *cp && *cp <= '9') { + if (appres.debug) fprintf(stderr, "XTestFakeButtonEvent(%d)\n", *cp - '0'); +@@ -1365,10 +1366,18 @@ + fprintf(stderr, "%s: no digit after \"\\m\"\n", + PROGRAM_NAME); + } ++#else ++ fprintf(stderr, "%s: this binary is compiled without XTEST support\n", ++ PROGRAM_NAME); ++#endif + break; + case 'x': + case 'y': /* move mouse pointer */ +- sscanf(cp + 1, "%d", &val); ++ if (sscanf(cp + 1, "%d", &val) != -1) { ++ fprintf(stderr, "%s: no number after \"\\%c\"\n", ++ PROGRAM_NAME, *cp); ++ break; ++ } + target_root = RootWindow(target_dpy, DefaultScreen(target_dpy)); + XQueryPointer(target_dpy, target_root, &junk_w, &child, + &cur_x, &cur_y, &junk_i, &junk_i, &junk_u); +@@ -1436,7 +1445,7 @@ + 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) { +@@ -1660,7 +1669,7 @@ + + 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; + } +@@ -1680,7 +1689,7 @@ + + 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", +@@ -1940,7 +1949,7 @@ + focused_subwindow = None; + if (target_dpy != NULL && target_dpy != dpy) XCloseDisplay(target_dpy); + +- strncpy(name, (display_name == NULL) ? "" : display_name, sizeof(name)); ++ snprintf(name, sizeof(name), "%s", (display_name == NULL) ? "" : display_name); + for (cp = name; isascii(*cp) && isprint(*cp); cp++) ; + *cp = '\0'; + +@@ -2423,7 +2432,7 @@ + XtAddCallback(w, XtNcallback, (XtCallbackProc)KeyPressed, (XtPointer)name); + + if (label != NULL) { +- strncpy(str, label, sizeof(str) - 1); ++ snprintf(str, sizeof(str), "%s", label); + if (strcmp(str, "space") == 0) strcpy(str, ""); + len = strlen(str); + if (3 <= len) { +@@ -2495,9 +2504,9 @@ + || (strncmp(keypad_shift[row][col], "KP_", 3) == 0 + && isdigit(keypad_shift[row][col][3]))) + color = appres.general_background; +- strcpy(name, keypad[row][col]); ++ snprintf(name, sizeof(name), "%s", keypad[row][col]); + if (strcmp(name, "Focus") != 0 && strcmp(name, "Num_Lock") != 0) +- sprintf(name, "pad%d,%d", row, col); ++ snprintf(name, sizeof(name), "pad%d,%d", row, col); + key = MakeKey(keypad_box, XtNewString(name), + keypad_label[row][col], color); + XtVaSetValues(key, XtNfont, font, NULL); +@@ -2622,7 +2631,7 @@ + first_row = appres.function_key ? 0 : 1; + if (!appres.keypad_only) { + for (row = first_row; row < NUM_KEY_ROWS; row++) { +- sprintf(name, "row%d", row); ++ snprintf(name, sizeof(name), "row%d", row); + key_box[row] = XtVaCreateManagedWidget(name, formWidgetClass, form, NULL); + if (row != first_row) + XtVaSetValues(key_box[row], XtNfromVert, key_box[row - 1], NULL); +@@ -2631,7 +2640,7 @@ + + left = None; + for (col = 0; keys_normal[row][col] != NULL; col++) { +- strcpy(name, keys_normal[row][col]); ++ snprintf(name, sizeof(name), "%s", keys_normal[row][col]); + if (strcmp(name, "MainMenu") == 0) { + Widget iconify_button = None; + +@@ -2673,7 +2682,7 @@ + color = appres.general_background; + font = appres.general_font; + if (isalpha(name[0])) font = appres.letter_font; +- if (strcmp(name, "space") != 0) sprintf(name, "%d,%d", row, col); ++ if (strcmp(name, "space") != 0) snprintf(name, sizeof(name), "%d,%d", row, col); + } + key = MakeKey(key_box[row], XtNewString(name), label, color); + XtVaGetValues(key, XtNwidth, &wd, NULL); +@@ -2834,17 +2843,18 @@ + home = getenv("HOME"); + if (appres.key_file[0] != '/' && home != NULL + && strlen(home) + strlen(appres.key_file) + 1 < sizeof(fkey_filename)) +- sprintf(fkey_filename, "%s/%s", home, appres.key_file); ++ snprintf(fkey_filename, sizeof(fkey_filename), "%s/%s", home, appres.key_file); + else +- strncpy(fkey_filename, appres.key_file, sizeof(fkey_filename)); ++ snprintf(fkey_filename, sizeof(fkey_filename), "%s", appres.key_file); + + fp = fopen(fkey_filename, "r"); + if (fp == NULL) return; + + while (fgets(str, sizeof(str) - 1, fp)) { + if (str[0] == '#') { +- sscanf(&str[1], "%s %d", key, &val); +- if (strcmp(key, "quick_modifiers") == 0) ++ if (sscanf(&str[1], "%s %d", key, &val) != 2) ++ fprintf(stderr, "%s: bad function key '%s'\n", PROGRAM_NAME, str + 1); ++ else if (strcmp(key, "quick_modifiers") == 0) + appres.quick_modifiers = val; + else if (strcmp(key, "shift_lock") == 0) + appres.shift_lock = val; +@@ -2913,9 +2923,9 @@ + if (key == NULL) + strcpy(key2, ""); + else if (strncmp(key, "Shift-", strlen("Shift-")) == 0) +- sprintf(key2, "s:%s", &key[strlen("Shift-")]); ++ snprintf(key2, sizeof(key2), "s:%s", &key[strlen("Shift-")]); + else +- strcpy(key2, key); ++ snprintf(key2, sizeof(key2), "%s", key); + + if (strcmp(cur_fkey, key2) != 0) { + if (strlen(cur_fkey) != 0) { +@@ -2958,10 +2968,10 @@ + FKeyValueMenuSelected(None, (value[0] == '!') ? "command" : "string"); + + if (value[0] == '!' || value[0] == '\\') value = value + 1; +- strncpy(fkey_value, value, sizeof(fkey_value) - 1); ++ snprintf(fkey_value, sizeof(fkey_value), "%s", value); + XtVaSetValues(fkey_value_entry, XtNstring, fkey_value, NULL); + +- strcpy(cur_fkey, key2); ++ snprintf(cur_fkey, sizeof(cur_fkey), "%s", key2); + } + } + } +@@ -3020,9 +3030,9 @@ + 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, +@@ -3084,8 +3094,8 @@ + 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) { +@@ -3143,8 +3153,10 @@ + { + StopAutoclick(); + ++#ifdef USE_XTEST + XTestFakeButtonEvent(target_dpy, 1, True, CurrentTime); + XTestFakeButtonEvent(target_dpy, 1, False, CurrentTime); ++#endif + } + + static void ShowBalloon(Widget w, XEvent *event, String *pars, Cardinal *n_pars) +@@ -3447,7 +3459,7 @@ + } else { + s = locale; + } +- strncpy(cur_locale, s, sizeof(cur_locale) - 1); ++ snprintf(cur_locale, sizeof(cur_locale), "%s", s); + return old_locale; + } else { + return cur_locale; diff --git a/x11/xvkbd/files/patch-xvkbd.man b/x11/xvkbd/files/patch-xvkbd.man new file mode 100644 index 000000000000..44c13de2adaf --- /dev/null +++ b/x11/xvkbd/files/patch-xvkbd.man @@ -0,0 +1,12 @@ +diff -urN -x .svn ../../vendor/xvkbd/xvkbd.man ./xvkbd.man +--- ../../vendor/xvkbd/xvkbd.man 2008-05-28 23:43:41.000000000 +0300 ++++ ./xvkbd.man 2008-05-29 00:13:19.000000000 +0300 +@@ -116,7 +116,7 @@ + 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, ++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" diff --git a/x11/xvkbd/pkg-plist b/x11/xvkbd/pkg-plist index 952f249ed7b9..472df65c01fd 100644 --- a/x11/xvkbd/pkg-plist +++ b/x11/xvkbd/pkg-plist @@ -11,11 +11,13 @@ 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 @@ -23,3 +25,5 @@ lib/X11/app-defaults/XVkbd-swedish lib/X11/app-defaults/XVkbd-swissgerman lib/X11/app-defaults/XVkbd-turkish lib/X11/app-defaults/XVkbd-uk +%%PORTDOCS%%%%DOCSDIR%%/README +%%PORTDOCS%%@dirrm %%DOCSDIR%% |