Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!mcvax!kddlab!koudai!titcca!kossvax!suna
From: suna@kossvax.keio.JUNET (Hideki Sunahara)
Newsgroups: comp.emacs
Subject: Re: RCS and emacs
Message-ID: <248@kossvax.keio.JUNET>
Date: Fri, 9-Jan-87 01:45:22 EST
Article-I.D.: kossvax.248
Posted: Fri Jan  9 01:45:22 1987
Date-Received: Sat, 10-Jan-87 23:10:23 EST
References: <8701052235.AA10120@ucbarpa.Berkeley.EDU>
Reply-To: suna@koeavax.keio.junet (Hideki Sunahara)
Organization: Keio University, Saito Lab., Japan
Lines: 56

I wrote a package for RCS on Unipress Emacs few year's ago.
If this package satisfy you, please use this one.
But, you can not get money from this package.

			    Hideki Sunahara
			    Keio University, in JAPAN.
			    CSNET: suna%koeavax.keio.junet@utokyo-relay

----------------------------(CUT HERE)---------------------------------
; Unix Emacs package for RCS files
; Copyright 1984 by Hideki Sunahara (Keio University)
; Distribution is free, but you can not get money from this.
; Do not delete these comment lines.
;
; functions:
;   rcs-write		write current file (management with RCS).
;   do-checkout		do checkout when current file is read-only.
; 
(defun
    (rcs-write
	(if (error-occurred (write-current-file))
	    (if buffer-is-modified
		(do-checkout (current-buffer-name) (current-file-name))))
	(novalue))
    (do-checkout c-buf co-fname
	(setq c-buf (arg 1))
	(setq co-fname (arg 2))
	(if (| (file-exists (concat "RCS/" c-buf ",v"))
		(file-exists (concat co-fname ",v")))
	    (progn
		(message "please wait, now locking revision.")
		(sit-for 0)
		(execute-monitor-command
		    (concat "chmod u+w " co-fname "; rcs -l " co-fname))
		(message "done!!")
		(pop-to-buffer c-buf)
		(write-current-file))
	    (error-message
		(concat "File " c-buf " cannot be written"))))
    (with-rcs fname
	(setq fname (current-file-name))
	(local-rebind "rcs-write" "write-current-file")
;	(local-bind-to-key "rcs-write" "\^X\^S")
	; check file-exists when not found do co without lock
	(if (! (file-exists fname))
	    (if (| (file-exists (concat "RCS/" (current-buffer-name) ",v"))
		    (file-exists (concat fname ",v")))
		(progn
		    (message "please wait, now doing check out...")
		    (sit-for 0)
		    (execute-monitor-command (concat "co " fname))
		    (visit-file fname)
		    (message "done!!")
		))))
    
)