R_API int r_core_project_list(RCore *core, int mode) { RListIter *iter; RList *list; int isfirst = 1; char *foo, *path = r_file_abspath (r_config_get (core->config, "dir.projects")); if (!path) return 0; list = r_sys_dir (path); switch (mode) { case 'j': r_cons_printf ("["); r_list_foreach (list, iter, foo) { // todo. escape string if (r_core_is_project (core, foo)) { r_cons_printf ("%s\"%s\"", isfirst?"":",", foo); isfirst = 0; } } r_cons_printf ("]\n"); break; default: r_list_foreach (list, iter, foo) { if (r_core_is_project (core, foo)) r_cons_println (foo); } break; } r_list_free (list); free (path); return 0; }
R_API int r_core_project_list(RCore *core, int mode) { PJ *pj = NULL; RListIter *iter; RList *list; char *foo, *path = r_file_abspath (r_config_get (core->config, "dir.projects")); if (!path) { return 0; } list = r_sys_dir (path); switch (mode) { case 'j': pj = pj_new (); if (!pj) { break; } pj_a (pj); r_list_foreach (list, iter, foo) { // todo. escape string if (r_core_is_project (core, foo)) { pj_s (pj, foo); } } pj_end (pj); r_cons_printf ("%s\n", pj_string (pj)); pj_free (pj); break; default: r_list_foreach (list, iter, foo) { if (r_core_is_project (core, foo)) { r_cons_println (foo); } } break; } r_list_free (list); free (path); return 0; }