This is delete.c in view mode; [Download] [Up]
static char rcsid[] = "@(#)$Id: delete.c,v 5.1 1992/10/03 22:58:40 syd Exp $"; /******************************************************************************* * The Elm Mail System - $Revision: 5.1 $ $State: Exp $ * * Copyright (c) 1988-1992 USENET Community Trust * Copyright (c) 1986,1987 Dave Taylor ******************************************************************************* * Bug reports, patches, comments, suggestions should be sent to: * * Syd Weinstein, Elm Coordinator * elm@DSI.COM dsinc!elm * ******************************************************************************* * $Log: delete.c,v $ * Revision 5.1 1992/10/03 22:58:40 syd * Initial checkin as of 2.4 Release at PL0 * * ******************************************************************************/ /** Delete or undelete files: just set flag in header record! Also tags specified message(s)... **/ #include "headers.h" #include "s_elm.h" char *show_status(); delete_msg(real_del, update_screen) int real_del, update_screen; { /** Delete current message. If real-del is false, then we're actually requested to toggle the state of the current message... **/ if (real_del) { if (inalias) { if (aliases[current-1]->type & SYSTEM) error(catgets(elm_msg_cat, ElmSet, ElmNoDelSysAlias, "Can't delete a system alias!")); else setit(aliases[current-1]->status, DELETED); } else setit(headers[current-1]->status, DELETED); } else { if (inalias) { if (aliases[current-1]->type & SYSTEM) error(catgets(elm_msg_cat, ElmSet, ElmNoDelSysAlias, "Can't delete a system alias!")); else if (ison(aliases[current-1]->status, DELETED)) clearit(aliases[current-1]->status, DELETED); else setit(aliases[current-1]->status, DELETED); } else if (ison(headers[current-1]->status, DELETED)) clearit(headers[current-1]->status, DELETED); else setit(headers[current-1]->status, DELETED); } if (update_screen) show_msg_status(current-1); } undelete_msg(update_screen) int update_screen; { /** clear the deleted message flag **/ if (inalias) clearit(aliases[current-1]->status, DELETED); else clearit(headers[current-1]->status, DELETED); if (update_screen) show_msg_status(current-1); } show_msg_status(msg) int msg; { /** show the status of the current message only. **/ char tempbuf[3]; strcpy(tempbuf, show_status(ifmain(headers[msg]->status, aliases[msg]->status))); if (on_page(msg)) { MoveCursor(((compute_visible(msg+1)-1) % headers_per_page) + 4, 2); if (msg+1 == current && !arrow_cursor) { StartBold(); Writechar( tempbuf[0] ); EndBold(); } else Writechar( tempbuf[0] ); } } int tag_message(update_screen) int update_screen; { /** Tag current message and return TRUE. If already tagged, untag it and return FALSE. **/ int istagged; if (ison(ifmain(headers[current-1]->status, aliases[current-1]->status), TAGGED)) { if (inalias) clearit(aliases[current-1]->status, TAGGED); else clearit(headers[current-1]->status, TAGGED); istagged = FALSE; } else { if (inalias) setit(aliases[current-1]->status, TAGGED); else setit(headers[current-1]->status, TAGGED); istagged = TRUE; } if(update_screen) show_msg_tag(current-1); return(istagged); } show_msg_tag(msg) int msg; { /** show the tag status of the current message only. **/ if (on_page(msg)) { MoveCursor(((compute_visible(msg+1)-1) % headers_per_page) + 4, 4); if (msg+1 == current && !arrow_cursor) { StartBold(); Writechar( ison(ifmain(headers[msg]->status, aliases[msg]->status), TAGGED)? '+' : ' '); EndBold(); } else Writechar( ison(ifmain(headers[msg]->status, aliases[msg]->status), TAGGED)? '+' : ' '); } } show_new_status(msg) int msg; { /** If the specified message is on this screen, show the new status (could be marked for deletion now, and could have tag removed...) **/ if (on_page(msg)) if (msg+1 == current && !arrow_cursor) { StartBold(); PutLine2(((compute_visible(msg+1)-1) % headers_per_page) + 4, 2, "%s%c", show_status(ifmain(headers[msg]->status, aliases[msg]->status)), ison(ifmain(headers[msg]->status, aliases[msg]->status), TAGGED )? '+' : ' '); EndBold(); } else PutLine2(((compute_visible(msg+1)-1) % headers_per_page) + 4, 2, "%s%c", show_status(ifmain(headers[msg]->status, aliases[msg]->status)), ison(ifmain(headers[msg]->status, aliases[msg]->status), TAGGED )? '+' : ' '); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.