]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
add problem2str() convenience function to API
authorMichael Schroeder <mls@suse.de>
Mon, 23 Sep 2013 09:27:47 +0000 (11:27 +0200)
committerMichael Schroeder <mls@suse.de>
Mon, 23 Sep 2013 09:27:47 +0000 (11:27 +0200)
bindings/solv.i
src/libsolv.ver
src/problems.c
src/problems.h

index 77d744ad78393ccbbaf58d10cfd1b2749f6cf514..1f9259bbec942cbfd090adb760a435f530a29bec 100644 (file)
@@ -2400,12 +2400,7 @@ rb_eval_string(
   %rename("str") __str__;
 #endif
   const char *__str__() {
-    Id type, source, target, dep;
-    Id r = solver_findproblemrule($self->solv, $self->id);
-    if (!r)
-      return "";
-    type = solver_ruleinfo($self->solv, r, &source, &target, &dep);
-    return solver_problemruleinfo2str($self->solv, type, source, target, dep);
+    return solver_problem2str($self->solv, $self->id);
   }
 }
 
index a902591a0638c66cacc663c0c132a88f0c45ffc0..4be79f99354c08d76d31b94d9367d0c98302a965 100644 (file)
@@ -353,6 +353,7 @@ SOLV_1.0 {
                solver_printsolution;
                solver_printtrivial;
                solver_printwatches;
+               solver_problem2str;
                solver_problem_count;
                solver_problemruleinfo2str;
                solver_rule2job;
index fa2c31b37f6d46b2a768429972857d0839a06052..44d0c211e1f7343e8c1a3eaa3f164e973b3ef20d 100644 (file)
@@ -1103,6 +1103,18 @@ solver_problemruleinfo2str(Solver *solv, SolverRuleinfo type, Id source, Id targ
     }
 }
 
+/* convenience function */
+const char *
+solver_problem2str(Solver *solv, Id problem)
+{
+  Id type, source, target, dep;
+  Id r = solver_findproblemrule(solv, problem);
+  if (!r)
+    return "no problem rule?";
+  type = solver_ruleinfo(solv, r, &source, &target, &dep);
+  return solver_problemruleinfo2str(solv, type, source, target, dep);
+}
+
 const char *
 solver_solutionelement2str(Solver *solv, Id p, Id rp)
 {
index b2b7053365d9bb202911b62325c5400d8ffea060..e5b2279faedec6bdfeb968ee8ec977f06ecd14b0 100644 (file)
@@ -48,6 +48,7 @@ Id solver_findproblemrule(struct _Solver *solv, Id problem);
 void solver_findallproblemrules(struct _Solver *solv, Id problem, Queue *rules);
 
 extern const char *solver_problemruleinfo2str(struct _Solver *solv, SolverRuleinfo type, Id source, Id target, Id dep);
+extern const char *solver_problem2str(struct _Solver *solv, Id problem);
 extern const char *solver_solutionelement2str(struct _Solver *solv, Id p, Id rp);
 
 #ifdef __cplusplus