EC_EDITLINE(3)

NAME
ec_editline - Create an editline instance with default behavior.

SYNOPSIS
#include <ecoli/editline.h>

struct ec_editline * ec_editline(
    /*
     * The name of the invoking program, used when reading the editrc(5) file
     * to determine which settings to use.
     */
    const char                  *prog,
    FILE                        *f_in,   /* The input stream to use. */
    FILE                        *f_out,  /* The output stream to use. */
    FILE                        *f_err,  /* The error stream to use. */
    /*
     * Flags to customize initialization. See ec_editline_init_flags.
     */
    enum ec_editline_init_flags  flags
);

DESCRIPTION

It allocates and initializes an ec_editline structure, calls editline's el_init(), and does the editline configuration according to given flags.

After that, the user must call ec_editline_set_node() to attach the grammar to the editline.

STRUCTURES

enum ec_editline_init_flags {

    /*
     * The ctrl-c, ctrl-z will be interpreted as standard
     * characters. An action can be associated with these characters with:
static int
     * cb(EditLine *editline, int c) {
{
 see editline documentation for details
}

if
     * (el_set(el, EL_ADDFN, "ed-foobar", "Help string about foobar", cb))

     * handle_error;
if (el_set(el, EL_BIND, "^C", "ed-break", NULL))
 handle_error;

The
     * default behavior (without this flag) is to let the signal pass: ctrl-c will stop
     * program and ctrl-z will suspend it.
     */
      EC_EDITLINE_DISABLE_SIGNALS; /*
     * The default behavior creates a history with
     * EC_EDITLINE_HISTORY_SIZE entries. To change this value, use ec_editline_set_history().
     */
      EC_EDITLINE_DISABLE_HISTORY; /*
     * The default behavior is to complete when ? or <tab> is hit.
     * You can register your own callback with:
if (el_set(el, EL_ADDFN,
     * "ed-complete", "Complete buffer", callback))
 handle_error;
if (el_set(el, EL_BIND,
     * "^I", "ed-complete", NULL))
 handle_error;

The default used callback is
     * ec_editline_complete().
     */
      EC_EDITLINE_DISABLE_COMPLETION; /*
     * Otherwise, the current signal handlers will be used.
     */
      EC_EDITLINE_DEFAULT_SIGHANDLER; };

RETURN VALUE

The allocated ec_editline structure, or NULL on error.

SEE ALSO

ec_editline_get_el(3), ec_editline_set_prompt(3), ec_editline_complete(3), ec_editline_set_prompt_esc(3), ec_editline_parse(3), ec_editline_free(3), ec_editline_term_size(3), ec_editline_gets(3), ec_editline_interact(3), ec_editline_set_node(3), ec_editline_set_history(3), ec_editline_get_node(3), ec_editline_curline(3)

COPYRIGHT

Copyright (C) 2010-2026 Olivier Matz, Robin Jarry.