Hello community, here is the log from the commit of package xvkbd for openSUSE:Factory checked in at 2020-06-02 14:37:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xvkbd (Old) and /work/SRC/openSUSE:Factory/.xvkbd.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xvkbd" Tue Jun 2 14:37:37 2020 rev:28 rq:810402 version:4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/xvkbd/xvkbd.changes 2019-10-16 09:12:41.747868001 +0200 +++ /work/SRC/openSUSE:Factory/.xvkbd.new.3606/xvkbd.changes 2020-06-02 14:38:22.171470256 +0200 @@ -1,0 +2,13 @@ +Sat May 30 19:36:21 UTC 2020 - Asterios Dramis <[email protected]> + +- Update to version 4.1: + * xvkbd-4.0 couldn't read word list without frequency + information. This bug is not fixed. + * Too slow startup if word list file is large. + This problem is now fixed by making xvkbd to read large word + list file on the fly. + * Modified Makefile.am to add prefix $(DESTDIR) to the + destination path. + * Fixed duplicate definition problem of variable appres. + +------------------------------------------------------------------- Old: ---- xvkbd-4.0.tar.gz New: ---- xvkbd-4.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xvkbd.spec ++++++ --- /var/tmp/diff_new_pack.PJLftp/_old 2020-06-02 14:38:23.283473771 +0200 +++ /var/tmp/diff_new_pack.PJLftp/_new 2020-06-02 14:38:23.283473771 +0200 @@ -1,7 +1,7 @@ # # spec file for package xvkbd # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: xvkbd -Version: 4.0 +Version: 4.1 Release: 0 Summary: Virtual Keyboard for the X Window System License: GPL-2.0-or-later @@ -50,11 +50,11 @@ %build %configure -make %{?_smp_mflags} +%make_build %install install -dm 0755 %{buildroot}%{_datadir}/X11/app-defaults -%make_install appdefaultdir=%{buildroot}%{_datadir}/X11/app-defaults datarootdir=%{buildroot}%{_datadir} +%make_install desktop-file-install %{SOURCE1} install -Dpm 0644 %{SOURCE2} %{buildroot}%{_datadir}/pixmaps/xvkbd.png ++++++ xvkbd-4.0.tar.gz -> xvkbd-4.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/ChangeLog new/xvkbd-4.1/ChangeLog --- old/xvkbd-4.0/ChangeLog 2019-08-31 12:32:58.000000000 +0200 +++ new/xvkbd-4.1/ChangeLog 2020-05-04 06:33:52.000000000 +0200 @@ -439,12 +439,26 @@ - Modifier "Super" (keysym Super_L and Super_R) is now supported, although it is not on the supplied keyboard layouts. - + Modifier "Super" can be expressed as "\W" in -text option. - + - Modifiers did not work correctly before first key is pressed. This problem is fixed. - To build, "./configure" may be used instead of "xmkmf". - - \ No newline at end of file + + +Version 4.1 (2020-05-04) + + - xvkbd-4.0 couldn't read word list without frequency information. + This bug is not fixed. + + - Too slow startup if word list file is large. + This problem is now fixed by making xvkbd to read large word list file + on the fly. + + - Modified Makefile.am to add prefix $(DESTDIR) to the destination path. + + - Fixed duplicate definition problem of variable appres. + + \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/Imakefile new/xvkbd-4.1/Imakefile --- old/xvkbd-4.0/Imakefile 2019-08-31 09:45:09.000000000 +0200 +++ new/xvkbd-4.1/Imakefile 2020-05-04 09:10:40.000000000 +0200 @@ -68,7 +68,7 @@ InstallAppDefaults(XVkbd-uk) InstallAppDefaults(XVkbd-strip) -InstallNonExec(words.english, $(SHAREDIR)/words.english) +InstallNonExec(words.english,$(SHAREDIR)/words.english) README: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/Makefile.am new/xvkbd-4.1/Makefile.am --- old/xvkbd-4.0/Makefile.am 2019-09-01 00:03:14.000000000 +0200 +++ new/xvkbd-4.1/Makefile.am 2020-02-08 12:43:15.000000000 +0100 @@ -17,11 +17,12 @@ [ which ad2c > /dev/null ] || ad2c XVkbd-common.ad > XVkbd-common.h install-data-hook: + [ -d $(DESTDIR)$(appdefaultdir) ] || mkdir $(DESTDIR)$(appdefaultdir) for file in *.ad; do \ - $(INSTALL_DATA) $$file $(appdefaultdir)/$${file%.ad}; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(appdefaultdir)/$${file%.ad}; \ done - [ -d $(datarootdir)/xvkbd/ ] || mkdir $(datarootdir)/xvkbd/ - $(INSTALL_DATA) words.english $(datarootdir)/xvkbd/words.english + [ -d $(DESTDIR)$(datarootdir)/xvkbd/ ] || mkdir $(DESTDIR)$(datarootdir)/xvkbd/ + $(INSTALL_DATA) words.english $(DESTDIR)$(datarootdir)/xvkbd/words.english EXTRA_DIST = XVkbd-common.h *.ad *.xbm xvkbd.man README ChangeLog Imakefile words.english diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/Makefile.in new/xvkbd-4.1/Makefile.in --- old/xvkbd-4.0/Makefile.in 2019-09-01 00:03:18.000000000 +0200 +++ new/xvkbd-4.1/Makefile.in 2020-05-04 06:45:55.000000000 +0200 @@ -988,11 +988,12 @@ [ which ad2c > /dev/null ] || ad2c XVkbd-common.ad > XVkbd-common.h install-data-hook: + [ -d $(DESTDIR)$(appdefaultdir) ] || mkdir $(DESTDIR)$(appdefaultdir) for file in *.ad; do \ - $(INSTALL_DATA) $$file $(appdefaultdir)/$${file%.ad}; \ + $(INSTALL_DATA) $$file $(DESTDIR)$(appdefaultdir)/$${file%.ad}; \ done - [ -d $(datarootdir)/xvkbd/ ] || mkdir $(datarootdir)/xvkbd/ - $(INSTALL_DATA) words.english $(datarootdir)/xvkbd/words.english + [ -d $(DESTDIR)$(datarootdir)/xvkbd/ ] || mkdir $(DESTDIR)$(datarootdir)/xvkbd/ + $(INSTALL_DATA) words.english $(DESTDIR)$(datarootdir)/xvkbd/words.english clean:: rm -f *~ *.bak diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/README new/xvkbd-4.1/README --- old/xvkbd-4.0/README 2019-09-01 00:17:45.000000000 +0200 +++ new/xvkbd-4.1/README 2020-05-04 06:44:07.000000000 +0200 @@ -360,7 +360,7 @@ - \{keysym} - the keysym keysym (e.g., \{Left}), which will be processed in more primitive matter and can also be used for modofier keys such as Control_L, Meta_L, etc.; also, - \{+keysym} and \{+keysym} will simulate press and release of + \{+keysym} and \{-keysym} will simulate press and release of the key, respectively - \Ddigit - delay digit * 100 ms @@ -559,10 +559,12 @@ Download Latest Official Release - http://t-sato.in.coocan.jp/xvkbd/xvkbd-4.0.tar.gz - - source of version 4.0 (2019-08-31) + http://t-sato.in.coocan.jp/xvkbd/xvkbd-4.1.tar.gz + - source of version 4.1 (2020-05-04) previous release + http://t-sato.in.coocan.jp/xvkbd/xvkbd-4.0.tar.gz + - source of version 4.0 (2019-08-31) http://t-sato.in.coocan.jp/xvkbd/xvkbd-3.9.tar.gz - source of version 3.9 (2018-02-25) http://t-sato.in.coocan.jp/xvkbd/xvkbd-3.8.tar.gz @@ -762,6 +764,14 @@ o Num Lock (and maybe other modifiers) on the physical keyboard may not work correctly when xvkbd is in use. + o After updated from xvkbd-3.x to xvkbd-4.x, you may need to reset + the completion dictionary by clicking "Default" button after + "Static Dictionary:" in the xvkbd's property panel. + + o Known Bug: xvkbd-4.0 can no longer read dictonary file without + frequency information, such as /usr/share/dict/words. I will + fix this problem in the next release. + Additional Informations ChangeLog http://t-sato.in.coocan.jp/xvkbd/ChangeLog @@ -785,4 +795,4 @@ The latest version of this software and more information about it may be available at http://t-sato.in.coocan.jp/xvkbd/. - 2019-09-01 xvkbd(1) + 2020-05-04 xvkbd(1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/XVkbd-common.ad new/xvkbd-4.1/XVkbd-common.ad --- old/xvkbd-4.0/XVkbd-common.ad 2019-08-31 09:12:11.000000000 +0200 +++ new/xvkbd-4.1/XVkbd-common.ad 2020-05-03 11:24:53.000000000 +0200 @@ -160,7 +160,7 @@ XVkbd*menu.quit.label: Quit XVkbd*menu.SmeBSB.rightMargin: 30 -XVkbd*props_panel.title: xvkbd - proprety +XVkbd*props_panel.title: xvkbd - property XVkbd*props_panel*defaultDistance: 10 XVkbd*props_panel*vertDistance: 5 XVkbd*props_panel*always_on_top.label: Always on Top? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/XVkbd-common.h new/xvkbd-4.1/XVkbd-common.h --- old/xvkbd-4.0/XVkbd-common.h 2019-08-31 09:12:20.000000000 +0200 +++ new/xvkbd-4.1/XVkbd-common.h 2020-05-03 11:24:56.000000000 +0200 @@ -135,7 +135,7 @@ "XVkbd*menu.close_display.label: Revert to Local Display", "XVkbd*menu.quit.label: Quit", "XVkbd*menu.SmeBSB.rightMargin: 30", -"XVkbd*props_panel.title: xvkbd - proprety", +"XVkbd*props_panel.title: xvkbd - property", "XVkbd*props_panel*defaultDistance: 10", "XVkbd*props_panel*vertDistance: 5", "XVkbd*props_panel*always_on_top.label: Always on Top?", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/configure new/xvkbd-4.1/configure --- old/xvkbd-4.0/configure 2019-08-31 10:42:52.000000000 +0200 +++ new/xvkbd-4.1/configure 2020-05-04 06:45:55.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for xvkbd 4.0. +# Generated by GNU Autoconf 2.69 for xvkbd 4.1. # # Report bugs to <[email protected]>. # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='xvkbd' PACKAGE_TARNAME='xvkbd' -PACKAGE_VERSION='4.0' -PACKAGE_STRING='xvkbd 4.0' +PACKAGE_VERSION='4.1' +PACKAGE_STRING='xvkbd 4.1' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1283,7 +1283,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures xvkbd 4.0 to adapt to many kinds of systems. +\`configure' configures xvkbd 4.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1353,7 +1353,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of xvkbd 4.0:";; + short | recursive ) echo "Configuration of xvkbd 4.1:";; esac cat <<\_ACEOF @@ -1459,7 +1459,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -xvkbd configure 4.0 +xvkbd configure 4.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1828,7 +1828,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by xvkbd $as_me 4.0, which was +It was created by xvkbd $as_me 4.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2691,7 +2691,7 @@ # Define the identity of the package. PACKAGE='xvkbd' - VERSION='4.0' + VERSION='4.1' cat >>confdefs.h <<_ACEOF @@ -5753,7 +5753,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by xvkbd $as_me 4.0, which was +This file was extended by xvkbd $as_me 4.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5819,7 +5819,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -xvkbd config.status 4.0 +xvkbd config.status 4.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/configure.ac new/xvkbd-4.1/configure.ac --- old/xvkbd-4.0/configure.ac 2019-08-31 10:42:46.000000000 +0200 +++ new/xvkbd-4.1/configure.ac 2020-05-04 06:45:46.000000000 +0200 @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT([xvkbd], [4.0], [[email protected]]) +AC_INIT([xvkbd], [4.1], [[email protected]]) AM_INIT_AUTOMAKE([foreign]) AC_CONFIG_SRCDIR([resources.h]) AC_CONFIG_HEADERS([config.h]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/resources.h new/xvkbd-4.1/resources.h --- old/xvkbd-4.0/resources.h 2019-08-31 07:57:55.000000000 +0200 +++ new/xvkbd-4.1/resources.h 2020-05-04 06:13:52.000000000 +0200 @@ -110,8 +110,9 @@ float private_dict_decay; Boolean insert_blank_after_completion; Boolean integrate_completion_panel; -} appres; +}; +extern struct appres_struct appres; /* FindWidget() is defined in findwidget.c */ extern Window FindWidget(Widget w, Window client, const char *name); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/xvkbd-4.0/xvkbd.c new/xvkbd-4.1/xvkbd.c --- old/xvkbd-4.0/xvkbd.c 2019-09-01 00:14:31.000000000 +0200 +++ new/xvkbd-4.1/xvkbd.c 2020-05-04 06:34:19.000000000 +0200 @@ -1,8 +1,8 @@ /* * xvkbd - Virtual Keyboard for X Window System - * (Version 4.0, 2019-08-31) + * (Version 4.1, 2020-05-04) * - * Copyright (C) 2000-2019 by Tom Sato <[email protected]> + * Copyright (C) 2000-2020 by Tom Sato <[email protected]> * http://t-sato.in.coocan.jp/xvkbd/ * * This program is free software; you can redistribute it and/or @@ -25,6 +25,7 @@ #include <time.h> #include <fnmatch.h> #include <limits.h> +#include <sys/time.h> #include <X11/Intrinsic.h> #include <X11/StringDefs.h> @@ -58,7 +59,7 @@ #endif #include "resources.h" -#define PROGRAM_NAME_WITH_VERSION "xvkbd (v4.0)" +#define PROGRAM_NAME_WITH_VERSION "xvkbd (v4.1)" #define PRIVATE_DICT ".xvkbd.words" @@ -461,6 +462,8 @@ /* * Global variables */ +struct appres_struct appres; + static char dict_filename[PATH_MAX] = ""; static char private_dict_weight_value[20] = "1"; @@ -1352,7 +1355,7 @@ static Boolean need_insert_blank = FALSE; #define MINIMUM_COMPLETION_PREFIX_LENGTH 2 -#define HASH_SIZE 100 +#define HASH_SIZE 1000 #define Hash(str) ((toupper(str[0]) * 26 + toupper(str[1])) % HASH_SIZE) static void UpdateCompetionDictionary(const char *str); @@ -1423,14 +1426,19 @@ if (stage != 0) fprintf(stderr, "%s: can't read dictionary file %s: %s\n", PROGRAM_NAME, dict_filename_p, strerror(errno)); } else { - if (appres.debug) fprintf(stderr, "xvkbd: ReadCompletionDictionary: reading %s\n", dict_filename_p); + struct timeval tv0, tv; + if (appres.debug) fprintf(stderr, "xvkbd: ReadCompletionDictionary: reading %s\n", dict_filename_p); + + gettimeofday(&tv0, NULL); while (fgets(str, sizeof(str) - 1, fp)) { - if (MINIMUM_COMPLETION_PREFIX_LENGTH + 1 < strlen(str)) { + int len = strlen(str); + if (MINIMUM_COMPLETION_PREFIX_LENGTH + 1 < len) { char *p; float str_frequency; str_frequency = 0; + str[len - 1] = 0; p = strrchr(str, ' '); if (p != NULL && isdigit(*(p + 1))) { str_frequency = atof(p + 1); @@ -1460,6 +1468,23 @@ n_completion_words++; } } + + gettimeofday(&tv, NULL); + if (300 < (1000 + (tv.tv_usec / 1000 - tv0.tv_usec / 1000)) % 1000) { + /* read huge dictionary file on the fly */ + tv0 = tv; + + XEvent event; + XtAppContext app_con; + + if (appres.debug) fprintf(stderr, "xvkbd: ReadCompletionDictionary: reading... %d\n", n_completion_words); + + app_con = XtWidgetToApplicationContext(toplevel); + while (XtAppPending(app_con) & XtIMXEvent) { + XtAppNextEvent(app_con, &event); + XtDispatchEvent(&event); + } + } } fclose(fp); } @@ -1681,7 +1706,7 @@ } } - ReadCompletionDictionary(); + /* ReadCompletionDictionary(); */ if (completion_entry != None) { snprintf(msg, sizeof(msg), "%d words in the dictionary", n_completion_words); @@ -4161,6 +4186,8 @@ if (open_keypad_panel) MenuSelected(None, "keypad"); + ReadCompletionDictionary(); + XtAppMainLoop(app_con); } exit(0);
