From:	CRDGW2::CRDGW2::MRGATE::"SMTP::YMIR.CLAREMONT.EDU::POSTMAST"  3-DEC-1990 11:07:57.20
To:	MRGATE::"ARISIA::EVERHART"
CC:	
Subj:	RE: MAIL.DELIVERY "F" command doesn't work on VMS 4.7.

Received:  by crdgw1.ge.com (5.57/GE 1.80)
	 id AA09049; Mon, 3 Dec 90 09:42:40 EST
Resent-From: postmast@YMIR.CLAREMONT.EDU
Resent-Message-Id:  <9012031442.AA09049@crdgw1.ge.com>
Received: from HMCVAX.CLAREMONT.EDU by YMIR.CLAREMONT.EDU with PMDF#10000; Mon,
 3 Dec 1990 06:28 PST
Resent-Date: Mon, 3 Dec 1990 06:31 PST
Date: Mon, 3 Dec 1990 06:28 PST
From: "Ned Freed, Postmaster" <NED@HMCVAX.CLAREMONT.EDU>
Subject: RE: MAIL.DELIVERY "F" command doesn't work on VMS 4.7.
To: sherman%vsdec.decnet@nusc.navy.mil, INFO-PMDF@YMIR.CLAREMONT.EDU
Errors-To: postmast@YMIR.CLAREMONT.EDU
Message-Id: <F07295E7A4E004B8@HMCVAX.CLAREMONT.EDU>
X-Vms-To: IN%"sherman%vsdec.decnet@nusc.navy.mil"
X-Vms-Cc: IPMDF

Bill Sherman has reported a problem with DELIVER as shipped with PMDF V3.2.
The problem is that DELIVER uses the /NOTRAN qualifer to VMS MAIL, and this
qualifier did not exist prior to VMS 5.0. I've added conditional code so
that this qualifer will be omitted when running under old versions of VMS.

Although this is not a patch to PMDF proper, I'm assigning it the number
3.2-5.

				Ned

Here's the DIFFerences listing:

************
File PMDF_ROOT:[DELIVER]DELIVER.PAS;78
   93   
   94         2-Dec-1990, Ned Freed, Innosoft International, Inc.
   95    
   96           Omit the /NOTRAN qualifer when operating with VMS versions prior
   97           to 5.0 -- it is illegal. This problem was reported by Bill Sherman.
   98   *)
******
File PMDF_ROOT:[DELIVER]DELIVER.PAS;75
   93   *)
************
************
File PMDF_ROOT:[DELIVER]DELIVER.PAS;78
 1006                      if MAIL$C_PROT_MAJOR > 1 then
 1007                        write (message_file,
 1008                               '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ')
 1009                      else write (message_file,
 1010                                  '$ MAIL/NOSELF/SUBJECT="(From: ');
 1011                      write (message_file, '''''QFROM'') ''''QSUBJECT''"');
******
File PMDF_ROOT:[DELIVER]DELIVER.PAS;75
 1001                      write (message_file,
 1002                             '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ');
 1003                      write (message_file, '''''QFROM'') ''''QSUBJECT''"');
************
************
File PMDF_ROOT:[DELIVER]DELIVER.PAS;78
 1031                      if MAIL$C_PROT_MAJOR > 1 then
 1032                        write (message_file,
 1033                               '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ')
 1034                      else write (message_file,
 1035                                  '$ MAIL/NOSELF/SUBJECT="(From: ');
 1036                      write (message_file, '''''QFROM'') ''''QSUBJECT''"');
******
File PMDF_ROOT:[DELIVER]DELIVER.PAS;75
 1023                      write (message_file,
 1024                             '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ');
 1025                      write (message_file, '''''QFROM'') ''''QSUBJECT''"');
