static struct i9e_completer completers[];
+static void ll_completer(struct i9e_completion_info *ci,
+ struct i9e_completion_result *cr)
+{
+ i9e_ll_completer(ci, cr);
+}
+
static void help_completer(struct i9e_completion_info *ci,
struct i9e_completion_result *cr)
{
if (ret < 0)
goto out;
num_atts = ret;
- sl = para_realloc(sl, (2 * num_atts + 1) * sizeof(char *));
+ sl = arr_realloc(sl, 2 * num_atts + 1, sizeof(char *));
for (i = 0; i < num_atts; i++) {
char *orig = sl[i];
sl[i] = make_message("%s+", orig);
goto free_moods;
num_pl = ret;
n = num_moods + num_pl;
- mops = para_malloc((n + 1) * sizeof(char *));
+ mops = arr_alloc(n + 1, sizeof(char *));
for (i = 0; i < num_moods; i++)
mops[i] = make_message("m/%s", moods[i]);
for (i = 0; i < num_pl; i++)
};
PARA_NOTICE_LOG("\n%s\n", version_text("client"));
- if (CLIENT_OPT_GIVEN(HISTORY_FILE, ct->lpr))
- ici.history_file = para_strdup(CLIENT_OPT_STRING_VAL(
- HISTORY_FILE, ct->lpr));
- else {
- char *home = para_homedir();
- ici.history_file = make_message("%s/.paraslash/client.history",
- home);
- free(home);
- }
+ ici.history_file = CLIENT_OPT_GIVEN(HISTORY_FILE, ct->lpr)?
+ para_strdup(CLIENT_OPT_STRING_VAL(HISTORY_FILE, ct->lpr)) :
+ make_message("%s/client.history", get_confdir());
act.sa_handler = i9e_signal_dispatch;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
i9e_close();
para_log = stderr_log;
out:
+ free(ici.history_file);
if (ret < 0)
PARA_ERROR_LOG("%s\n", para_strerror(-ret));
exit(ret < 0? EXIT_FAILURE : EXIT_SUCCESS);
/* these are not errors */
case -E_SERVER_CMD_SUCCESS:
case -E_EOF:
- case -E_SERVER_EOF:
- case -E_BTR_EOF:
ret = 0;
break;
default: ret = -E_SERVER_CMD_FAILURE;