Problem: automatiocally appending a signature file to the bottom of outgoing emails Solution #1 =========== $ DEFINE MAIL$EDIT MAILEDIT.COM MAILEDIT.COM: $ IF P1 .NES. "" $ THEN $ COPY 'P1',[signaturefile] 'P2' $ ELSE $ COPY [signaturefile] 'P2' $ ENDIF $ DEFINE/NOLOG SYS$INPUT SYS$COMMAND $ [editor command] 'P2' $ EXIT Problem: does not handle QUIT's (send anyway). Solution #2 =========== $ DEFINE MAIL$EDIT MAILEDIT.COM MAILEDIT.COM: $ IF P1 .NES. "" $ THEN $ COPY 'P1',[signaturefile] 'P2' $ ELSE $ COPY [signaturefile] 'P2' $ ENDIF $ DEFINE/NOLOG SYS$INPUT SYS$COMMAND $ EDIT/TPU 'P2' $ IF $STATUS .EQ. %X13F2AF59 THEN DELETE 'P2'; $ EXIT Problem: only works with EDIT/TPU (or another editor that sets return status properly). Solution #3 =========== $ DEFINE MAIL$EDIT MAILEDIT.COM MAILEDIT.COM: $ TMPFNM=F$GETJPI("","PID")+".ZZZ" $ IF P1 .NES. "" $ THEN $ COPY 'P1',[signaturefile] 'TMPFNM' $ ELSE $ COPY [signaturefile] 'TMPFNM' $ ENDIF $ DEFINE/NOLOG SYS$INPUT SYS$COMMAND $ EDIT/[edt or tpu]/OUTPUT='P2' 'TMPFNM' $ EXIT Problem: only works with EDIT/EDT or EDIT/TPU (or another editor that accepts /OUTPUT). Solution #4 =========== $ DEFINE TPU$COMMAND TPU$COMMAND.TPU TPU$COMMAND.TPU: procedure eve_column_insert (xsub,xdeltaline) local count_integer, xdl_integer, sub_string, col_integer; if not (eve$prompt_string(xsub,sub_string,"Enter string: ", "No string given")) then return; endif; if not (eve$prompt_number(xdeltaline,xdl_integer,"Enter number of lines: ", "No number of line given")) then return; endif; if sub_string = "" then return; endif; if xdl_integer <= 0 then return; endif; eve$insert_text(" "); move_horizontal(-1); erase_character(1); col_integer:=current_offset; set (screen_update, off); count_integer := 1; loop if length(current_line) < col_integer then eve$insert_text(substr(eve$x_spaces,1, col_integer-length(current_line))); endif; eve$insert_text(sub_string); exitif count_integer = xdl_integer; move_horizontal(-length(sub_string)); move_vertical (1); count_integer := count_integer + 1; endloop; set (screen_update, on); message("Columns inserted."); endprocedure; ! procedure eve_mail_reply local tmp_string, from_string; tmp_string:="> "; eve_top; from_string:=current_line; eve_column_insert(tmp_string,get_info(current_buffer,"record_count")); eve_bottom; if index(from_string,"%") > 0 then tmp_string:="SYS$LOGIN:INETSIG.TXT"; eve_include_file(tmp_string); else tmp_string:="SYS$LOGIN:LOCALSIG.TXT"; eve_include_file(tmp_string); endif; eve_top; eve_erase_line; eve_erase_line; eve_erase_line; eve_erase_line; eve_erase_line; endprocedure; ! procedure eve_test_if_mail local filename1_string, filename2_string; filename1_string:=get_info(current_buffer,"output_file"); filename2_string:=get_info(current_buffer,"file_name"); if (filename1_string<>"") and (filename2_string<>"") then if (index(filename1_string,".TMP;")>0) and (index(filename2_string,".TMP;")>0) then eve_mail_reply; endif; endif; endprocedure; ! eve_test_if_mail; Mote: Only works with TPU, but is recommendable anyway, because it also does quoting.