static char rcsid[] = "@(#)$Id: alias.c,v 1.6 2006/04/09 07:37:42 hurtta Exp $";
/******************************************************************************
* The Elm (ME+) Mail System - $Revision: 1.6 $ $State: Exp $
*
* Author: Kari Hurtta <hurtta+elm@posti.FMI.FI>
*****************************************************************************/
#include "def_mcommon.h"
#include "s_aliases.h"
DEBUG_VAR(Debug,__FILE__,"menu");
#if ANSI_C
#define S_(x) static x;
#else
#define S_(x)
#endif
S_(mc_get_type_common mc_get_type_alias)
static int mc_get_type_alias P_((union mcommon_union *u, int idx));
static int mc_get_type_alias(u,idx)
union mcommon_union *u;
int idx;
{
struct AliasView *aview = u->alias.aw;
struct alias_rec *a = give_alias(aview,idx);
int r = 0;
if (a)
r = a->type;
return r;
}
S_(mc_setf_status_common mc_setf_status_alias)
static int mc_setf_status_alias P_((union mcommon_union *u, int idx,
enum status_x t, int stat));
static int mc_setf_status_alias(u,idx, t, stat)
union mcommon_union *u;
int idx;
enum status_x t;
int stat;
{
struct AliasView *aview = u->alias.aw;
struct alias_rec *a = give_alias(aview,idx);
int r = 0;
if (a) {
switch (t) {
case status_basic:
setit(a->status,stat);
r = a->status;
break;
/* other status types ignored */
}
}
return r;
}
S_(mc_get_current_common mc_get_current_alias)
static int mc_get_current_alias P_((union mcommon_union *u));
static int mc_get_current_alias(u)
union mcommon_union *u;
{
struct AliasView *aview = u->alias.aw;
return get_alias_current(aview);
}
S_(mc_ison_status_common mc_ison_status_alias)
static int mc_ison_status_alias P_((union mcommon_union *u, int idx,
enum status_x t, int stat));
static int mc_ison_status_alias(u,idx, t, stat)
union mcommon_union *u;
int idx;
enum status_x t;
int stat;
{
struct AliasView *aview = u->alias.aw;
struct alias_rec *a = give_alias(aview,idx);
int r = 0;
if (a) {
switch (t) {
case status_basic:
r = ison(a->status,stat);
break;
/* other status types ignored */
}
}
return r;
}
S_(mc_clearf_status_common mc_clearf_status_alias)
static int mc_clearf_status_alias P_((union mcommon_union *u, int idx,
enum status_x t, int stat));
static int mc_clearf_status_alias(u,idx, t, stat)
union mcommon_union *u;
int idx;
enum status_x t;
int stat;
{
struct AliasView *aview = u->alias.aw;
struct alias_rec *a = give_alias(aview,idx);
int r = 0;
if (a) {
switch (t) {
case status_basic:
clearit(a->status,stat);
r = a->status;
break;
/* other status types ignored */
}
}
return r;
}
S_(mc_show_status_common mc_show_status_alias)
static char * mc_show_status_alias P_((union mcommon_union *u, int idx));
static char * mc_show_status_alias(u,idx)
union mcommon_union *u;
int idx;
{
struct AliasView *aview = u->alias.aw;
struct alias_rec *a = give_alias(aview,idx);
char * r = "";
if (a) {
r = show_alias_status(a);
}
return r;
}
S_(mc_get_count_common mc_get_count_alias)
static int mc_get_count_alias P_((union mcommon_union *u));
static int mc_get_count_alias(u)
union mcommon_union *u;
{
struct AliasView *aview = u->alias.aw;
return get_alias_count(aview);
}
S_(mc_get_selected_common mc_get_selected_alias)
static int mc_get_selected_alias P_((union mcommon_union *u));
static int mc_get_selected_alias(u)
union mcommon_union *u;
{
struct AliasView *aview = u->alias.aw;
return get_alias_selected(aview);
}
S_(mc_set_current_common mc_set_current_alias)
static void mc_set_current_alias P_((union mcommon_union *u, int cur));
static void mc_set_current_alias(u, cur)
union mcommon_union *u;
int cur;
{
struct AliasView *aview = u->alias.aw;
set_alias_current(aview,cur);
}
S_(mc_set_selected_common mc_set_selected_alias)
static void mc_set_selected_alias P_((union mcommon_union *u, int cur));
static void mc_set_selected_alias(u, cur)
union mcommon_union *u;
int cur;
{
struct AliasView *aview = u->alias.aw;
set_alias_selected(aview,cur);
}
S_(mc_title_common mc_title_alias)
static struct string * mc_title_alias P_((union mcommon_union *u));
static struct string * mc_title_alias(u)
union mcommon_union *u;
{
struct AliasView *aview = u->alias.aw;
return format_string(CATGETS(elm_msg_cat, AliasesSet,
AliasesMode,
"Alias mode"));
}
static struct mcommon_type mcommon_alias = {
MCOMMON_TYPE_magic,
mc_get_type_alias,
mc_setf_status_alias,
mc_get_current_alias,
mc_ison_status_alias,
mc_clearf_status_alias,
mc_show_status_alias,
mc_get_count_alias,
mc_matches_alias,
mc_get_selected_alias,
mc_set_current_alias,
mc_set_selected_alias,
mc_limit_helper_alias,
mc_limit_print_help_alias,
mc_limit_print_result_alias,
mc_match_in_text_alias,
mc_screen_print_alias_line,
mc_give_item_alias,
mc_title_alias
};
void set_mcommon_from_aliasview P_((struct menu_common *m, struct AliasView *aw));
void set_mcommon_from_aliasview(m,aw)
struct menu_common *m;
struct AliasView *aw;
{
union mcommon_union u;
if (sizeof u != sizeof (*m)) {
panic("MENU COMMON PANIC",__FILE__,__LINE__,"set_mcommon_from_aliasview",
"size mismatch",0);
}
u.alias.magic = MENU_COMMON_magic;
u.alias.mtype = &mcommon_alias;
u.alias.aw = aw;
if (u.gen.mtype != &mcommon_alias) {
panic("MENU COMMON PANIC",__FILE__,__LINE__,"set_mcommon_from_aliasview",
"pointer error",0);
}
*m = u.gen;
}
/*
* Local Variables:
* mode:c
* c-basic-offset:4
* buffer-file-coding-system: iso-8859-1
* End:
*/
syntax highlighted by Code2HTML, v. 0.9.1