Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/twitter/twitter.c

    r7ceb6b2 raa2f575  
    465465                guint64 id;
    466466
    467                 if (cmd[1])
    468                         id = g_ascii_strtoull(cmd[1], NULL, 10);
    469                 else
    470                         id = td->last_status_id;
    471 
    472                 /* TODO: User feedback. */
    473                 if (id)
     467                if (cmd[1] == NULL)
     468                        twitter_status_destroy(ic, td->last_status_id);
     469                else if (sscanf(cmd[1], "%" G_GUINT64_FORMAT, &id) == 1) {
     470                        if (id < TWITTER_LOG_LENGTH && td->log)
     471                                id = td->log[id].id;
     472                       
    474473                        twitter_status_destroy(ic, id);
    475                 else
     474                } else
    476475                        twitter_msg(ic, "Could not undo last action");
    477476
     
    491490                guint64 id;
    492491
    493                 if ((bu = bee_user_by_handle(ic->bee, ic, cmd[1])) &&
     492                if (g_str_has_prefix(cmd[1], "#") &&
     493                    sscanf(cmd[1] + 1, "%" G_GUINT64_FORMAT, &id) == 1) {
     494                        if (id < TWITTER_LOG_LENGTH && td->log)
     495                                id = td->log[id].id;
     496                } else if ((bu = bee_user_by_handle(ic->bee, ic, cmd[1])) &&
    494497                    (tud = bu->data) && tud->last_id)
    495498                        id = tud->last_id;
    496                 else {
    497                         id = g_ascii_strtoull(cmd[1], NULL, 10);
     499                else if (sscanf(cmd[1], "%" G_GUINT64_FORMAT, &id) == 1){
    498500                        if (id < TWITTER_LOG_LENGTH && td->log)
    499501                                id = td->log[id].id;
     
    514516                guint64 id = 0;
    515517
    516                 if ((bu = bee_user_by_handle(ic->bee, ic, cmd[1])) &&
     518                if (g_str_has_prefix(cmd[1], "#") &&
     519                    sscanf(cmd[1] + 1, "%" G_GUINT64_FORMAT, &id) == 1 &&
     520                    (id < TWITTER_LOG_LENGTH) && td->log) {
     521                        bu = td->log[id].bu;
     522                        if (g_slist_find(ic->bee->users, bu))
     523                                id = td->log[id].id;
     524                        else
     525                                bu = NULL;
     526                } else if ((bu = bee_user_by_handle(ic->bee, ic, cmd[1])) &&
    517527                    (tud = bu->data) && tud->last_id) {
    518528                        id = tud->last_id;
     
    525535                                bu = NULL;
    526536                }
     537
    527538                if (!id || !bu) {
    528539                        twitter_msg(ic, "User `%s' does not exist or didn't "
Note: See TracChangeset for help on using the changeset viewer.