mirror of
https://github.com/bobbimanners/emailler.git
synced 2024-07-04 20:29:34 +00:00
EMAIL can now pass filename to be edited to EDIT.
This commit is contained in:
parent
c02af8d466
commit
2ad28c454c
14
apps/edit.c
14
apps/edit.c
@ -170,6 +170,8 @@ uint8_t load_file(char *filename) {
|
|||||||
fclose(fp);
|
fclose(fp);
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
if ((gapbegin % 1000) == 0)
|
||||||
|
putchar('.');
|
||||||
}
|
}
|
||||||
--gapbegin; // Eat EOF character
|
--gapbegin; // Eat EOF character
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
@ -588,12 +590,13 @@ void load_email(void) {
|
|||||||
/*
|
/*
|
||||||
* Main editor routine
|
* Main editor routine
|
||||||
*/
|
*/
|
||||||
int edit() {
|
int edit(char *filename) {
|
||||||
char c;
|
char c;
|
||||||
uint16_t pos;
|
uint16_t pos;
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
videomode(VIDEOMODE_80COL);
|
videomode(VIDEOMODE_80COL);
|
||||||
if (load_file("test.txt")) {
|
printf("Loading file %s ", filename);
|
||||||
|
if (load_file(filename)) {
|
||||||
puts("load_file error");
|
puts("load_file error");
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -668,8 +671,11 @@ int edit() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main(int argc, char *argv[]) {
|
||||||
edit();
|
if (argc == 2) {
|
||||||
|
edit(argv[1]);
|
||||||
|
} else
|
||||||
|
edit(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
85
apps/email.c
85
apps/email.c
@ -77,6 +77,24 @@ static unsigned char buf[READSZ];
|
|||||||
#define ERR_NONFATAL 0
|
#define ERR_NONFATAL 0
|
||||||
#define ERR_FATAL 1
|
#define ERR_FATAL 1
|
||||||
|
|
||||||
|
// Shove this up in the Language Card out of an abundance of caution
|
||||||
|
#pragma code-name (push, "LC")
|
||||||
|
void load_editor(void) {
|
||||||
|
sprintf(userentry, "%s/EDIT.SYSTEM", cfg_instdir);
|
||||||
|
exec(userentry, filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
void load_pop65(void) {
|
||||||
|
sprintf(filename, "%s/POP65.SYSTEM", cfg_instdir);
|
||||||
|
exec(filename, "EMAIL");
|
||||||
|
}
|
||||||
|
|
||||||
|
void load_smtp65(void) {
|
||||||
|
sprintf(filename, "%s/SMTP65.SYSTEM", cfg_instdir);
|
||||||
|
exec(filename, "EMAIL");
|
||||||
|
}
|
||||||
|
#pragma code-name (pop)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Put cursor at beginning of PROMPT_ROW
|
* Put cursor at beginning of PROMPT_ROW
|
||||||
*/
|
*/
|
||||||
@ -1274,6 +1292,27 @@ uint8_t write_email_headers(FILE *fp1, FILE *fp2, struct emailhdrs *h,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Prompt ok?
|
||||||
|
*/
|
||||||
|
char prompt_okay(char *msg) {
|
||||||
|
char c;
|
||||||
|
goto_prompt_row();
|
||||||
|
printf("%sSure? (y/n)", msg);
|
||||||
|
while (1) {
|
||||||
|
c = cgetc();
|
||||||
|
if ((c == 'y') || (c == 'Y') || (c == 'n') || (c == 'N'))
|
||||||
|
break;
|
||||||
|
putchar(BELL);
|
||||||
|
}
|
||||||
|
if ((c == 'y') || (c == 'Y'))
|
||||||
|
c = 1;
|
||||||
|
else
|
||||||
|
c = 0;
|
||||||
|
putchar(CLRLINE);
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copies the current message to mailbox mbox.
|
* Copies the current message to mailbox mbox.
|
||||||
* h is a pointer to the emailheaders for the message to copy
|
* h is a pointer to the emailheaders for the message to copy
|
||||||
@ -1388,30 +1427,13 @@ void copy_to_mailbox(struct emailhdrs *h, uint16_t idx,
|
|||||||
sprintf(filename, "Created %s %s/OUTBOX/EMAIL.%u",
|
sprintf(filename, "Created %s %s/OUTBOX/EMAIL.%u",
|
||||||
(mode == 'R' ? "reply" : "fwded msg"), cfg_emaildir, num);
|
(mode == 'R' ? "reply" : "fwded msg"), cfg_emaildir, num);
|
||||||
error(ERR_NONFATAL, filename);
|
error(ERR_NONFATAL, filename);
|
||||||
|
if (prompt_okay("Open in editor - ")) {
|
||||||
|
sprintf(filename, "%s/OUTBOX/EMAIL.%u", cfg_emaildir, num);
|
||||||
|
load_editor();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Prompt ok?
|
|
||||||
*/
|
|
||||||
char prompt_okay(char *msg) {
|
|
||||||
char c;
|
|
||||||
goto_prompt_row();
|
|
||||||
printf("%sSure? (y/n)", msg);
|
|
||||||
while (1) {
|
|
||||||
c = cgetc();
|
|
||||||
if ((c == 'y') || (c == 'Y') || (c == 'n') || (c == 'N'))
|
|
||||||
break;
|
|
||||||
putchar(BELL);
|
|
||||||
}
|
|
||||||
if ((c == 'y') || (c == 'Y'))
|
|
||||||
c = 1;
|
|
||||||
else
|
|
||||||
c = 0;
|
|
||||||
putchar(CLRLINE);
|
|
||||||
return c;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return index into EMAIL.DB for current selection.
|
* Return index into EMAIL.DB for current selection.
|
||||||
*/
|
*/
|
||||||
@ -1524,26 +1546,13 @@ void create_blank_outgoing() {
|
|||||||
// Not really an error but useful to have an alert
|
// Not really an error but useful to have an alert
|
||||||
sprintf(filename, "Created file %s/OUTBOX/EMAIL.%u", cfg_emaildir, num);
|
sprintf(filename, "Created file %s/OUTBOX/EMAIL.%u", cfg_emaildir, num);
|
||||||
error(ERR_NONFATAL, filename);
|
error(ERR_NONFATAL, filename);
|
||||||
}
|
|
||||||
|
|
||||||
// Shove this up in the Language Card out of an abundance of caution
|
if (prompt_okay("Open in editor - ")) {
|
||||||
#pragma code-name (push, "LC")
|
sprintf(filename, "%s/OUTBOX/EMAIL.%u", cfg_emaildir, num);
|
||||||
void load_editor(void) {
|
load_editor();
|
||||||
sprintf(filename, "%s/EDIT.SYSTEM", cfg_instdir);
|
}
|
||||||
exec(filename, NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void load_pop65(void) {
|
|
||||||
sprintf(filename, "%s/POP65.SYSTEM", cfg_instdir);
|
|
||||||
exec(filename, "EMAIL");
|
|
||||||
}
|
|
||||||
|
|
||||||
void load_smtp65(void) {
|
|
||||||
sprintf(filename, "%s/SMTP65.SYSTEM", cfg_instdir);
|
|
||||||
exec(filename, "EMAIL");
|
|
||||||
}
|
|
||||||
#pragma code-name (pop)
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Keyboard handler
|
* Keyboard handler
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user