************
************
File PMDF_ROOT:[DELIVER]DELIVER.PAS;78
 1079                      if MAIL$C_PROT_MAJOR > 1 then
 1080                        write (message_file, '$ MAIL/NOTRAN/NOSELF')
 1081                      else write (message_file, '$ MAIL/NOSELF');
 1082                      write (message_file,
 1083                             '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
 1084                      write (message_file, ' ''MESSAGE_FILE'' "_');
******
File PMDF_ROOT:[DELIVER]DELIVER.PAS;75
 1068                      write (message_file, '$ MAIL/NOTRAN/NOSELF',
 1069                       '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
 1070                      write (message_file, ' ''MESSAGE_FILE'' "_');
************
************
File PMDF_ROOT:[DELIVER]DELIVER.PAS;78
 1127                      if MAIL$C_PROT_MAJOR > 1 then
 1128                        write (message_file, '$ MAIL/NOTRAN/NOSELF')
 1129                      else write (message_file, '$ MAIL/NOSELF');
 1130                      write (message_file,
 1131                             '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
 1132                      writeln (message_file, ' ''MESSAGE_FILE'' ',
******
File PMDF_ROOT:[DELIVER]DELIVER.PAS;75
 1113                      write (message_file, '$ MAIL/NOTRAN/NOSELF',
 1114                        '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
 1115                      writeln (message_file, ' ''MESSAGE_FILE'' ',
************
************
File PMDF_ROOT:[DELIVER]DELIVER.PAS;78
 1161         if MAIL$C_PROT_MAJOR > 1 then
 1162           write (message_file, '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ')
 1163         else write (message_file, '$ MAIL/NOSELF/SUBJECT="(From: ');
 1164         writeln (message_file, '''''QFROM'') ''''QSUBJECT''" ''MESSAGE_FILE'' _',
******
File PMDF_ROOT:[DELIVER]DELIVER.PAS;75
 1144         write (message_file, '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ');
 1145         writeln (message_file, '''''QFROM'') ''''QSUBJECT''" ''MESSAGE_FILE'' _',
************

Number of difference sections found: 6
Number of difference records found: 28

DIFFERENCES /IGNORE=()/MERGED=1
    PMDF_ROOT:[DELIVER]DELIVER.PAS;78-
    PMDF_ROOT:[DELIVER]DELIVER.PAS;75

Here's the context DIFF:

*** PMDF_ROOT:[DELIVER]DELIVER.PAS;-0
--- PMDF_ROOT:[DELIVER]DELIVER.PAS;
**************
*** 90,96
          Added code to set symbol DELIVER_STATUS in the 'bad_msg' case of
          MAIL_IO_WRITE.  Without this, one could end up with DELIVER_STATUS
          set to SS$_NORMAL, and yet have an error in DELIVER_MESSAGE.
- *)
  
  [inherit ('SYS$LIBRARY:STARLET')] module deliver (output);
  
--- 90,95 -----
          Added code to set symbol DELIVER_STATUS in the 'bad_msg' case of
          MAIL_IO_WRITE.  Without this, one could end up with DELIVER_STATUS
          set to SS$_NORMAL, and yet have an error in DELIVER_MESSAGE.
  
        2-Dec-1990, Ned Freed, Innosoft International, Inc.
   
**************
*** 92,97
          set to SS$_NORMAL, and yet have an error in DELIVER_MESSAGE.
  *)
  
  [inherit ('SYS$LIBRARY:STARLET')] module deliver (output);
  
  const
--- 91,102 -----
          MAIL_IO_WRITE.  Without this, one could end up with DELIVER_STATUS
          set to SS$_NORMAL, and yet have an error in DELIVER_MESSAGE.
  
+       2-Dec-1990, Ned Freed, Innosoft International, Inc.
+  
+         Omit the /NOTRAN qualifer when operating with VMS versions prior
+         to 5.0 -- it is illegal. This problem was reported by Bill Sherman.
+ *)
+ 
  [inherit ('SYS$LIBRARY:STARLET')] module deliver (output);
  
  const
**************
*** 998,1005
                   end; (* create, copy *)
            (* deliver *)
            'D'  : begin
!                    write (message_file,
!                           '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ');
                     write (message_file, '''''QFROM'') ''''QSUBJECT''"');
                     write (message_file, ' ''MESSAGE_FILE'' "_');
                     write (message_file,
--- 1003,1013 -----
                   end; (* create, copy *)
            (* deliver *)
            'D'  : begin
!                    if MAIL$C_PROT_MAJOR > 1 then
!                      write (message_file,
!                             '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ')
!                    else write (message_file,
!                                '$ MAIL/NOSELF/SUBJECT="(From: ');
                     write (message_file, '''''QFROM'') ''''QSUBJECT''"');
                     write (message_file, ' ''MESSAGE_FILE'' "_');
                     write (message_file,
**************
*** 1020,1027
                   end; (* execute *)
            (* forward *)
            'F'  : begin
!                    write (message_file,
!                           '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ');
                     write (message_file, '''''QFROM'') ''''QSUBJECT''"');
                     writeln (message_file, ' ''MESSAGE_FILE'' ',
                              parameters[argument_parameter], error := CONTINUE);
--- 1028,1038 -----
                   end; (* execute *)
            (* forward *)
            'F'  : begin
!                    if MAIL$C_PROT_MAJOR > 1 then
!                      write (message_file,
!                             '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ')
!                    else write (message_file,
!                                '$ MAIL/NOSELF/SUBJECT="(From: ');
                     write (message_file, '''''QFROM'') ''''QSUBJECT''"');
                     writeln (message_file, ' ''MESSAGE_FILE'' ',
                              parameters[argument_parameter], error := CONTINUE);
**************
*** 1065,1073
                              error := CONTINUE);
                     if status (message_file) > 0 then
                       LIB$SIGNAL (DELIVER__MESWRTERR, 1, status (message_file));
!                    write (message_file, '$ MAIL/NOTRAN/NOSELF',
!                     '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
!                    write (message_file, ' ''MESSAGE_FILE'' "_');
                     write (message_file,
                       substr (user_list_scan^.username, 1,
                               user_list_scan^.user_length));
--- 1076,1084 -----
                              error := CONTINUE);
                     if status (message_file) > 0 then
                       LIB$SIGNAL (DELIVER__MESWRTERR, 1, status (message_file));
!                    if MAIL$C_PROT_MAJOR > 1 then
!                      write (message_file, '$ MAIL/NOTRAN/NOSELF')
!                    else write (message_file, '$ MAIL/NOSELF');
                     write (message_file,
                            '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
                     write (message_file, ' ''MESSAGE_FILE'' "_');
**************
*** 1069,1074
                      '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
                     write (message_file, ' ''MESSAGE_FILE'' "_');
                     write (message_file,
                       substr (user_list_scan^.username, 1,
                               user_list_scan^.user_length));
                     writeln (message_file, '"', error := CONTINUE);
--- 1080,1088 -----
                       write (message_file, '$ MAIL/NOTRAN/NOSELF')
                     else write (message_file, '$ MAIL/NOSELF');
                     write (message_file,
+                           '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
+                    write (message_file, ' ''MESSAGE_FILE'' "_');
+                    write (message_file,
                       substr (user_list_scan^.username, 1,
                               user_list_scan^.user_length));
                     writeln (message_file, '"', error := CONTINUE);
**************
*** 1110,1117
                              error := CONTINUE);
                     if status (message_file) > 0 then
                       LIB$SIGNAL (DELIVER__MESWRTERR, 1, status (message_file));
!                    write (message_file, '$ MAIL/NOTRAN/NOSELF',
!                      '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
                     writeln (message_file, ' ''MESSAGE_FILE'' ',
                              parameters[argument_parameter], error := CONTINUE);
                     if status (message_file) > 0 then
--- 1124,1134 -----
                              error := CONTINUE);
                     if status (message_file) > 0 then
                       LIB$SIGNAL (DELIVER__MESWRTERR, 1, status (message_file));
!                    if MAIL$C_PROT_MAJOR > 1 then
!                      write (message_file, '$ MAIL/NOTRAN/NOSELF')
!                    else write (message_file, '$ MAIL/NOSELF');
!                    write (message_file,
!                           '/PROTOCOL=DELIVER_MAILSHR/SUBJECT="''''QSUBJECT''"');
                     writeln (message_file, ' ''MESSAGE_FILE'' ',
                              parameters[argument_parameter], error := CONTINUE);
                     if status (message_file) > 0 then
**************
*** 1141,1147
  
      if not somehavematched then begin
        if DEBUG_OUT then writeln ('  No rules matched, just deliver it.');
!       write (message_file, '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ');
        writeln (message_file, '''''QFROM'') ''''QSUBJECT''" ''MESSAGE_FILE'' _',
                 substr (user_list_scan^.username, 1,
                         user_list_scan^.user_length), error := CONTINUE);
--- 1158,1166 -----
  
      if not somehavematched then begin
        if DEBUG_OUT then writeln ('  No rules matched, just deliver it.');
!       if MAIL$C_PROT_MAJOR > 1 then
!         write (message_file, '$ MAIL/NOTRAN/NOSELF/SUBJECT="(From: ')
!       else write (message_file, '$ MAIL/NOSELF/SUBJECT="(From: ');
        writeln (message_file, '''''QFROM'') ''''QSUBJECT''" ''MESSAGE_FILE'' _',
                 substr (user_list_scan^.username, 1,
                         user_list_scan^.user_length), error := CONTINUE);
