DLG Correct / PDQ Export Solution Fix v2.0 July 11, 1995 In the recent months there has been a great amount of discussion over the problem of filenote stripping when using DLG's Msg_Correct funtion. For a while it seemed that a small battle was developing over positions of "we need the correct feature" and "remove it to solve the problem." My personal opinion of this feature is that it is one of the most valuable functions from within DLG's Message Menu arsenal. In order for the Msg_Correct feature to remain viable, the problem of the message filenote being stripped has to be addressed. This fix will solve the problem until DLG v2.0 is released with the correct-bug fixed (and from what I hear this has already been done). The alpha of this release utilized the few working parts of DLG's Arexx capabilities, but ran into problems when I noticed that the Arexx portion of DLG dies as soon as any other background disk activity occurs. This fix will only work for those utilizing the Msg_Correct function from a MESS-type menu (usually MSG_MAIN). Revisions: ~~~~~~~~~~ v2.0, 07/09/95: Rewrote the entire fix into two Arexx scripts. Fixed a bug when correcting a message in your Pvt area. Added port checking in case more than one person corrects messages simultaneously. No longer force filenotes; only re-append if they originally existed. v1.2, 06/21/95: Forced the creation of a filenote on a message being corrected that lacked one. This stopped the script from dying. v1.1, 06/18/95: First public release. Installation: ~~~~~~~~~~~~~ **| If you are upgrading from the previous release of this |** **| fix, then you may delete all DLGConfig:Batch/DLG_Correct.* |** **| files before proceeding. |** 1. Cut/Copy the below-written files to their appropriate directories and filenames and noted above each. 2. You will need to configure the menu item from which the Msg_Correct function is called. Again, this is usually MSG_MAIN, option C. 3. Modify the menu item so that its configuration is: [ 2] Menu script: (path/name) DLGConfig:Batch/DLG_Correct.menuscr [ 5] Type: Menu script [10] Load Type: OVERLAY [13] Cli mode: YES The rest can probably stay the same. 4. The script used require that you have DELETE, FILENOTE, and LIST in your C: directory (there's almost no reason for them not being there now). It also requires that you have a T: directory. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Menu Script "DLGConfig:Batch/DLG_Correct.menuscr" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ EXE RX Rexx:DLG_PreCorrect.rexx %UNAME %PORT %Msg_AreaNumber %Msg_MsgNumber BUILTIN Msg_Correct EXE RX Rexx:DLG_PostCorrect.rexx %PORT ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Arexx Script "REXX:DLG_PreCorrect.rexx" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /*************************************************************************/ /* DLG Correct / PDQ Export */ /* Solution Fix v2.0 */ /* */ /* Pre-Process Module */ /* */ /* Created by Jon Godfrey (RE0273) */ /* Fido: 1:212/1005 INet: jdgodfre@slonet.org */ /*************************************************************************/ parse arg arg_list parse var arg_list uname port area msgnum uname=strip(uname,b) ;port=strip(port,b); area=strip(area,b); msgnum=strip(msgnum,b) no_filenote_flag = 0 tempfile = 't:dlg_correct.'||port delete_tempfile = 'c:delete >NIL: '||tempfile filenote_file = 't:filenote.'||port if area=="PVT" then msg_path = 'USER:'||uname||'/'||msgnum||'.msg' else msg_path = 'MSG:'||area||'/'||msgnum||'.msg' list_msg_info = 'c:list >'||tempfile||' '||msg_path||' nohead' address command list_msg_info call open(fn,tempfile,R) filename = readln(fn) filenote = readln(fn) if eof(fn) = 1 then no_filenote_flag = 1 call close(fn) address command delete_tempfile if no_filenote_flag = 0 then do filenote = right(filenote,length(filenote)-2) call open(note,filenote_file,W) writeln(note,msg_path) writeln(note,filenote) call close(note) end exit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Arexx Script "REXX:DLG_PostCorrect.rexx" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /*************************************************************************/ /* DLG Correct / PDQ Export */ /* Solution Fix v2.0 */ /* */ /* Post-Process Module */ /* */ /* Created by Jon Godfrey (RE0273) */ /* Fido: 1:212/1005 INet: jdgodfre@slonet.org */ /*************************************************************************/ parse arg port filenote_file = 't:filenote.'||port delete_filenote_file = 'c:delete >NIL: '||filenote_file if exists(filenote_file) then do call open(note,filenote_file,R) msg_path = readln(note) filenote = readln(note) call close(note) filenote_command = 'c:filenote '||msg_path||' "'filenote'"' address command filenote_command address command delete_filenote_file end exit ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ I have extensively tested this modification with no loss of filenotes when they have existed prior to running this fix. The fix is released as freeware for the benefit of the DLG users. My only request of you is to send me any improvements you might make. This file is also available for FREQ from 1:212/1005 under the magic filename of CORRECT and from Aminet Comm/Dlg as "DLG_Correct20.lha".