mirror of
https://git.jabber.space/devs/cproof.git
synced 2026-07-18 20:26:21 +00:00
Add cmd_autocomplete.c
This commit is contained in:
2917
src/command/cmd_autocomplete.c
Normal file
2917
src/command/cmd_autocomplete.c
Normal file
File diff suppressed because it is too large
Load Diff
57
src/command/cmd_autocomplete.h
Normal file
57
src/command/cmd_autocomplete.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* cmd_autocomplete.h
|
||||
*
|
||||
* Copyright (C) 2012 - 2016 James Booth <boothj5@gmail.com>
|
||||
*
|
||||
* This file is part of Profanity.
|
||||
*
|
||||
* Profanity is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Profanity is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Profanity. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give permission to
|
||||
* link the code of portions of this program with the OpenSSL library under
|
||||
* certain conditions as described in each individual source file, and
|
||||
* distribute linked combinations including the two.
|
||||
*
|
||||
* You must obey the GNU General Public License in all respects for all of the
|
||||
* code used other than OpenSSL. If you modify file(s) with this exception, you
|
||||
* may extend this exception to your version of the file(s), but you are not
|
||||
* obligated to do so. If you do not wish to do so, delete this exception
|
||||
* statement from your version. If you delete this exception statement from all
|
||||
* source files in the program, then also delete it here.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "config/preferences.h"
|
||||
#include "command/commands.h"
|
||||
|
||||
void cmd_ac_init(void);
|
||||
void cmd_ac_uninit(void);
|
||||
|
||||
void cmd_ac_add(const char *const value);
|
||||
void cmd_ac_add_help(const char *const value);
|
||||
void cmd_ac_add_cmd(Command *command);
|
||||
void cmd_ac_add_alias(ProfAlias *alias);
|
||||
void cmd_ac_add_alias_value(char *value);
|
||||
|
||||
void cmd_ac_remove(const char *const value);
|
||||
void cmd_ac_remove_alias_value(char *value);
|
||||
|
||||
gboolean cmd_ac_exists(char *cmd);
|
||||
|
||||
void cmd_ac_add_form_fields(DataForm *form);
|
||||
void cmd_ac_remove_form_fields(DataForm *form);
|
||||
|
||||
char* cmd_ac_complete(ProfWin *window, const char *const input);
|
||||
|
||||
void cmd_ac_reset(ProfWin *window);
|
||||
File diff suppressed because it is too large
Load Diff
@@ -44,24 +44,12 @@ GHashTable *commands;
|
||||
void cmd_init(void);
|
||||
void cmd_uninit(void);
|
||||
|
||||
char* cmd_autocomplete(ProfWin *window, const char *const input);
|
||||
void cmd_reset_autocomplete(ProfWin *window);
|
||||
void cmd_help_autocomplete_add(const char *const value);
|
||||
void cmd_autocomplete_add(const char *const value);
|
||||
void cmd_autocomplete_remove(const char *const value);
|
||||
void cmd_autocomplete_add_form_fields(DataForm *form);
|
||||
void cmd_autocomplete_remove_form_fields(DataForm *form);
|
||||
void cmd_alias_add(char *value);
|
||||
void cmd_alias_remove(char *value);
|
||||
|
||||
gboolean cmd_valid_tag(const char *const str);
|
||||
gboolean cmd_has_tag(Command *pcmd, const char *const tag);
|
||||
|
||||
gboolean cmd_process_input(ProfWin *window, char *inp);
|
||||
void cmd_execute_connect(ProfWin *window, const char *const account);
|
||||
|
||||
gboolean cmd_exists(char *cmd);
|
||||
|
||||
GSList* cmd_get_basic_help(void);
|
||||
GSList* cmd_get_settings_help(void);
|
||||
GSList* cmd_get_presence_help(void);
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "chat_session.h"
|
||||
#include "command/commands.h"
|
||||
#include "command/command.h"
|
||||
#include "command/cmd_autocomplete.h"
|
||||
#include "common.h"
|
||||
#include "config/accounts.h"
|
||||
#include "config/account.h"
|
||||
@@ -3882,7 +3883,7 @@ cmd_form(ProfWin *window, const char *const command, gchar **args)
|
||||
|
||||
if ((g_strcmp0(args[0], "submit") == 0) || (g_strcmp0(args[0], "cancel") == 0)) {
|
||||
if (confwin->form) {
|
||||
cmd_autocomplete_remove_form_fields(confwin->form);
|
||||
cmd_ac_remove_form_fields(confwin->form);
|
||||
}
|
||||
|
||||
int num = wins_get_num(window);
|
||||
@@ -4627,14 +4628,14 @@ cmd_alias(ProfWin *window, const char *const command, gchar **args)
|
||||
cons_bad_cmd_usage(command);
|
||||
g_string_free(ac_value, TRUE);
|
||||
return TRUE;
|
||||
} else if (cmd_exists(ac_value->str)) {
|
||||
} else if (cmd_ac_exists(ac_value->str)) {
|
||||
cons_show("Command or alias '%s' already exists.", ac_value->str);
|
||||
g_string_free(ac_value, TRUE);
|
||||
return TRUE;
|
||||
} else {
|
||||
prefs_add_alias(alias_p, value);
|
||||
cmd_autocomplete_add(ac_value->str);
|
||||
cmd_alias_add(alias_p);
|
||||
cmd_ac_add(ac_value->str);
|
||||
cmd_ac_add_alias_value(alias_p);
|
||||
cons_show("Command alias added %s -> %s", ac_value->str, value);
|
||||
g_string_free(ac_value, TRUE);
|
||||
return TRUE;
|
||||
@@ -4655,8 +4656,8 @@ cmd_alias(ProfWin *window, const char *const command, gchar **args)
|
||||
} else {
|
||||
GString *ac_value = g_string_new("/");
|
||||
g_string_append(ac_value, alias);
|
||||
cmd_autocomplete_remove(ac_value->str);
|
||||
cmd_alias_remove(alias);
|
||||
cmd_ac_remove(ac_value->str);
|
||||
cmd_ac_remove_alias_value(alias);
|
||||
g_string_free(ac_value, TRUE);
|
||||
cons_show("Command alias removed -> /%s", alias);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user