aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2008-03-03 23:18:36 +0000
committerWilmer van der Gaast <wilmer@gaast.net>2008-03-03 23:18:36 +0000
commit7f421d6b922837857d6aca342da314225023eb46 (patch)
tree46fc791329bc22af75e399d9d6901e46b548d0b4
parented3ae7e7d41f91917fc2ae92051c7c77c357fbab (diff)
BitlBee <= 1.0 didn't have "account set" and allowed one to delete an account
and re-create it with new login settings if necessary, without losing custom nicknames. Now, nicknames are connected to an account instead of just the protocol, and they're flushed together with the account. So I added a warning to make sure nobody accidentally loses any settings while just changing the password. This will probably go after a few releases, since it's slightly annoying.
-rw-r--r--query.c10
-rw-r--r--root_commands.c31
2 files changed, 37 insertions, 4 deletions
diff --git a/query.c b/query.c
index 99be2bee..6f9eb77f 100644
--- a/query.c
+++ b/query.c
@@ -139,12 +139,18 @@ void query_answer( irc_t *irc, query_t *q, int ans )
}
if( ans )
{
- imcb_log( q->ic, "Accepted: %s", q->question );
+ if( q->ic )
+ imcb_log( q->ic, "Accepted: %s", q->question );
+ else
+ irc_usermsg( irc, "Accepted: %s", q->question );
q->yes( NULL, q->data );
}
else
{
- imcb_log( q->ic, "Rejected: %s", q->question );
+ if( q->ic )
+ imcb_log( q->ic, "Rejected: %s", q->question );
+ else
+ irc_usermsg( irc, "Rejected: %s", q->question );
q->no( NULL, q->data );
}
q->data = NULL;
diff --git a/root_commands.c b/root_commands.c
index 2f542826..9a60b5af 100644
--- a/root_commands.c
+++ b/root_commands.c
@@ -203,6 +203,26 @@ static void cmd_drop( irc_t *irc, char **cmd )
}
}
+void cmd_account_del_yes( gpointer w, void *data )
+{
+ account_t *a = data;
+ irc_t *irc = a->irc;
+
+ if( a->ic )
+ {
+ irc_usermsg( irc, "Account is still logged in, can't delete" );
+ }
+ else
+ {
+ account_del( irc, a );
+ irc_usermsg( irc, "Account deleted" );
+ }
+}
+
+void cmd_account_del_no( gpointer w, void *data )
+{
+}
+
static void cmd_account( irc_t *irc, char **cmd )
{
account_t *a;
@@ -257,8 +277,15 @@ static void cmd_account( irc_t *irc, char **cmd )
}
else
{
- account_del( irc, a );
- irc_usermsg( irc, "Account deleted" );
+ char *msg;
+
+ msg = g_strdup_printf( "If you remove this account (%s(%s)), BitlBee will "
+ "also forget all your saved nicknames. If you want "
+ "to change your username/password, use the `account "
+ "set' command. Are you sure you want to delete this "
+ "account?", a->prpl->name, a->user );
+ query_add( irc, NULL, msg, cmd_account_del_yes, cmd_account_del_no, a );
+ g_free( msg );
}
}
else if( g_strcasecmp( cmd[1], "list" ) == 0 )