1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-09-22 19:45:54 -04:00

Merge branch 'master' into symlinks

This commit is contained in:
James Booth 2014-10-26 20:53:33 +00:00
commit d7911664e1
9 changed files with 113 additions and 31 deletions

View File

@ -1,3 +1,37 @@
Test all freetext args
Make form editing commands less verbose
Check /help groupings (add new commands)
Update inline help
Build with latest libstrophe
Tag 0.4.5.rc1
Announce release candidate at mailing list
Test with valgrind using new commands
Update website help
Tag libstrophe release 0.8.7
https://github.com/strophe/libstrophe/milestones/0.8.7
Build profanity archives for 0.4.5
https://github.com/boothj5/profanity/milestones/0.4.5
Test on:
Cygwin
Ubuntu
Debian
Fedora
OpenSuse
OS X
Notify (libstrophe + profanity):
Arch
Debian
Gentoo
Brew
Announce:
Mailing list
Google+
Twitter
Softpedia
Release website changes

View File

@ -207,11 +207,14 @@ static struct cmd_t command_defs[] =
{ "/info",
cmd_info, parse_args, 0, 1, NULL,
{ "/info [contact|nick]", "Show basic information about a contact, or room member.",
{ "/info [contact|nick]", "Show basic information about a contact, room, or room member.",
{ "/info [contact|nick]",
"--------------------",
"Show information including current subscription status and summary information for each connected resource.",
"Show basic information about a contact, room, or room member.",
"If in the console, a contact must be specified.",
"If in a chat window the parameter is not required, the current recipient will be used.",
"If in a chat room, providing no arguments will display information about the room.",
"If in a chat room, supplying a nick will show information about the occupant.",
"",
"Example : /info mybuddy@chat.server.org",
"Example : /info kai",
@ -381,9 +384,9 @@ static struct cmd_t command_defs[] =
{ "/form",
cmd_form, parse_args, 1, 2, NULL,
{ "/form show|submit|cancel|help", "Form handling.",
{ "/form show|submit|cancel|help",
"-----------------------------",
{ "/form show|submit|cancel|help [tag]", "Form handling.",
{ "/form show|submit|cancel|help [tag]",
"-----------------------------------",
"show - Show the current form.",
"submit - Submit the current form.",
"cancel - Cancel changes to the current form.",
@ -551,10 +554,7 @@ static struct cmd_t command_defs[] =
{ "/privileges on|off", "Show occupant privileges in chat rooms.",
{ "/privileges on|off",
"---------------------------",
"If enabled:",
"The room roster will be broken down my role.",
"An occupants role and affiliation will be shown when they join a room.",
"Changes to occupant privileges will be shown in the chat room.",
"If enabled the room roster will be broken down my role, and role information will be showin in the room.",
NULL } } },
{ "/beep",
@ -1194,6 +1194,8 @@ cmd_init(void)
account_clear_ac = autocomplete_new();
autocomplete_add(account_clear_ac, "password");
autocomplete_add(account_clear_ac, "server");
autocomplete_add(account_clear_ac, "port");
autocomplete_add(account_clear_ac, "otr");
close_ac = autocomplete_new();

View File

@ -362,6 +362,14 @@ cmd_account(gchar **args, struct cmd_help_t help)
accounts_clear_password(account_name);
cons_show("Removed password for account %s", account_name);
cons_show("");
} else if (strcmp(property, "server") == 0) {
accounts_clear_server(account_name);
cons_show("Removed server for account %s", account_name);
cons_show("");
} else if (strcmp(property, "port") == 0) {
accounts_clear_port(account_name);
cons_show("Removed port for account %s", account_name);
cons_show("");
} else if (strcmp(property, "otr") == 0) {
accounts_clear_otr(account_name);
cons_show("OTR policy removed for account %s", account_name);
@ -1827,6 +1835,7 @@ cmd_form_field(char *tag, gchar **args)
} else {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
}
break;
@ -1837,6 +1846,7 @@ cmd_form_field(char *tag, gchar **args)
if (value == NULL) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
} else {
form_set_value(form, tag, value);
ui_current_print_line("Field updated...");
@ -1848,6 +1858,7 @@ cmd_form_field(char *tag, gchar **args)
if ((value == NULL) || !form_field_contains_option(form, tag, value)) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
} else {
form_set_value(form, tag, value);
ui_current_print_line("Field updated...");
@ -1863,11 +1874,13 @@ cmd_form_field(char *tag, gchar **args)
if ((g_strcmp0(cmd, "add") != 0) && (g_strcmp0(cmd, "remove"))) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
break;
}
if (value == NULL) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
break;
}
if (g_strcmp0(cmd, "add") == 0) {
@ -1880,11 +1893,13 @@ cmd_form_field(char *tag, gchar **args)
if (!g_str_has_prefix(value, "val")) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
break;
}
if (strlen(value) < 4) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
break;
}
@ -1892,6 +1907,7 @@ cmd_form_field(char *tag, gchar **args)
if ((index < 1) || (index > form_get_value_count(form, tag))) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
break;
}
@ -1912,11 +1928,13 @@ cmd_form_field(char *tag, gchar **args)
if ((g_strcmp0(cmd, "add") != 0) && (g_strcmp0(cmd, "remove"))) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
break;
}
if (value == NULL) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
break;
}
if (g_strcmp0(args[0], "add") == 0) {
@ -1932,6 +1950,7 @@ cmd_form_field(char *tag, gchar **args)
} else {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
}
break;
}
@ -1948,6 +1967,7 @@ cmd_form_field(char *tag, gchar **args)
} else {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
}
}
break;
@ -1959,11 +1979,13 @@ cmd_form_field(char *tag, gchar **args)
if ((g_strcmp0(cmd, "add") != 0) && (g_strcmp0(cmd, "remove"))) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
break;
}
if (value == NULL) {
ui_current_print_line("Invalid command, usage:");
ui_show_form_field_help(current, form, tag);
ui_current_print_line("");
break;
}
if (g_strcmp0(args[0], "add") == 0) {
@ -2369,13 +2391,12 @@ cmd_room(gchar **args, struct cmd_help_t help)
iq_confirm_instant_room(room);
muc_set_requires_config(room, FALSE);
win_save_print(window, '!', NULL, 0, COLOUR_ROOMINFO, "", "Room unlocked.");
cons_show("Room unlocked: %s (%d)", room, ui_index);
return TRUE;
}
}
if (g_strcmp0(args[0], "destroy") == 0) {
iq_destroy_instant_room(room);
iq_destroy_room(room);
return TRUE;
}

