rpms/imsettings/devel imsettings-update-info.patch, NONE, 1.1 imsettings.spec, 1.40, 1.41
Akira TAGOH
tagoh at fedoraproject.org
Tue Sep 15 08:03:59 UTC 2009
Author: tagoh
Update of /cvs/pkgs/rpms/imsettings/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv5847
Modified Files:
imsettings.spec
Added Files:
imsettings-update-info.patch
Log Message:
* Tue Sep 15 2009 Akira TAGOH <tagoh at redhat.com> - 0.107.3-4
- Update the IM information as needed if the configuration file is written
in the script. (#523349)
imsettings-update-info.patch:
data/xinputinfo.sh.in | 18 +++++++++++++++
imsettings/imsettings-info.c | 51 +++++++++++++++++++++++++++++++++++++++++--
imsettings/imsettings-info.h | 1
3 files changed, 68 insertions(+), 2 deletions(-)
--- NEW FILE imsettings-update-info.patch ---
2009-09-15 Akira TAGOH <tagoh at redhat.com>
* data/xinputinfo.sh.in: output the value if the configuration is
the script or not.
* tests/main.c (init): set IMSETTINGS_HELPER_PATH to xinputinfo.sh
working without the real installation.
* tests/rhbz_523349.c: new testcase.
* imsettings/imsettings-info.c (imsettings_info_notify_properties):
Add a reference of the environment variable to get the unit testing
working.
(_IMSETTINGS_DEFUNC_PROPERTY): update the variables before looking
if the configuration is based on the script. (rhbz#523349)
(imsettings_info_is_script): new.
Index: imsettings/imsettings-info.c
===================================================================
--- imsettings/imsettings-info.c (リビジョン 342)
+++ imsettings/imsettings-info.c (リビジョン 343)
@@ -74,6 +74,7 @@
gboolean is_system_default;
gboolean is_user_default;
gboolean is_xim;
+ gboolean is_script;
} IMSettingsInfoPrivate;
enum {
@@ -94,6 +95,7 @@
PROP_SHORT_DESC,
PROP_LONG_DESC,
PROP_ICON,
+ PROP_IS_SCRIPT,
PROP_IS_SYSTEM_DEFAULT,
PROP_IS_USER_DEFAULT,
PROP_IS_XIM,
@@ -181,6 +183,7 @@
"SHORT_DESC=",
"LONG_DESC=",
"ICON=",
+ "IMSETTINGS_IS_SCRIPT=",
NULL
};
static const gchar *properties[] = {
@@ -197,6 +200,7 @@
"short_desc",
"long_desc",
"icon",
+ "is_script",
NULL
};
gint i;
@@ -204,7 +208,7 @@
guint prop;
struct stat st;
IMSettingsInfoPrivate *priv = IMSETTINGS_INFO_GET_PRIVATE (object);
- gchar *lang;
+ gchar *lang, *path;
cmd = g_string_new(NULL);
str = g_string_new(NULL);
@@ -212,7 +216,13 @@
lang = g_strdup_printf("LANG=%s ", priv->language);
else
lang = g_strdup("");
- xinputinfo = g_build_filename(XINPUTINFO_PATH, "xinputinfo.sh", NULL);
+ if (g_getenv("IMSETTINGS_HELPER_PATH") != NULL) {
+ path = g_strdup(g_getenv("IMSETTINGS_HELPER_PATH"));
+ } else {
+ path = g_strdup(XINPUTINFO_PATH);
+ }
+ xinputinfo = g_build_filename(path, "xinputinfo.sh", NULL);
+ g_free(path);
g_string_append_printf(cmd, "%s. %s %s", lang, xinputinfo, filename);
g_free(xinputinfo);
@@ -268,6 +278,14 @@
properties[prop - (PROP_GTK_IMM - PROP_0)], str->str,
NULL);
break;
+ case PROP_IS_SCRIPT:
+ g_object_set(object,
+ "is_script",
+ (g_ascii_strcasecmp(str->str, "true") == 0 ||
+ g_ascii_strcasecmp(str->str, "yes") == 0 ||
+ g_ascii_strcasecmp(str->str, "1") == 0),
+ NULL);
+ break;
case PROP_IGNORE_FLAG:
g_object_set(object,
"ignore",
@@ -412,6 +430,9 @@
}
} G_STMT_END;
break;
+ case PROP_IS_SCRIPT:
+ _set_bool_prop(is_script);
+ break;
case PROP_IS_SYSTEM_DEFAULT:
_set_bool_prop(is_system_default);
break;
@@ -489,6 +510,9 @@
case PROP_ICON:
_get_str_prop(icon_file);
break;
+ case PROP_IS_SCRIPT:
+ _get_bool_prop(is_script);
+ break;
case PROP_IS_SYSTEM_DEFAULT:
_get_bool_prop(is_system_default);
break;
@@ -735,6 +759,12 @@
_("Icon filename to be used on GUI"),
ICONDIR G_DIR_SEPARATOR_S "imsettings-unknown.png",
G_PARAM_READWRITE));
+ g_object_class_install_property(object_class, PROP_IS_SCRIPT,
+ g_param_spec_boolean("is_script",
+ "Script",
+ "Whether or not the configuration is written in the shell script",
+ FALSE,
+ G_PARAM_READWRITE));
g_object_class_install_property(object_class, PROP_IS_SYSTEM_DEFAULT,
g_param_spec_boolean("is_system_default",
_("System Default"),
@@ -807,6 +837,11 @@
g_return_val_if_fail (IMSETTINGS_IS_INFO (info), (_v_)); \
\
priv = IMSETTINGS_INFO_GET_PRIVATE (info); \
+ if (imsettings_info_is_script(info)) { \
+ /* reload the configuration before referencing. */ \
+ g_object_set(info, "filename", \
+ priv->filename, NULL); \
+ } \
\
return priv->_m_; \
}
@@ -863,6 +898,18 @@
}
gboolean
+imsettings_info_is_script(IMSettingsInfo *info)
+{
+ IMSettingsInfoPrivate *priv;
+
+ g_return_val_if_fail (IMSETTINGS_IS_INFO (info), FALSE);
+
+ priv = IMSETTINGS_INFO_GET_PRIVATE (info);
+
+ return priv->is_script;
+}
+
+gboolean
imsettings_info_is_system_default(IMSettingsInfo *info)
{
IMSettingsInfoPrivate *priv;
Index: imsettings/imsettings-info.h
===================================================================
--- imsettings/imsettings-info.h (リビジョン 342)
+++ imsettings/imsettings-info.h (リビジョン 343)
@@ -66,6 +66,7 @@
const gchar *imsettings_info_get_long_desc (IMSettingsInfo *info);
const gchar *imsettings_info_get_icon_file (IMSettingsInfo *info);
const gchar *imsettings_info_get_supported_language(IMSettingsInfo *info);
+gboolean imsettings_info_is_script (IMSettingsInfo *info);
gboolean imsettings_info_is_visible (IMSettingsInfo *info);
gboolean imsettings_info_is_system_default (IMSettingsInfo *info);
gboolean imsettings_info_is_user_default (IMSettingsInfo *info);
Index: data/xinputinfo.sh.in
===================================================================
--- data/xinputinfo.sh.in (リビジョン 342)
+++ data/xinputinfo.sh.in (リビジョン 343)
@@ -20,6 +20,14 @@
# Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
+function is_script() {
+ if [ "x$(sed -re '/^[ ]?*[a-zA-Z0-9_]+=.*/{d};/[ ]?*#.*/{d}' $1)" = "x" ]; then
+ return 1
+ else
+ return 0
+ fi
+}
+
USER_XINPUTRC="$HOME/.xinputrc"
SYS_XINPUTRC="@XINPUTRC_PATH@/xinputrc"
@@ -42,13 +50,16 @@
if [ $# -gt 0 ]; then
source $1
+ IMSETTINGS_FILENAME=$1
else
[ -z "$IMSETTINGS_DISABLE_USER_XINPUTRC" ] && IMSETTINGS_DISABLE_USER_XINPUTRC=no
if [ -r "$USER_XINPUTRC" -a "x$IMSETTINGS_DISABLE_USER_XINPUTRC" = "xno" ]; then
source "$USER_XINPUTRC"
+ IMSETTINGS_FILENAME=$USER_XINPUTRC
elif [ -r "$SYS_XINPUTRC" ]; then
source "$SYS_XINPUTRC"
+ IMSETTINGS_FILENAME=$SYS_XINPUTRC
fi
fi
@@ -58,6 +69,12 @@
# For backward compatibility
[ -z "$IMSETTINGS_IGNORE_ME" ] && IMSETTINGS_IGNORE_ME=$IM_CHOOSER_IGNORE_ME
+if is_script $IMSETTINGS_FILENAME; then
+ IMSETTINGS_IS_SCRIPT=1
+else
+ IMSETTINGS_IS_SCRIPT=0
+fi
+
cat <<EOF
AUXILIARY_PROGRAM=$AUXILIARY_PROGRAM
AUXILIARY_ARGS="`echo $AUXILIARY_ARGS | sed -e "s/\\\\([\\"']\\\\)/\\\\\\\\\\\\1/g"`"
@@ -72,4 +89,5 @@
XIM=$XIM
XIM_PROGRAM=$XIM_PROGRAM
XIM_ARGS="`echo $XIM_ARGS | sed -e "s/\\\\([\\"']\\\\)/\\\\\\\\\\\\1/g"`"
+IMSETTINGS_IS_SCRIPT=$IMSETTINGS_IS_SCRIPT
EOF
Index: imsettings.spec
===================================================================
RCS file: /cvs/pkgs/rpms/imsettings/devel/imsettings.spec,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -p -r1.40 -r1.41
--- imsettings.spec 11 Sep 2009 07:23:39 -0000 1.40
+++ imsettings.spec 15 Sep 2009 08:03:57 -0000 1.41
@@ -1,6 +1,6 @@
Name: imsettings
Version: 0.107.3
-Release: 3%{?dist}
+Release: 4%{?dist}
License: LGPLv2+
URL: http://code.google.com/p/imsettings/
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -20,6 +20,7 @@ Patch0: imsettings-constraint-of-langua
Patch1: imsettings-disable-xim.patch
Patch2: imsettings-unref-notify.patch
Patch3: imsettings-unref-later.patch
+Patch4: imsettings-update-info.patch
Summary: Delivery framework for general Input Method configuration
Group: Applications/System
@@ -90,6 +91,7 @@ This package contains a plugin to get th
%patch1 -p1 -b .1-xim
%patch2 -p0 -b .2-unref
%patch3 -p0 -b .3-zombie
+%patch4 -p0 -b .4-update-info
%build
%configure \
@@ -215,6 +217,10 @@ fi
%changelog
+* Tue Sep 15 2009 Akira TAGOH <tagoh at redhat.com> - 0.107.3-4
+- Update the IM information as needed if the configuration file is written
+ in the script. (#523349)
+
* Fri Sep 11 2009 Akira TAGOH <tagoh at redhat.com> - 0.107.3-3
- Fix keeping IM process running as the defunct process. (#522689)
More information about the fedora-extras-commits
mailing list