Mailinglist Archive: zypp-commit (185 mails)
| < Previous | Next > |
[zypp-commit] r10781 - in /trunk/sat-solver/bindings: python/tests/filelist.py solvable.i
- From: kkaempf@xxxxxxxxxxxxxxxx
- Date: Thu, 07 Aug 2008 12:43:08 -0000
- Message-id: <20080807124308.A2CCD2A0A5@xxxxxxxxxxxxxxxx>
Author: kkaempf
Date: Thu Aug 7 14:43:08 2008
New Revision: 10781
URL: http://svn.opensuse.org/viewcvs/zypp?rev=10781&view=rev
Log:
change attr_exists() to check for content also
Modified:
trunk/sat-solver/bindings/python/tests/filelist.py
trunk/sat-solver/bindings/solvable.i
Modified: trunk/sat-solver/bindings/python/tests/filelist.py
URL:
http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/python/tests/filelist.py?rev=10781&r1=10780&r2=10781&view=diff
==============================================================================
--- trunk/sat-solver/bindings/python/tests/filelist.py (original)
+++ trunk/sat-solver/bindings/python/tests/filelist.py Thu Aug 7 14:43:08 2008
@@ -21,8 +21,12 @@
i = 0
for solv in pool:
print "Filelist for ", i, " of ", pool.size(), solv
- a = solv.attr('solvable:filelist')
- print a
+ if solv.attr_exists('solvable:filelist'):
+ a = solv.attr('solvable:filelist')
+ print a
+ else:
+ print "-"
+
i = i + 1
# if a is None:
# break
Modified: trunk/sat-solver/bindings/solvable.i
URL:
http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/solvable.i?rev=10781&r1=10780&r2=10781&view=diff
==============================================================================
--- trunk/sat-solver/bindings/solvable.i (original)
+++ trunk/sat-solver/bindings/solvable.i Thu Aug 7 14:43:08 2008
@@ -172,6 +172,19 @@
}
+/*
+ * searching for existance of an attribute of a (x)solvable ('yield' in Ruby)
+ */
+
+static int
+xsolvable_attr_exists_callback( void *cbdata, Solvable *s, Repodata *data,
Repokey *key, KeyValue *kv )
+{
+ Swig_Type *result = (Swig_Type *)cbdata;
+ *result = Swig_True;
+ /* stop looping immediately */
+ return 0;
+}
+
%}
@@ -392,6 +405,7 @@
SV *attr_exists( const char *name )
#endif
{
+ Swig_Type result = Swig_False;
#if defined(SWIGRUBY)
char *name;
@@ -407,12 +421,19 @@
name = StringValuePtr( attrname );
#endif
- if (!name)
- return Swig_False;
- /* key existing in pool ? */
- Id key;
- key = str2id( $self->pool, name, 0);
- return (key == ID_NULL) ? Swig_False : Swig_True;
+ if (name) {
+ /* key existing in pool ? */
+ Id key;
+ key = str2id( $self->pool, name, 0);
+ if (key != ID_NULL) {
+ Solvable *s = xsolvable_solvable($self);
+ repo_lookup( s, key, xsolvable_attr_exists_callback, &result );
+ }
+ }
+#if defined(SWIGPYTHON)
+ Py_INCREF(result);
+#endif
+ return result;
}
}
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-commit+help@xxxxxxxxxxxx
Date: Thu Aug 7 14:43:08 2008
New Revision: 10781
URL: http://svn.opensuse.org/viewcvs/zypp?rev=10781&view=rev
Log:
change attr_exists() to check for content also
Modified:
trunk/sat-solver/bindings/python/tests/filelist.py
trunk/sat-solver/bindings/solvable.i
Modified: trunk/sat-solver/bindings/python/tests/filelist.py
URL:
http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/python/tests/filelist.py?rev=10781&r1=10780&r2=10781&view=diff
==============================================================================
--- trunk/sat-solver/bindings/python/tests/filelist.py (original)
+++ trunk/sat-solver/bindings/python/tests/filelist.py Thu Aug 7 14:43:08 2008
@@ -21,8 +21,12 @@
i = 0
for solv in pool:
print "Filelist for ", i, " of ", pool.size(), solv
- a = solv.attr('solvable:filelist')
- print a
+ if solv.attr_exists('solvable:filelist'):
+ a = solv.attr('solvable:filelist')
+ print a
+ else:
+ print "-"
+
i = i + 1
# if a is None:
# break
Modified: trunk/sat-solver/bindings/solvable.i
URL:
http://svn.opensuse.org/viewcvs/zypp/trunk/sat-solver/bindings/solvable.i?rev=10781&r1=10780&r2=10781&view=diff
==============================================================================
--- trunk/sat-solver/bindings/solvable.i (original)
+++ trunk/sat-solver/bindings/solvable.i Thu Aug 7 14:43:08 2008
@@ -172,6 +172,19 @@
}
+/*
+ * searching for existance of an attribute of a (x)solvable ('yield' in Ruby)
+ */
+
+static int
+xsolvable_attr_exists_callback( void *cbdata, Solvable *s, Repodata *data,
Repokey *key, KeyValue *kv )
+{
+ Swig_Type *result = (Swig_Type *)cbdata;
+ *result = Swig_True;
+ /* stop looping immediately */
+ return 0;
+}
+
%}
@@ -392,6 +405,7 @@
SV *attr_exists( const char *name )
#endif
{
+ Swig_Type result = Swig_False;
#if defined(SWIGRUBY)
char *name;
@@ -407,12 +421,19 @@
name = StringValuePtr( attrname );
#endif
- if (!name)
- return Swig_False;
- /* key existing in pool ? */
- Id key;
- key = str2id( $self->pool, name, 0);
- return (key == ID_NULL) ? Swig_False : Swig_True;
+ if (name) {
+ /* key existing in pool ? */
+ Id key;
+ key = str2id( $self->pool, name, 0);
+ if (key != ID_NULL) {
+ Solvable *s = xsolvable_solvable($self);
+ repo_lookup( s, key, xsolvable_attr_exists_callback, &result );
+ }
+ }
+#if defined(SWIGPYTHON)
+ Py_INCREF(result);
+#endif
+ return result;
}
}
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-commit+help@xxxxxxxxxxxx
| < Previous | Next > |