I'm not entirelt sure that the rcs command I use here is original or a cisco wrapper, but the principal remains the same... (defun rcs-check-out-file () (interactive) ;;; check for clearcase environment (if (file-exists-p (concat (buffer-file-name) "@@/main/LATEST")) (progn (shell-command (concat "cleartool co -nc " (buffer-file-name))) (revert-buffer t (not (buffer-modified-p))) ) ;;; else (check for RCS environment) (if (file-exists-p "./RCS") (progn (shell-command (concat "co -l " (buffer-file-name))) (revert-buffer t (not (buffer-modified-p))) ) ;;; else (check for CVS environment) (if (file-exists-p "./CVS") (progn (shell-command (concat "chmod u+w " (buffer-file-name))) (revert-buffer t (not (buffer-modified-p))) ) ) ) ) ) (define-key global-map "\C-c\C-o" 'rcs-check-out-file)