static void
complete_filetype(const char *str)
{
	const char *filename = get_current_file_name(curr_view);
	assoc_records_t ft = get_all_programs_for_file(filename);

	complete_progs(str, ft);
	free(ft.list);

	complete_progs(str, get_magic_handlers(filename));

	vle_compl_finish_group();
	vle_compl_add_last_match(str);
}
Exemple #2
0
int
get_default_program_for_file(const char *file, assoc_record_t *result)
{
    int j;
    assoc_records_t records;
    assoc_record_t prog;

    j = 0;
    records = get_all_programs_for_file(file);
    while(j < records.count)
    {
        char name_buf[NAME_MAX];
        (void)extract_cmd_name(records.list[j].command, 0, sizeof(name_buf),
                               name_buf);
        if(external_command_exists_func == NULL ||
                external_command_exists_func(name_buf))
            break;
        j++;
    }
    if(j >= records.count)
    {
        free(records.list);
        return 0;
    }

    prog = records.list[j];
    result->command = strdup(prog.command);
    result->description = strdup(prog.description);
    free(records.list);

    if(result->command == NULL || result->description == NULL)
    {
        free_assoc_record(result);
        return 0;
    }

    return 1;
}