View File

@ -440,6 +440,24 @@ _accounts_clear_password(const char * const account_name)
}
}
static void
_accounts_clear_server(const char * const account_name)
{
if (accounts_account_exists(account_name)) {
g_key_file_remove_key(accounts, account_name, "server", NULL);
_save_accounts();
}
}
static void
_accounts_clear_port(const char * const account_name)
{
if (accounts_account_exists(account_name)) {
g_key_file_remove_key(accounts, account_name, "port", NULL);
_save_accounts();
}
}
static void
_accounts_clear_otr(const char * const account_name)
{
@ -869,6 +887,8 @@ accounts_init_module(void)
accounts_set_priority_all = _accounts_set_priority_all;
accounts_get_priority_for_presence_type = _accounts_get_priority_for_presence_type;
accounts_clear_password = _accounts_clear_password;
accounts_clear_server = _accounts_clear_server;
accounts_clear_port = _accounts_clear_port;
accounts_clear_otr = _accounts_clear_otr;
accounts_add_otr_policy = _accounts_add_otr_policy;
}

View File

@ -78,6 +78,8 @@ void (*accounts_set_priority_all)(const char * const account_name, const gint va
gint (*accounts_get_priority_for_presence_type)(const char * const account_name,
resource_presence_t presence_type);
void (*accounts_clear_password)(const char * const account_name);
void (*accounts_clear_server)(const char * const account_name);
void (*accounts_clear_port)(const char * const account_name);
void (*accounts_clear_otr)(const char * const account_name);
void (*accounts_add_otr_policy)(const char * const account_name, const char * const contact_jid, const char * const policy);

View File

@ -101,19 +101,14 @@ A million repetitions of "a"
#include "p_sha1.h"
static uint32_t host_to_be(uint32_t i);
void P_SHA1_Transform(uint32_t state[5], const uint8_t buffer[64]);
#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
/* blk0() and blk() perform the initial expand. */
/* I got the idea of expanding during the round function from SSLeay */
/* FIXME: can we do this in an endian-proof way? */
#ifdef WORDS_BIGENDIAN
#define blk0(i) block->l[i]
#else
#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
|(rol(block->l[i],8)&0x00FF00FF))
#endif
#define blk0(i) (block->l[i] = host_to_be(block->l[i]))
#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
^block->l[(i+2)&15]^block->l[i&15],1))
@ -138,6 +133,15 @@ void SHAPrintContext(P_P_SHA1_CTX *context, char *msg){
}
#endif /* VERBOSE */
static uint32_t host_to_be(uint32_t i)
{
static const union {
unsigned u;
unsigned char c;
} check = {1};
return check.c ? (rol(i,24)&0xFF00FF00)|(rol(i,8)&0x00FF00FF) : i;
}
/* Hash a single 512-bit block. This is the core of the algorithm. */
void P_SHA1_Transform(uint32_t state[5], const uint8_t buffer[64])
{

View File

@ -1824,7 +1824,7 @@ _ui_room_requires_config(const char * const room_jid)
win_save_print(window, '-', NULL, 0, 0, "", "");
win_save_vprint(window, '!', NULL, 0, COLOUR_ROOMINFO, "",
"Room requires configuration.");
"Room locked, requires configuration.");
win_save_vprint(window, '!', NULL, 0, COLOUR_ROOMINFO, "",
"Use '/room accept' to accept the defaults");
win_save_vprint(window, '!', NULL, 0, COLOUR_ROOMINFO, "",
@ -1841,8 +1841,6 @@ _ui_room_requires_config(const char * const room_jid)
} else {
status_bar_new(num);
}
cons_show("Room created, locked: %s (%d)", room_jid, ui_index);
}
}
@ -2558,7 +2556,8 @@ static void
_ui_show_form(ProfWin *window, const char * const room, DataForm *form)
{
if (form->title != NULL) {
win_save_print(window, '-', NULL, 0, 0, "", form->title);
win_save_print(window, '-', NULL, NO_EOL, 0, "", "Form title: ");
win_save_print(window, '-', NULL, NO_DATE, 0, "", form->title);
} else {
win_save_vprint(window, '-', NULL, 0, 0, "", "Configuration for room %s.", room);
}
@ -2609,9 +2608,9 @@ _ui_handle_room_configuration(const char * const room, DataForm *form)
ui_show_form(window, room, form);
win_save_print(window, '-', NULL, 0, 0, "", "");
win_save_print(window, '-', NULL, 0, COLOUR_ROOMINFO, "", "Use '/form submit' to save changes.");
win_save_print(window, '-', NULL, 0, COLOUR_ROOMINFO, "", "Use '/form cancel' to cancel changes.");
win_save_print(window, '-', NULL, 0, COLOUR_ROOMINFO, "", "See '/form help' for more information.");
win_save_print(window, '-', NULL, 0, 0, "", "Use '/form submit' to save changes.");
win_save_print(window, '-', NULL, 0, 0, "", "Use '/form cancel' to cancel changes.");
win_save_print(window, '-', NULL, 0, 0, "", "See '/form help' for more information.");
win_save_print(window, '-', NULL, 0, 0, "", "");
}

