mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-06-08 00:29:29 +00:00
EDIT/EMAIL: Modified so OA-E will open message READ-ONLY in EDIT.SYSTEM
This commit is contained in:
parent
d584319aee
commit
11ae65fa08
20
apps/edit.c
20
apps/edit.c
|
@ -1581,6 +1581,10 @@ void name_file(void); // Forward declaration
|
|||
void save(void) {
|
||||
uint8_t rc;
|
||||
FILE *fp;
|
||||
if (email_mode == 1) {
|
||||
show_error("Read-only file");
|
||||
return;
|
||||
}
|
||||
if (strlen(filename) == 0) {
|
||||
status[1] = 1; // Prompt if save will overwrite existing file
|
||||
name_file();
|
||||
|
@ -2521,6 +2525,8 @@ int edit(char *fname) {
|
|||
case 0x80 + 'N': // OA-N "Name"
|
||||
case 0x80 + 'n': // OA-n
|
||||
name_file();
|
||||
if (email_mode == 1)
|
||||
email_mode = 3;
|
||||
break;
|
||||
case 0x80 + 'Q': // OA-Q "Quit"
|
||||
case 0x80 + 'q': // OA-q
|
||||
|
@ -2531,6 +2537,7 @@ int edit(char *fname) {
|
|||
load_attacher();
|
||||
// Fall through
|
||||
case 1:
|
||||
case 3:
|
||||
if (prompt_okay("Return to EMAIL") == 0)
|
||||
load_email();
|
||||
break;
|
||||
|
@ -2751,11 +2758,18 @@ donehelp:
|
|||
*/
|
||||
void usage(void) {
|
||||
printf("Usage: -EDIT.SYSTEM [filename.txt]");
|
||||
printf(" or -EDIT.SYSTEM [-reademail|-compose] filename.txt");
|
||||
printf(" or -EDIT.SYSTEM [-reademail|-email|-news] filename.txt");
|
||||
reconnect_ramdisk();
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Command line arguments:
|
||||
* -reademail - Open file read-only. Load EMAIL.SYSTEM on quit.
|
||||
* -email - Prompt for attachments, load ATTACHER.SYSTEM
|
||||
* or EMAIL.SYSTEM on quit
|
||||
* -news - Load EMAIL.SYSTEM on quit
|
||||
*/
|
||||
void main(int argc, char *argv[]) {
|
||||
uint8_t *pp = (uint8_t*)0xbf98;
|
||||
if (!(*pp & 0x02)) {
|
||||
|
@ -2775,8 +2789,10 @@ void main(int argc, char *argv[]) {
|
|||
case 3:
|
||||
if (strcmp(argv[1], "-reademail") == 0)
|
||||
email_mode = 1;
|
||||
else if (strcmp(argv[1], "-compose") == 0)
|
||||
else if (strcmp(argv[1], "-email") == 0)
|
||||
email_mode = 2;
|
||||
else if (strcmp(argv[1], "-news") == 0)
|
||||
email_mode = 3;
|
||||
else
|
||||
usage();
|
||||
edit(argv[2]);
|
||||
|
|
47
apps/email.c
47
apps/email.c
|
@ -6,7 +6,6 @@
|
|||
|
||||
// TODO: Scrunch memory
|
||||
// TODO: Some way to abort an email that has been created already - final verification to send
|
||||
// TODO: No MIME attachments for Usenet posts
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -50,6 +49,8 @@
|
|||
|
||||
char closedapple[] = "\x0f\x1b""@\x18\x0e";
|
||||
char openapple[] = "\x0f\x1b""A\x18\x0e";
|
||||
char email[] = "EMAIL";
|
||||
char email_cfg[] = "EMAIL.CFG";
|
||||
char email_prefs[] = "EMAIL.PREFS";
|
||||
char email_db[] = "%s/%s/EMAIL.DB";
|
||||
char email_db_new[] = "%s/%s/EMAIL.DB.NEW";
|
||||
|
@ -101,46 +102,70 @@ unsigned char buf[READSZ];
|
|||
#define ERR_NONFATAL 0
|
||||
#define ERR_FATAL 1
|
||||
|
||||
/*
|
||||
* Load and run EDIT.SYSTEM
|
||||
* compose - Controls the arguments passed to EDIT.SYSTEM
|
||||
* 0: Email reading (-reademail)
|
||||
* 1: Email composition (-email)
|
||||
* 2: News composition (-news)
|
||||
*/
|
||||
#pragma code-name (push, "LC")
|
||||
void load_editor(uint8_t compose) {
|
||||
snprintf(userentry, 80, "%s %s", (compose ? "-compose" : "-reademail"), filename);
|
||||
snprintf(userentry, 80, "%s %s",
|
||||
(compose == 0 ? "-reademail" : (compose == 1 ? "-email" : "-news")),
|
||||
filename);
|
||||
snprintf(filename, 80, "%s/EDIT.SYSTEM", cfg_instdir);
|
||||
exec(filename, userentry);
|
||||
}
|
||||
#pragma code-name (pop)
|
||||
|
||||
/*
|
||||
* Load and run NNTP65.SYSTEM
|
||||
*/
|
||||
#pragma code-name (push, "LC")
|
||||
void load_nntp65(void) {
|
||||
snprintf(filename, 80, "%s/NNTP65.SYSTEM", cfg_instdir);
|
||||
exec(filename, "EMAIL");
|
||||
exec(filename, email);
|
||||
}
|
||||
#pragma code-name (pop)
|
||||
|
||||
/*
|
||||
* Load and run NNTP65UP.SYSTEM
|
||||
*/
|
||||
#pragma code-name (push, "LC")
|
||||
void load_nntp65up(void) {
|
||||
snprintf(filename, 80, "%s/NNTP65UP.SYSTEM", cfg_instdir);
|
||||
exec(filename, "EMAIL");
|
||||
exec(filename, email);
|
||||
}
|
||||
#pragma code-name (pop)
|
||||
|
||||
/*
|
||||
* Load and run POP65.SYSTEM
|
||||
*/
|
||||
#pragma code-name (push, "LC")
|
||||
void load_pop65(void) {
|
||||
snprintf(filename, 80, "%s/POP65.SYSTEM", cfg_instdir);
|
||||
exec(filename, "EMAIL");
|
||||
exec(filename, email);
|
||||
}
|
||||
#pragma code-name (pop)
|
||||
|
||||
/*
|
||||
* Load and run SMTP65.SYSTEM
|
||||
*/
|
||||
#pragma code-name (push, "LC")
|
||||
void load_smtp65(void) {
|
||||
snprintf(filename, 80, "%s/SMTP65.SYSTEM", cfg_instdir);
|
||||
exec(filename, "EMAIL");
|
||||
exec(filename, email);
|
||||
}
|
||||
#pragma code-name (pop)
|
||||
|
||||
/*
|
||||
* Load and run DATE65.SYSTEM
|
||||
*/
|
||||
#pragma code-name (push, "LC")
|
||||
void load_date65(void) {
|
||||
snprintf(filename, 80, "%s/DATE65.SYSTEM", cfg_instdir);
|
||||
exec(filename, "EMAIL");
|
||||
exec(filename, email);
|
||||
}
|
||||
#pragma code-name (pop)
|
||||
|
||||
|
@ -272,9 +297,9 @@ void spinner(void) {
|
|||
*/
|
||||
#pragma code-name (push, "LC")
|
||||
void readconfigfile(void) {
|
||||
fp = fopen("EMAIL.CFG", "r");
|
||||
fp = fopen(email_cfg, "r");
|
||||
if (!fp)
|
||||
error(ERR_FATAL, cant_open, "EMAIL.CFG");
|
||||
error(ERR_FATAL, cant_open, email_cfg);
|
||||
fscanf(fp, "%s", cfg_server);
|
||||
fscanf(fp, "%s", cfg_user);
|
||||
fscanf(fp, "%s", cfg_pass);
|
||||
|
@ -1537,11 +1562,9 @@ esc_pressed:
|
|||
* s - Subject text
|
||||
* Adds 'Re: ' to subject line unless it is already there
|
||||
*/
|
||||
#pragma code-name (push, "LC")
|
||||
void subject_response(FILE *f, char *s) {
|
||||
fprintf(f, "Subject: %s%s\r", (strncmp(s, "Re: ", 3) ? "Re: " : ""), s);
|
||||
}
|
||||
#pragma code-name (pop)
|
||||
|
||||
/*
|
||||
* Write subject line to file
|
||||
|
@ -1957,7 +1980,7 @@ void copy_to_mailbox(struct emailhdrs *h, uint16_t idx,
|
|||
|
||||
if (mode != ' ') {
|
||||
snprintf(filename, 80, email_file, cfg_emaildir, mbox, num);
|
||||
load_editor(1);
|
||||
load_editor(mode == 'N' ? 0 : 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
T Tag current message | {-D Set date using DATE65 (NTP)
|
||||
A Archive current/tagged message | {-R Receive email using POP65
|
||||
C Copy current/tagged message | {-S Send OUTBOX using SMTP65
|
||||
M Move current/tagged message | }-R Receive news using NNTP65
|
||||
D Mark current message deleted | }-S Sent NEWS.OUTBOX with NNTP65UP
|
||||
U Remove deletion mark |
|
||||
M Move current/tagged message | {-E Open current message in EDIT
|
||||
D Mark current message deleted | }-R Receive news using NNTP65
|
||||
U Remove deletion mark | }-S Sent NEWS.OUTBOX with NNTP65UP
|
||||
P Purge messages marked as deleted |
|
||||
------------------------------------------+-------------------------------------
|
||||
Email Composition | News Composition
|
||||
|
|
Loading…
Reference in New Issue
Block a user