Extract Subversion ignore data.
[catacomb-perl] / keystuff.c
index beb9a74..73e850f 100644 (file)
@@ -64,13 +64,29 @@ SV *keyerr(int rc)
   SV *sv;
   if (!rc)
     return (&PL_sv_yes);
-  sv = perl_get_sv("Catacomb::Key::error", TRUE);
+  sv = perl_get_sv("Catacomb::keyerror", TRUE);
   sv_setiv(sv, rc);
   sv_setpv(sv, key_strerror(rc));
   SvIOK_on(sv);
   return (&PL_sv_undef);
 }
 
+const char *keydata_type(Key_Data *kd)
+{
+  const char *cls;
+  if (!kd) return (0);
+  switch (kd->e & KF_ENCMASK) {
+    case KENC_BINARY: cls = "Catacomb::Key::Data::Binary"; break;
+    case KENC_ENCRYPT: cls = "Catacomb::Key::Data::Encrypted"; break;
+    case KENC_EC: cls = "Catacomb::Key::Data::EC"; break;
+    case KENC_STRING: cls = "Catacomb::Key::Data::String"; break;
+    case KENC_STRUCT: cls = "Catacomb::Key::Data::Structured"; break;
+    case KENC_MP: cls = "Catacomb::Key::Data::MP"; break;
+    default: abort();
+  }
+  return (cls);
+}
+
 void keyfile_dec(Key_File *kf)
 {
   kf->ref--;
@@ -80,6 +96,4 @@ void keyfile_dec(Key_File *kf)
   }
 }
 
-
-
 /*----- That's all, folks -------------------------------------------------*/