epsilon@wet.UUCP (Eric P. Scott) (12/25/90)
The following context diffs to ELM 2.3PL10
. Change default sort order for compatibility with other
MUAs (optional)
. Fix ~v to properly invoke vi when elm is configured to
use "builtin" or "none" as the default editor
. Even if already_has_text is true, if the alternate_editor
is "builtin" or "none" don't try to shell to it
. Avoid creating extraneous process from ~! shell escape
*This does not include fixes to Configure for NeXT workstations.
For "Any additional cc flags?" specify -bsd
For "Any additional libraries?" specify -lsys_s
At "If you need to edit config.sh, do it as a shell escape here:"
Change d_voidsig from 'define' to 'undef'
Change passcat from 'cat /etc/passwd' to 'nidump passwd /'
if you're not using YP/NIS, and don't have more than two levels
of NetInfo hierarchy. (Consult a NeXTpert otherwise!)
-=EPS=-
-------
*** hdrs/elm.h.orig
--- hdrs/elm.h
***************
*** 142,148 ****
int prompt_for_cc = 1; /* flag: ask user for "cc:" value? */
int sig_dashes = 1; /* flag: include dashes above sigs? */
! int sortby = REVERSE SENT_DATE; /* how to sort incoming mail... */
long timeout = 600L; /* timeout (secs) on main prompt */
--- 142,148 ----
int prompt_for_cc = 1; /* flag: ask user for "cc:" value? */
int sig_dashes = 1; /* flag: include dashes above sigs? */
! int sortby = MAILBOX_ORDER; /* how to sort incoming mail... */
long timeout = 600L; /* timeout (secs) on main prompt */
*** hdrs/sysdefs.SH.orig
--- hdrs/sysdefs.SH
***************
*** 100,105 ****
--- 100,106 ----
#define readmsg_file ".elm/readmsg"
#define emacs_editor "$emacs"
+ #define vi_editor "$vi"
#define default_editor "$defeditor"
#define mailhome "$maildir/"
*** src/editmsg.c.orig
--- src/editmsg.c
***************
*** 72,78 ****
buffer[0] = '\0';
if (strcmp(editor, "builtin") == 0 || strcmp(editor, "none") == 0) {
! if (already_has_text)
sprintf(buffer, "%s %s", alternative_editor, filename);
else
return(no_editor_edit_the_message(filename));
--- 72,79 ----
buffer[0] = '\0';
if (strcmp(editor, "builtin") == 0 || strcmp(editor, "none") == 0) {
! if (already_has_text && strcmp(alternative_editor, "builtin") &&
! strcmp(alternative_editor, "none"))
sprintf(buffer, "%s %s", alternative_editor, filename);
else
return(no_editor_edit_the_message(filename));
***************
*** 249,255 ****
case 'v' : NewLine();
strcpy(buffer, editor);
! strcpy(editor, default_editor);
fclose(edit_fd);
(void) edit_the_message(filename,0);
strcpy(editor, buffer);
--- 250,256 ----
case 'v' : NewLine();
strcpy(buffer, editor);
! strcpy(editor, vi_editor);
fclose(edit_fd);
(void) edit_the_message(filename,0);
strcpy(editor, buffer);
***************
*** 299,305 ****
if (( old_raw = RawState()) == ON)
Raw(OFF);
if (strlen(buffer) < 3)
! (void) system_call(shell, USER_SHELL, TRUE, TRUE);
else
(void) system_call((char *) buffer+2, USER_SHELL, TRUE, TRUE);
if (old_raw == ON)
--- 300,306 ----
if (( old_raw = RawState()) == ON)
Raw(OFF);
if (strlen(buffer) < 3)
! (void) system_call((char *)NULL, USER_SHELL, TRUE, TRUE);
else
(void) system_call((char *) buffer+2, USER_SHELL, TRUE, TRUE);
if (old_raw == ON)
*** src/syscall.c.orig
--- src/syscall.c
***************
*** 218,224 ****
#endif
/* Go for it. */
! execl(sh, argv_zero(sh), "-c", string, (char *) 0);
/* If exec fails, we write a byte to the pipe before exiting. */
perror(sh);
--- 218,225 ----
#endif
/* Go for it. */
! if (string) execl(sh, argv_zero(sh), "-c", string, (char *) 0);
! else execl(sh, argv_zero(sh), (char *) 0);
/* If exec fails, we write a byte to the pipe before exiting. */
perror(sh);