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

< Previous Next >
This Thread
  • No further messages