static char rcsid[] = "@(#)$Id: showmsg_1.c,v 1.5 2006/04/09 07:37:19 hurtta Exp $";

/******************************************************************************
 *  The Elm (ME+) Mail System  -  $Revision: 1.5 $   $State: Exp $
 *
 *  Author: Kari Hurtta <hurtta+elm@posti.FMI.FI>
 *****************************************************************************
 * Some code copied from src/elm.c. That file is following
 * copyright:
 *
 *  The Elm Mail System 
 *
 * This file and all associated files and documentation:
 *			Copyright (c) 1988-1992 USENET Community Trust
 *			Copyright (c) 1986,1987 Dave Taylor
 *****************************************************************************/

#include "def_elm.h"

DEBUG_VAR(Debug,__FILE__,"ELM");


int show_message_with_headers(mailbox,cmdX,aview,page,header_area)
     struct MailboxView *mailbox;
     showmsg_cmd  cmdX;
     struct AliasView *aview;
     struct menu_context  *page;
     struct menu_context  *header_area;
{
    struct menu_common MENU;

    int current = get_current(mailbox);

    struct header_rec *hdr;
    FILE *F;
    int j = elm_filter;
    int i = 0;
    
    
    struct pager_page * PP = init_pager_page(&MENU);
    elm_filter = FALSE;
   
    set_mcommon_from_mbxview(&MENU,mailbox);
    
    i = mbx_show_msg(mailbox,current-1,PP);
    
    while (i > 0) {
	i = process_showmsg_cmd(i, mailbox, cmdX, aview, 
				PP);
	
	switch (i) {
	case EOF:
	    exit_pager_page(&PP,page);
	    return EOF;/* Read failed, control tty died? */
	    
	case 'X':      /* Quick Exit */
	case 'x':      /* Exit       */
	    
	    exit_pager_page(&PP,page);
	    return i;   /* "call" parent */
	case 0:
	    break;
	    
	default:
	    DPRINT(Debug,3,(&Debug, 
			    "Looping showmsg command %d (%c)\n",
			    i,i));
	}
    }
    
    exit_pager_page(&PP,page);
    
    elm_filter = j;
    menu_trigger_redraw(page);
    get_page(&MENU, header_area);
    
    
    return 0;
}

int show_message_normal(mailbox,cmdX,aview,page,header_area)
     struct MailboxView *mailbox;
     showmsg_cmd  cmdX;
     struct AliasView *aview;
     struct menu_context  *page;
     struct menu_context  *header_area;
{
    struct menu_common MENU;

    int current = get_current(mailbox);

    struct header_rec *hdr;
    FILE *F;
    int i = 0;	    
    struct pager_page * PP = init_pager_page(&MENU);
    
    /* define_softkeys(READ); */

    set_mcommon_from_mbxview(&MENU,mailbox);

    i = mbx_show_msg(mailbox,current-1,PP);
    
    while (i > 0) {
	i = process_showmsg_cmd(i, mailbox, cmdX, aview, 
				PP);
	
	switch (i) {
	case EOF:
	    exit_pager_page(&PP,page);
	    return EOF;/* Read failed, control tty died? */
	    
	case 'X':      /* Quick Exit */
	case 'x':      /* Exit       */
	    
	    exit_pager_page(&PP,page);
	    return i;   /* "call" parent */
	case 0:
	    break;
	    
	default:
	    DPRINT(Debug,3,(&Debug, 
			    "Looping showmsg command %d (%c)\n",
			    i,i));		    
	}
    }
    
    exit_pager_page(&PP,page);
    
    menu_trigger_redraw(page);
    get_page(&MENU, header_area);
    
    return 0;
}

int show_next_message(mailbox,cmdX,aview,page,header_area)
     struct MailboxView *mailbox;
     showmsg_cmd  cmdX;
     struct AliasView *aview;
     struct menu_context  *page;
     struct menu_context  *header_area;
{
    struct menu_common MENU;

    int current = get_current(mailbox);

    struct header_rec *hdr;
    FILE *F;
    int i = 0;	    
    int mc;
    struct pager_page * PP = init_pager_page(&MENU);

    set_mcommon_from_mbxview(&MENU,mailbox);

    
    i = mbx_show_msg(mailbox,current-1,PP);
    
    while (i >0) {
	i = process_showmsg_cmd(i, mailbox, cmdX, aview, 
				PP);
	
	switch (i) {
	case EOF:
	    
	    exit_pager_page(&PP,page);
	    return EOF;/* Read failed, control tty died? */
	    
	case 'X':      /* Quick Exit */
	case 'x':      /* Exit       */
	    
	    exit_pager_page(&PP,page);
	    return i;   /* "call" parent */
	    
	case 0:
	    break;
	    
	default:
	    DPRINT(Debug,3,(&Debug, 
			    "Looping showmsg command %d (%c)\n",
			    i,i));
	}
    }
    
    exit_pager_page(&PP,page);
    current = get_current(mailbox);
    
    menu_trigger_redraw(page);
    if (++current > (mc = get_message_count(mailbox)))
	current = mc;
    set_current(mailbox,current);

    get_page(&MENU, header_area);
    
    return 0;
}

/*
 * Local Variables:
 *  mode:c
 *  c-basic-offset:4
 *  buffer-file-coding-system: iso-8859-1
 * End:
 */


syntax highlighted by Code2HTML, v. 0.9.1