Update sdb (add -j), fix static link builds

This commit is contained in:
pancake 2014-04-03 04:04:03 +02:00
parent 9cb435b407
commit eb4373e325
3 changed files with 33 additions and 9 deletions

View File

@ -16,4 +16,4 @@ include ../../shlr/zip/deps.mk
include ../../shlr/gdb/deps.mk
clean::
rm -f $(BIN).$(EXT_SO)
rm -f $(BIN).$(EXT_SO) $(BIN).o

View File

@ -3154,7 +3154,7 @@ R_API void r_bin_add_import_from_anal (RBinJavaObj * bin, ut16 class_idx, ut16 n
}
RList* r_bin_java_get_imports(RBinJavaObj* bin) {
R_API RList* r_bin_java_get_imports(RBinJavaObj* bin) {
RList *ret = r_list_new ();
RBinImport *import = NULL;
RListIter *iter;
@ -3168,7 +3168,7 @@ RList* r_bin_java_get_imports(RBinJavaObj* bin) {
return ret;
}
RList* r_bin_java_get_symbols(RBinJavaObj* bin) {
R_API RList* r_bin_java_get_symbols(RBinJavaObj* bin) {
RListIter *iter = NULL, *iter_tmp=NULL;
RList *symbols = r_list_new ();
RBinSymbol *sym;

View File

@ -40,14 +40,31 @@ static void syncronize(int sig UNUSED) {
}
#endif
static int sdb_dump (const char *db, int qf) {
static int sdb_dump (const char *db, int json) {
char *k, *v;
const char *comma = "";
Sdb *s = sdb_new (NULL, db, 0);
if (!s) return 1;
sdb_config (s, SDB_OPTION_FS | SDB_OPTION_NOSTAMP);
sdb_dump_begin (s);
if (json)
printf ("{");
while (sdb_dump_dupnext (s, &k, &v)) {
printf ("%s=%s\n", k, v);
if (json) {
if (!strcmp (v, "true") || !strcmp (v, "false")) {
printf ("%s\"%s\":%s", comma, k, v);
} else
if (sdb_isnum (v)) {
printf ("%s\"%s\":%llu", comma, k, sdb_atoi (v));
} else
if (*v=='{' || *v=='[') {
printf ("%s\"%s\":%s", comma, k, v);
} else
printf ("%s\"%s\":\"%s\"", comma, k, v);
comma = ",";
} else {
printf ("%s=%s\n", k, v);
}
#if 0
if (qf && strchr (v, SDB_RS)) {
for (p=v; *p; p++)
@ -61,6 +78,8 @@ static int sdb_dump (const char *db, int qf) {
free (k);
free (v);
}
if (json)
printf ("}\n");
sdb_free (s);
return 0;
}
@ -85,7 +104,8 @@ static int createdb(const char *f) {
}
static void showusage(int o) {
printf ("usage: sdb [-hv|-d A B] [-|db] []|[.file]|[-=]|[-+][(idx)key[:json|=value] ..]\n");
printf ("usage: sdb [-hjv|-d A B] [-|db] "
"[.file]|[-=]|[-+][(idx)key[:json|=value] ..]\n");
exit (o);
}
@ -136,6 +156,12 @@ int main(int argc, const char **argv) {
} else
if (!strcmp (argv[1], "-v")) showversion ();
if (!strcmp (argv[1], "-h")) showusage (0);
if (!strcmp (argv[1], "-j")) {
if (argc>2)
return sdb_dump (argv[2], 1);
printf ("Missing database filename after -j\n");
return 1;
}
if (!strcmp (argv[1], "-")) {
argv[1] = "";
if (argc == 2) {
@ -149,9 +175,7 @@ int main(int argc, const char **argv) {
signal (SIGINT, terminate);
signal (SIGHUP, syncronize);
#endif
if (!strcmp (argv[2], "[]")) {
return sdb_dump (argv[1], 1);
} if (!strcmp (argv[2], "="))
if (!strcmp (argv[2], "="))
return createdb (argv[1]);
else if (!strcmp (argv[2], "-")) {
if ((s = sdb_new (NULL, argv[1], 0))) {