bool test_r_str_rchr(void) { const char* test = "raddddare2d"; const char* out = r_str_rchr (test, NULL, '2'); mu_assert_streq (out, "2d", "pointer to last p in range in raddddare2d"); out = r_str_rchr (test, NULL, 'p'); if (out) { mu_assert ("non NULL value returned", 0); } out = test + 9; out = r_str_rchr (test, out, 'd'); mu_assert_streq (out, "dare2d", "pointer to last d in range in raddddare2d"); out = test + strlen (test); out = r_str_rchr (test, out, 'p'); if (out) { mu_assert ("non NULL value of out", 0); } mu_end; }
static int xrefs_list_cb_rad(RAnal *anal, const char *k, const char *v) { ut64 dst, src = r_num_get (NULL, v); if (!strncmp (k, "ref.", 4)) { const char *p = r_str_rchr (k, NULL, '.'); if (p) { dst = r_num_get (NULL, p + 1); anal->cb_printf ("ax 0x%"PFMT64x" 0x%"PFMT64x"\n", src, dst); } } return 1; }
static void handle_friend_message( Tox *tox, uint32_t friend_number, TOX_MESSAGE_TYPE type, const uint8_t *message, size_t length, void *user_data) { TOX_ERR_FRIEND_SEND_MESSAGE err_send; eprintf ("<%d> %s\n", friend_number, message); if (*message != ':') { return; } tox_self_set_typing(tox, friend_number, true, NULL); char *cmd = r_str_ndup (message, length); char *res = r_core_cmd_str (core, cmd + 1); if (res && *res) { const int MAXK = 1280; int bak = 0; int k = 0; char *r = res; while (1) { if (strlen (r) > MAXK) { k = MAXK; bak = r[k]; r[k] = 0; char *nl = r_str_rchr (r, NULL, '\n'); if (nl) { r[k] = bak; bak = *nl; *nl = 0; k = nl - r; } } else { bak = 0; } tox_friend_send_message (tox, friend_number, type, r, strlen (r), &err_send); // tox_friend_send_message (tox, friend_number, type, message, length, &err_send); if (err_send != TOX_ERR_FRIEND_SEND_MESSAGE_OK) { fprintf(stderr, "unable to send message back to friend %d: %d\n", friend_number, err_send); } if (bak) { r[k] = bak; r += k; } else { break; } } } else { eprintf ("Invalid command?\n"); } free (res); free (cmd); tox_self_set_typing(tox, friend_number, false, NULL); }
static bool xrefs_list_cb_json(RAnal *anal, bool is_first, const char *k, const char *v) { ut64 dst, src = r_num_get (NULL, v); if (strlen (k) > 8) { const char *p = r_str_rchr (k, NULL, '.'); if (p) { if (is_first) { is_first = false; } else { anal->cb_printf (","); } dst = r_num_get (NULL, p + 1); sscanf (p + 1, "0x%"PFMT64x, &dst); anal->cb_printf ("\"%"PFMT64d"\":%"PFMT64d, src, dst); } } return is_first; }