|  |     Chele
    
    I assume you mean a shared drawer rather than a shared folder. Editing
    a document in a shared drawer sometimes necessitates a copy of the
    document being made, in the recovered documents folder, so there is
    nothing necessarily strange about that. However I can imagine that
    there might be problems with the WordPerfect integration, eg with
    Gold-K, resulting in the copy not being deleted. Or maybe the copy
    should not have been made in the first place.
    
    Dick
 | 
|  | ! WP_SYS_CLOSE
	GET #WP_SYS_STATUS = 1
! Ensure we have OA$CURDOC up to date
	GET #ED_DOCUMENT = OA$CURDOC
	CABINET CLEAR_CURDOC
	CABINET CURRENT #ED_DOCUMENT
! Get node or cluster alias and username
	GET #RCOM = LOG$OA$A1_CLUSTER_NODE
	.IF FN$LENGTH(#RCOM) EQ 0
	.THEN
	  GET #RCOM = LOG$SYS$CLUSTER_NODE
	  .IF FN$LENGTH(#RCOM) EQ 0
	  .THEN
	    GET #RCOM = OA$NODE
	  .ELSE
	    GET #NO_COLON = FN$MEMBER(#RCOM,":")
	    .IF #NO_COLON NE 0
	    .THEN
	      DECREMENT (#NO_COLON)
	      GET #RCOM = FN$LEFT(#RCOM,#NO_COLON)
	    .END_IF
	  .END_IF
	.END_IF
	GET #RCOM = #RCOM:6 OA$USER
! If unreserved then simply update modified date
	.IF CAB$.MAIL_STATUS:U[OA$CURDOC] EQS "RESERVED" -
	  THEN .GOTO SYSTEM_RESERVED
	.IF #WP_SYS_COMPLETION EQ 1 THEN CABINET EDIT
	.GOTO NO_PROBLEMS
.LABEL SYSTEM_RESERVED
	GET #EDITED = "N"
! Build key to access Reserve_List
	GET #DRAWER_FULLPATH = OA$CURDWR_PARTITION "." '"' -
			       OA$CURDWR_LOCATION '"'
	GET #RL_KEY = #DRAWER_FULLPATH:249 OA$CURDOC_DOCNUM
	GET #DOC_FULLPATH = #DRAWER_FULLPATH "." -
			    '"' OA$CURDOC_FOLDER '".' OA$CURDOC_DOCNUM
! If there is no Reserve_List entry then stage 1 failed or we have been called
! with the wrong document. Just ignore it.
	FOR RESERVE_LIST WITH .%KEY = #RL_KEY DO -
	    GET #RES_MODE = .RESERVATION_MODE
	.IF OA$SEL_COUNT EQ 0 THEN .GOTO BAD
	GET #RDN = RESERVE_LIST.DATE[#RL_KEY]
	GET #EXPORT_FILENAME = LOG$OA$TEMP RESERVE_LIST.EXPORT_FILENAME[#RL_KEY]
	GET #EXPORT_LOCATION = RESERVE_LIST.EXPORT_LOCATION[#RL_KEY]
	GET #EXPORT_DRAWER = RESERVE_LIST.EXPORT_DRAWER[#RL_KEY]
	GET #EXPORT_FOLDER = RESERVE_LIST.EXPORT_FOLDER[#RL_KEY]
	GET #EXPORT_DOCNUM = RESERVE_LIST.EXPORT_DOCNUM[#RL_KEY]
	.IF #EXPORT_LOCATION EQS FC$_LANG_RL_DOCUMENT THEN .GOTO REPLACE_DOC
! Copy = NONE. Unreserve document.
	.IF #WP_SYS_COMPLETION EQ 1
	.THEN
	    GET #EDITED = "Y"
	    FILECAB UNRESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
					MODIFIED_NBS = OA$DATE_NBS, -
					RESERVED_COMMENT = #RCOM)
	.ELSE
	    FILECAB UNRESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
					RESERVED_COMMENT = #RCOM)
	.END_IF
	.IF OA$STATUS NE 1 THEN .GOTO CANT_UNRESERVE
	.GOTO RERESERVE
.LABEL REPLACE_DOC
! Copy = DOCUMENT. Replace, delete temporary document.
	.IF #WP_SYS_COMPLETION EQ 0 THEN .GOTO JUST_UNRESERVE
	GET OA$DISPLAY = FC$_REPLACING_DOCUMENT\ FORCE
	GET OA$DISPLAY = ""
	FILECAB REPLACE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
				  WORK_DRAWER = #EXPORT_DRAWER, -
				  WORK_FOLDER = #EXPORT_FOLDER, -
				  WORK_DOCNUM = #EXPORT_DOCNUM, -
				  MODIFIED_NBS = OA$DATE_NBS, -
				  RESERVED_COMMENT = #RCOM)
	.IF OA$STATUS NE 1 THEN .GOTO CANT_REPLACE
	GET #EDITED = "Y"
	.GOTO DELETE_COPY
.LABEL JUST_UNRESERVE
	FILECAB UNRESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
				    RESERVED_COMMENT = #RCOM)
	.IF OA$STATUS NE 1 THEN .GOTO CANT_UNRESERVE
.LABEL DELETE_COPY
	FILECAB DELETE_DOCUMENT (DRAWER = #EXPORT_DRAWER, -
				 FOLDER = #EXPORT_FOLDER, -
				 DOCNUM = #EXPORT_DOCNUM)
.LABEL RERESERVE
	WRITE DELETE RESERVE_LIST %KEY = #RL_KEY
	.IF OA$STATUS NE 1 THEN .GOTO BAD_RL
	.IF #RES_MODE EQS FC$_LANG_RL_SYSTEM THEN .GOTO NO_PROBLEMS
	FILECAB RESERVE_DOCUMENT (DOCUMENT = #DOC_FULLPATH, -
				  RESERVED_COMMENT = #RCOM)
	.IF OA$STATUS NE 1 THEN .GOTO CANT_RESERVE
	WRITE ADD RESERVE_LIST -
	  FULLPATH1 = #RL_KEY:64:0,   FULLPATH2 = #RL_KEY:64:64, -
	  FULLPATH3 = #RL_KEY:64:128, FULLPATH4 = #RL_KEY:57:192, -
	  FOLDER = OA$CURDOC_FOLDER, DOCNUM = OA$CURDOC_DOCNUM, -
	  DRAWER = OA$CURDWR, TITLE = OA$CURDOC_TITLE, -
	  DATE = #RDN, RESERVATION_MODE = FC$_LANG_RL_USER, -
	  EXPORT_LOCATION = FC$_LANG_RL_NONE, -
	  EXPORT_DRAWER = "", -
	  EXPORT_FOLDER = "", EXPORT_DOCNUM = "", -
	  EXPORT_FILENAME = ""
	.IF OA$STATUS NE 1 THEN .GOTO BAD_RL
.LABEL NO_PROBLEMS
	.EXIT
.LABEL CANT_UNRESERVE
	GET #MESS = FC$_CANT_UNRESERVE_DOCUMENT
	.GOTO APPEND_SUCCESS_OK
.LABEL CANT_RESERVE
	GET #MESS = FC$_CANT_RESERVE_DOCUMENT
	.GOTO APPEND_SUCCESS_OK
.LABEL BAD_RL
	GET #MESS = FC$_BAD_RESERVE_LIST
	.GOTO APPEND_SUCCESS_OK
.LABEL CANT_REPLACE
	GET #MESS = FC$_CANT_REPLACE_DOCUMENT
	
.LABEL APPEND_SUCCESS_OK
! Unreserve or Replace failed, but set #WP_SYS_STATUS to 1
	.IF #EDITED EQS "Y" THEN GET #EDITED = FC$_EDIT -
			    ELSE GET #EDITED = FC$_NO_EDIT
	OA$FAO #EDITED, "OA$DISPLAY", #MESS
	.EXIT
.LABEL BAD
	GET #WP_SYS_STATUS = 0
	.EXIT
! WP_SYS_CLOSE.SCP
!
! Edit current (OA$CURDWR,OA$CURDOC) document. Stage 2
!
!	Input
!
!	#WP_SYS_COMPLETION	Success of edit (1=YES,0=NO)
!
!	Output
!
!	#WP_SYS_STATUS		1/0 Success/failure
!
! Edits the current (OA$CURDWR,OA$CURDOC) document.
!
!			  COPYRIGHT � 1991,1992 BY
!	      DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
!
! This software is furnished under a license and may be used and  copied
! only  in  accordance  with  the  terms  of  such  license and with the
! inclusion of the above copyright notice.  This software or  any  other
! copies  thereof may not be provided or otherwise made available to any
! other person.  No title to and ownership of  the  software  is  hereby
! transferred.
!
! The information in this software is subject to change  without  notice
! and  should  not  be  construed  as  a commitment by DIGITAL EQUIPMENT
! CORPORATION.
!
! DIGITAL assumes no responsibility for the use or  reliability  of  its
! software on equipment which is not supplied by DIGITAL.
    
 |