View File

@ -234,7 +234,7 @@ _iq_confirm_instant_room(const char * const room_jid)
}
static void
_iq_destroy_instant_room(const char * const room_jid)
_iq_destroy_room(const char * const room_jid)
{
xmpp_conn_t * const conn = connection_get_conn();
xmpp_ctx_t * const ctx = connection_get_ctx();
@ -1241,7 +1241,7 @@ iq_init_module(void)
iq_send_software_version = _iq_send_software_version;
iq_set_autoping = _iq_set_autoping;
iq_confirm_instant_room = _iq_confirm_instant_room;
iq_destroy_instant_room = _iq_destroy_instant_room;
iq_destroy_room = _iq_destroy_room;
iq_send_ping = _iq_send_ping;
iq_request_room_config_form = _iq_request_room_config_form;
iq_room_config_cancel = _iq_room_config_cancel;

View File

@ -185,7 +185,7 @@ void (*iq_disco_info_request)(gchar *jid);
void (*iq_disco_items_request)(gchar *jid);
void (*iq_set_autoping)(int seconds);
void (*iq_confirm_instant_room)(const char * const room_jid);
void (*iq_destroy_instant_room)(const char * const room_jid);
void (*iq_destroy_room)(const char * const room_jid);
void (*iq_request_room_config_form)(const char * const room_jid);
void (*iq_submit_room_config)(const char * const room, DataForm *form);
void (*iq_room_config_cancel)(const char * const room_jid);