;ELC ;;; compiled by jwz@thalidomide on Wed Apr 27 03:37:11 1994 ;;; from file /th/jwz/emacs19/lisp/packages/generic-sc.el ;;; emacs version 19.10 Lucid (beta16). ;;; bytecomp version 2.24; 26-Apr-94. ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "This file was compiled for Emacs 19.")) (defvar sc-diff-command '("diff") "\ *The command/flags list to be used in constructing diff commands.") (defvar cvs-program "cvs" "\ *The command name of the cvs program.") (defvar sc-mode-expert nil "\ *Treat user as expert; suppress yes-no prompts on some things.") (defvar sc-max-log-size 510 "\ *Maximum allowable size of a source control log message.") (defvar sc-ccase-comment-on '(checkout checkout-dir checkin-dir rename new-brtype new-branch checkin-merge create-label label-sources) "\ *Operations on which comments would be appreciated. We check the values checkout, checkout-dir, checkin-dir, rename, new-brtype, new-branch, create-label, and label-sources as symbols.") (defvar sc-ccase-reserve nil "\ Whether to reserve checkouts or not. By default, this is nil - don't. Other values are t - do, and anything else, eg. 'ask - ask.") (byte-code "! \" !  # # # # # # # # #" [boundp sc-prefix-map lookup-key global-map "v" keymapp make-sparse-keymap define-key "v" sc-next-operation "=" sc-show-changes "l" sc-show-history "p" sc-visit-previous-revision "u" sc-revert-file "d" sc-list-registered-files "" sc-update-directory "" sc-rename-file] 4) (defvar sc-generic-name "" "\ Name of the source control system used. Is displayed in the modeline.") (defvar sc-mode-line-string nil "\ Revision number to show in the mode line") (defvar sc-generic-log-buf nil "\ Buffer for entering log message") (defvar sc-log-entry-keymap nil "\ Additional keybindings used when entering the log message") (defvar sc-can-hack-dir nil "\ Does the SC system allow users to play directly with directories") (defvar sc-ccase-mfs-prefixes nil "\ Prefixes known to the system to be MFS ... ignore all others") (byte-code "MM" [chmod (macro . #[(perms file) "‰ " [call-process "chmod" nil perms file] 7]) error-occurred (macro . #[(&rest body) " \"BF" [condition-case nil progn append body (nil) (error t)] 6])] 2) (fset 'sc-next-operation #[(verbose) " \"! \"! = \"!ĉD@\"\"  ך@ @\"  \"! A@ \"!! #䋭 !\" !)-" [buffer-file-name error "There is no file associated with buffer %s" buffer-name nil revision file sc-lock-info lock-info get-buffer-create format "*%s-Log*" sc-generic-name sc-generic-log-buf err-msg na "The file associated with buffer %s is not registered" sc-register-file verbose sc-check-out t revert-buffer sc-mode-line "CCase" user-login-name "Sorry, %s has that file locked." buffer-modified-p sc-mode-expert y-or-n-p "%s has been modified. Write it out? " save-buffer "revision: %s Change revision level? " read-string "New revision level: " sc-temp-buffer buffer ((byte-code " ! ! !ɏ?ˏ? !" [pop-to-buffer buffer erase-buffer set-buffer-modified-p nil sc-log-entry-mode message "Enter log message. Type C-c C-c when done, C-c ? for help." (byte-code " " [recursive-edit nil] 1) ((error t)) (byte-code " \n #ć" [sc-check-in file revision buffer-string nil] 4) ((error t)) buffer-file-name bury-buffer] 3)) "Checked-in version of file does not match buffer!" run-hooks sc-check-in-ok] 4 "\ Do the next logical source-control operation on the file in the current buffer. The current subdirectory must be under source control. If the file is not already registered with the source control, this registers it and checks it out. If the file is registered and not locked by anyone, this checks it out. If the file is registered and locked by the calling user, this pops up a buffer for creation of a log message, then checks the file in. A read-only copy of the changed file is left in place afterwards. If the file is registered and locked by someone else, an error message is returned indicating who has locked it." "P"]) (fset 'sc-insert-last-log #[nil " !" [insert-buffer sc-generic-log-buf] 2 "\ Insert the log message of the last check in at point." nil]) (fset 'sc-abort-check-in #[nil "! " [sc-mode-expert y-or-n-p "Really Abort Check-in? " delete-window abort-recursive-edit] 2 "\ Abort a source control check-in command." nil]) (fset 'sc-log-exit #[nil " W ed# b `#" [buffer-size sc-max-log-size copy-to-buffer sc-generic-log-buf exit-recursive-edit delete-window error "Log must be less than %d characters. Point is now at char %d."] 4 "\ Proceed with checkin with the contents of the current buffer as message." nil]) (fset 'sc-show-changes #[(arg) " \"! !\n   ! \n\" q  !@AC C#&)==!!!qebed !\"c c\"\n)!." [buffer-modified-p sc-mode-expert y-or-n-p format "%s has been modified. Write it out? " buffer-name save-buffer arg read-string "Revision to compare against: " revision buffer-file-name file file-name-nondirectory name sc-get-version-in-temp-file old sc-temp-buffer buffer nil status erase-buffer file-name-directory default-directory apply call-process sc-diff-command t append 0 1 display-buffer error "diff FAILED" delete-file "No changes to %s since last update." "==== Diffs for " "\n" "==== " mapcar #[(i) "" [i " "] 2] "<" "current" ">" " " "\n\n"] 10 "\ Compare the version being edited with the last checked-in revision. With a prefix argument prompt for revision to compare with." "P"]) (fset 'sc-show-revision-changes #[nil "!" [sc-show-changes 4] 2 "\ Prompt for a revision to diff against." nil]) (fset 'sc-version-diff-file #[(file rel1 rel2) "  q \"  \" \n Ž @Ή A\nC C#&)я ӏ!ebed $! !+" [rel1 "" nil rel2 sc-temp-buffer buffer erase-buffer sc-get-version-in-temp-file file v2 v1 apply call-process sc-diff-command t append (delete-file v1) ((error)) (delete-file v2) ((error)) set-buffer-modified-p message format "No changes to %s between %s and %s." display-buffer] 11 "\ For FILE, report diffs between two revisions REL1 and REL2 of it." "fFile: \nsOlder version: \nsNewer version: "]) (fset 'sc-show-history #[nil " \" !! q !eb)!*" [buffer-file-name file error "There is no file associated with buffer %s" buffer-name sc-lock-info "The file is not registered in the source control system" sc-temp-buffer buffer erase-buffer sc-history display-buffer] 4 "\ List the edit history of the current buffer." nil]) (fset 'sc-visit-previous-revision #[(revision) " \" \" ! ˰ !!  !  !  !+" [buffer-file-name file error "There is no file associated with buffer %s" buffer-name sc-get-version-in-temp-file revision file-name-nondirectory "<" sc-generic-name " " ">" other-file pop-to-buffer get-buffer-create erase-buffer insert-file normal-mode nil set-buffer-modified-p toggle-read-only delete-file] 8 "\ Show a previous revision of the current file" "sShow previous revision number: "]) (fset 'sc-revert-file #[nil " \"! !\" )" [buffer-file-name file y-or-n-p format "Revert file %s to last checked-in revision?" sc-revert revert-buffer nil t sc-mode-line] 4 "\ Revert the current buffer's file back to the last saved version." nil]) (fset 'sc-list-all-locked-files #[(arg) " \n\" qebedUcc\n\nɱ ̱) !*" [arg user-login-name locker sc-tree-walk sc-list-file-if-locked buffer "No files locked " "Files locked " "by " " " "in " default-directory "\n\n" display-buffer] 3 "\ List all files currently locked under the revision control system. With prefix arg list only the files locked by the user." "P"]) (fset 'sc-list-locked-files #[nil "!" [sc-list-all-locked-files 4] 2 "\ List all files currently locked by me" nil]) (fset 'sc-list-registered-files #[nil "!\nqedU eb ȱ)\n!)" [sc-tree-walk sc-list-file buffer "No files registered in " sc-generic-name " in " default-directory "Files registered in " "\n\n" display-buffer] 5 "\ List all files currently registered under the revision control system." nil]) (fset 'sc-update-directory #[nil " ! qebedU Ʊ Ʊ) !)" [save-some-buffers sc-tree-walk sc-update-file buffer "No files needed to be updated in " default-directory "\n\n" "Files updated in " display-buffer] 3 "\ Updates the current directory by getting the latest copies of the files" nil]) (fset 'sc-register-file #[(verbose) " \" !\n\"  \"! ! \"\" +" [buffer-file-name file error "There is no file associated with buffer %s" buffer-name sc-lock-info nil revision lock-info "This file is already registered into %s" sc-generic-name buffer-modified-p sc-mode-expert y-or-n-p format "%s has been modified. Write it out? " save-buffer verbose read-string "Initial Revision Number: " sc-register revert-buffer t sc-mode-line] 5 "\ Register the file visited by the current buffer into source control. Prefix argument register it under an explicit revision number." "P"]) (fset 'sc-rename-file #[(old new) " !\n \n\") # \"" [sc-locking-user old owner user-login-name error "Sorry, %s has that file checked out" sc-can-hack-dir rename-file new t sc-rename] 5 "\ Rename a file, taking its source control archive with it." "fOld name: \nFNew name: "]) (fset 'sc-rename-this-file #[(new) " \"! \"p!\n \n\"p! !*" [buffer-modified-p y-or-n-p format "%s has been modified. Write it out? " buffer-name save-buffer sc-rename-file buffer-file-name new find-file-noselect new-buffer old-buffer set-window-buffer selected-window pop-to-buffer bury-buffer] 4 "\ Rename the file of the current buffer, taking its source control archive with it" "FNew name: "]) (defvar sc-generic-lock-info nil "\ Function to implement sc-lock-info") (fset 'sc-lock-info #[(file) " !" [sc-generic-lock-info file] 2 "\ Return a list of the current locker and current locked revision for FILE. Returns NIL if FILE is not registered in the source control system. Return (NIL NIL) if FILE is registered but not locked. Return (locker revision) if file is locked."]) (defvar sc-generic-register nil "\ Function to implement sc-register") (fset 'sc-register #[(file revision) " \n\"" [sc-generic-register file revision] 3 "\ Register FILE under source control with initial revision REVISION."]) (defvar sc-generic-check-out nil "\ Function to implement sc-check-out") (fset 'sc-check-out #[(file lockp) " \n\"" [sc-generic-check-out file lockp] 3 "\ Checks out the latest version of FILE. If LOCKP is not NIL, FILE is also locked."]) (defvar sc-generic-get-version nil "\ Function to implement sc-get-version") (fset 'sc-get-version #[(file buffer revision) " \n #" [sc-generic-get-version file buffer revision] 4 "\ Insert a previous revison of FILE in BUFFER. REVISION is the revision number requested."]) (defvar sc-generic-check-in nil "\ Function to implement sc-check-in") (fset 'sc-check-in #[(file revision message) " \n #" [sc-generic-check-in file revision message] 4 "\ Check in FILE with revision REVISION. MESSAGE is a string describing the changes."]) (defvar sc-generic-history nil "\ Function to implement sc-history") (fset 'sc-history #[(file) " !" [sc-generic-history file] 2 "\ Insert the edit history of FILE in the current buffer."]) (defvar sc-generic-tree-list nil "\ Function to implement sc-tree-list") (fset 'sc-tree-list #[nil " " [sc-generic-tree-list] 1 "\ List in the current buffer the files registered in the source control system"]) (defvar sc-generic-new-revision-p nil "\ Function to implement sc-new-revision-p") (fset 'sc-new-revision-p #[(file) " !" [sc-generic-new-revision-p file] 2 "\ True if a new revision of FILE was checked in since we last got a copy of it"]) (defvar sc-generic-revert nil "\ Function to implement sc-revert") (fset 'sc-revert #[(file) " !" [sc-generic-revert file] 2 "\ Cancel a check out of FILE and get back the latest checked in version"]) (defvar sc-generic-rename nil "\ Function to implement sc-rename") (fset 'sc-rename #[(old new) " \n\"" [sc-generic-rename old new] 3 "\ Rename the source control archives for OLD to NEW"]) (defvar sc-menu nil "\ Menu to use") (fset 'sc-do-command #[(buffer message command file sc-file &rest flags) " !\n #!!q  \nC\"  \" ! &*=\n\"!qebc \"ceb)!\n\"!)" [expand-file-name file message format "Running %s on %s..." get-buffer-create buffer erase-buffer append flags sc-file delq nil file-name-directory "./" default-directory apply call-process command t 0 status "Running %s...OK" mapcar #[(i) " " [" " i] 2] "\n\n" display-buffer error "Running %s...FAILED"] 8 "\ Execute a command, notifying the user and checking for errors."]) (fset 'sc-enter-comment #[nil "  \"!Nj)" [sc-temp-buffer buffer get-buffer-create format "*%s-Log*" sc-generic-name sc-generic-log-buf ((byte-code " ! ! !ɏ?  GV ) !" [pop-to-buffer buffer erase-buffer set-buffer-modified-p nil sc-log-entry-mode message "Enter log message. Type C-c C-c when done, C-c ? for help." (byte-code " " [recursive-edit nil] 1) ((error t)) buffer-string bs 0 buffer-file-name bury-buffer] 4))] 4 "\ Enter a comment. Return it as a string."]) (fset 'sc-locking-user #[(file) " !@" [sc-lock-info file] 2 "\ Return the login name of the locker of FILE. Return nil if FILE is not locked"]) (fset 'sc-locked-revision #[(file) " !A@" [sc-lock-info file] 2 "\ Return the revision number currently locked for FILE, nil if FILE is not locked."]) (fset 'sc-mode-line #[nil " !  > \"! = ˪ @\" @  A@# @#*" [buffer-file-name file sc-lock-info lock-info global-mode-string ("") sc-mode-line-string append (sc-mode-line-string) make-local-variable na nil format " <%s:>" sc-generic-name user-login-name " <%s: %s>"] 4 "\ Set the mode line for the current buffer. FILE is the file being visited."]) (fset 'sc-temp-buffer #[nil " \"!" [get-buffer-create format "*%s*" sc-generic-name] 4 "\ Return a temporary buffer to use for output"]) (fset 'sc-tree-walk #[(func &rest args) "\n\" ! q  eb#y!pedU\"eb m``{ B )yi  ) ! q  @# A n -" [format "*%s directory*" sc-generic-name buffer-name get-buffer-create buffer default-directory dir nil files erase-buffer sc-tree-list search-forward "not found" t 0 kill-line 1 error "No registered files under %s" file display-buffer apply func args] 5 "\ Apply FUNC to the files registered in the source control system. FUNC is passed the file path and ARGS."]) (fset 'sc-get-version-in-temp-file #[(file revision) "\n!!R!!  \n# qed%) !щ&*" [make-temp-name ccase-protect-expanded-name revision "current" "-" file-name-nondirectory file oldversion get-buffer-create vbuf sc-get-version write-region t 0 kill-buffer call-process "chmod" nil "-w"] 7 "\ For the given FILE, retrieve a copy of the version with given REVISION. The text is retrieved into a tempfile. Return the tempfile name."]) (fset 'sc-insert-file-lock-info #[(file lock-info) "@A@\"!DZ" [lock-info ":" indent-to-column 16 1 file-name-nondirectory file "\n"] 3]) (fset 'sc-list-file-if-locked #[(file &optional arg) " !\n@ \n@ \n\"!)" [sc-lock-info file lock-info arg sc-insert-file-lock-info sit-for 0] 4 "\ List all files underneath the current directory matching a prefix type."]) (fset 'sc-list-file #[(file) " !=\" !ȱ\n@ \n\" !c\" !ȱ\" !ȱ!)" [sc-lock-info file lock-info na indent-to-column 16 1 file-name-nondirectory "\n" sc-insert-file-lock-info sc-new-revision-p "needs update" sit-for 0] 4]) (fset 'sc-update-file #[(file) " ! ! \" # !  q\" ))c\" б!)" [sc-new-revision-p file file-name-nondirectory file-name rename-file sc-get-version-in-temp-file nil t get-file-buffer b revert-buffer sc-mode-line "updated" indent-to-column 16 1 "\n" sit-for 0] 5 "\ get the latest version of the file if a new one was checked-in"]) (byte-code " ######" [sc-log-entry-keymap make-sparse-keymap define-key "i" sc-insert-last-log " " "a" sc-abort-check-in "" "" sc-log-exit ""] 4) (defvar sc-mode-hook nil "\ *Function or functions to run on entry to sc-mode.") (defvar sc-mode nil "\ The currently active source control mode. Use M-x sc-mode to set it") (fset 'sc-mode #[(system) "=\"C!\"  !!!!\"!!\" \"#\"! )" [system nil remove-hook find-file-hooks sc-mode-line delete-menu-item sc-generic-name activate-menubar-hook sc-sensitize-menu sc-mode intern symbol-name format "sc-set-%s-mode" f fboundp error "No source control interface for \"%s\". Please use SCCS, RCS, CVS, or Atria." add-hook add-menu sc-menu run-hooks sc-mode-hook] 4 "\ Toggle sc-mode. SYSTEM can be sccs, rcs or cvs. Cvs requires the pcl-cvs package. The following commands are available \\[sc-next-operation] perform next logical source control operation on current file \\[sc-show-changes] compare the version being edited with an older one \\[sc-version-diff-file] compare two older versions of a file \\[sc-show-history] display change history of current file \\[sc-visit-previous-revision] display an older revision of current file \\[sc-revert-file] revert buffer to last checked-in version \\[sc-list-all-locked-files] show all files locked in current directory \\[sc-list-locked-files] show all files locked by you in current directory \\[sc-list-registered-files] show all files under source control in current directory \\[sc-update-directory] get fresh copies of files checked-in by others in current directory \\[sc-rename-file] rename the current file and its source control file While you are entering a change log message for a check in, sc-log-entry-mode will be in effect. Global user options: sc-diff-command A list consisting of the command and flags to be used for generating context diffs. sc-mode-expert suppresses some conformation prompts, notably for delta aborts and file saves. sc-max-log-size specifies the maximum allowable size of a log message plus one. When using SCCS you have additional commands and options \\[sccs-insert-headers] insert source control headers in current file When you generate headers into a buffer using \\[sccs-insert-headers], the value of sc-insert-headers-hook is called before insertion. If the file is recognized a C or Lisp source, sc-insert-c-header-hook or sc-insert-lisp-header-hook is called after insertion respectively. sccs-headers-wanted which %-keywords to insert when adding headers with C-c h sccs-insert-static if non-nil, keywords inserted in C files get stuffed in a static string area so that what(1) can see them in the compiled object code. When using CVS you have additional commands \\[sc-cvs-update-directory] update the current directory using pcl-cvs \\[sc-cvs-file-status] show the CVS status of current file " (byte-code "\"!C" [sc-mode (nil) intern read-string "Turn on source control mode on for: " "SCCS"] 4)]) (fset 'sc-log-entry-mode #[nil " ! !  \"" [set-syntax-table text-mode-syntax-table use-local-map sc-log-entry-keymap text-mode-abbrev-table local-abbrev-table sc-log-entry-mode major-mode "Source Control Change Log Entry" mode-name run-hooks text-mode-hook sc-log-entry-mode-hook] 3 "\ Major mode for editing log message. These bindings are available when entering the log message \\[sc-log-exit] proceed with check in, ending log message entry \\[sc-insert-last-log] insert log message from last check-in \\[sc-abort-check-in] abort this check-in Entry to the change-log submode calls the value of text-mode-hook, then the value sc-log-entry-mode-hook. " nil]) (defvar sccs-bin-directory (byte-code "!‡!ć!‡!Ƈć" [file-executable-p "/usr/sccs/unget" "/usr/sccs" "/usr/bin/unget" "/usr/bin" file-directory-p "/usr/bin/sccs"] 2) "\ *Directory where to find the sccs executables") (defvar sccs-headers-wanted '("%W%") "\ *SCCS header keywords to be inserted when sccs-insert-header is executed.") (defvar sccs-insert-static t "\ *Insert a static character string when inserting source control headers in C mode. Only relevant for the SCCS mode.") (byte-code "!!‡" [boundp sccs-log-entry-mode nil sccs-current-major-version] 2) (fset 'sccs-name #[(file &optional letter) "??!\n!\n!$)" [file expand-file-name expanded-file format "%sSCCS/%s.%s" file-name-directory letter "s" file-name-nondirectory] 6 "\ Return the sccs-file name corresponding to a given file."]) (fset 'sccs-lock-info #[(file) " \" \" !Ǫ !ljD!q !##qeby``{y``{p!+D*" [sccs-name file "s" "p" lock-file sccs-file file-exists-p nil get-buffer-create "*SCCS tmp*" insert-file search-forward " " t replace-match "\n" 1 name revision kill-buffer] 4 "\ Lock-info method for SCCS. See sc-generic-lock-info"]) (fset 'sccs-do-command #[(buffer command file &rest flags) " B !&)" [sccs-bin-directory exec-path apply sc-do-command buffer command file sccs-name flags] 8 "\ Execute an SCCS command, notifying the user and checking for errors."]) (fset 'sccs-admin #[(file sid) " \"!   P P%ω & \"" [buffer-modified-p y-or-n-p format "%s has been modified. Write it out? " buffer-name save-buffer sccs-do-command "*SCCS*" "admin" file "-i" "-r" sid call-process "chmod" nil "-w" sccs-check-out] 7 "\ Checks a file into sccs. FILE is the unmodified name of the file. SID should be the base-level sid to check it in under."]) (fset 'sccs-register #[(file revision) " !!!ˏ̪ \"" [sccs-load-vars file-exists-p "SCCS" y-or-n-p "Directory SCCS does not exist, create it?" make-directory sccs-admin file revision nil (byte-code "!‡" [load-file "SCCS/emacs-vars.el" nil] 2) ((error t)) "1" sccs-current-major-version] 5]) (fset 'sccs-check-out #[(file lockp) " $" [sccs-do-command "*SCCS*" "get" file lockp "-e"] 5 "\ Retrieve a copy of the latest version of the given file."]) (fset 'sccs-get-version #[(file buffer revision) " P&" [sccs-do-command buffer "get" file revision "-r" "-p" "-s"] 7]) (fset 'sccs-check-in #[(file revision comment) " \" \"&̉ & !q \"*" [sccs-do-command "*SCCS*" "delta" file "-n" format "-r%s" revision "-y%s" comment call-process "chmod" nil "-w" get-file-buffer buffer sccs-check-out] 10 "\ Check-in a given version of the given file with the given comment."]) (byte-code "MMM" [sccs-history #[(file) "p\n#" [sccs-do-command "prs" file] 4] sccs-save-vars #[(sid) "! ű )" [find-file "SCCS/emacs-vars.el" erase-buffer "(setq sccs-current-major-version \"" sid "\")" basic-save-buffer] 3] sccs-load-vars #[nil "É" [nil (byte-code "!‡" [load-file "SCCS/emacs-vars.el" nil] 2) ((error t)) "1" sccs-current-major-version] 3]] 2) (fset 'sccs-insert-headers #[nil "~ !eb! = = = = = = = *" [sccs-check-headers y-or-n-p "SCCS headers already exist. Insert another set?" run-hooks sccs-insert-headers-hook major-mode c-mode sccs-insert-c-header lisp-mode sccs-insert-lisp-header emacs-lisp-mode scheme-mode nroff-mode sccs-insert-nroff-header plain-tex-mode sccs-insert-tex-header texinfo-mode sccs-insert-texinfo-header sccs-insert-generic-header] 2 "\ *Insert headers for use with the Source Code Control System. Headers desired are inserted at the start of the buffer, and are pulled from the variable sccs-headers-wanted" nil]) (byte-code "MMMMMM" [sccs-insert-c-header #[nil "c\"c \"ͱϱ!*" [nil en st "/*\n" mapcar #[(s) " ±" [" * " s "\n"] 3] sccs-headers-wanted " */\n\n" sccs-insert-static string-match "\\.h$" buffer-file-name "#ifndef lint\n" "static char *sccsid" " = \"%W%\";\n" "#endif /* lint */\n\n" run-hooks sccs-insert-c-header-hook] 3] sccs-insert-lisp-header #[nil "\n\"c!" [mapcar #[(s) " ±" [";;; " s "\n"] 3] sccs-headers-wanted "\n" run-hooks sccs-insert-lisp-header-hook] 3] sccs-insert-nroff-header #[nil "\n\"c!" [mapcar #[(s) " ±" [".\\\" " s "\n"] 3] sccs-headers-wanted "\n" run-hooks sccs-insert-nroff-header-hook] 3] sccs-insert-tex-header #[nil "\n\"c!" [mapcar #[(s) " ±" ["%% " s "\n"] 3] sccs-headers-wanted "\n" run-hooks sccs-insert-tex-header-hook] 3] sccs-insert-texinfo-header #[nil "\n\"c!" [mapcar #[(s) " ±" ["@comment " s "\n"] 3] sccs-headers-wanted "\n" run-hooks sccs-insert-texinfo-header-hook] 3] sccs-insert-generic-header #[nil "  \" \"\n ĪDZ+" [comment-start "#" comment-start-sccs comment-end "" comment-end-sccs string-match "\n" dont-insert-nl-p mapcar #[(s) "\n êƱ" [comment-start-sccs " " s "" comment-end-sccs dont-insert-nl-p "\n"] 6] sccs-headers-wanted] 3]] 2) (fset 'sccs-check-headers #[nil "ebd#*" [nil case-fold-search re-search-forward "%[MIRLBSDHTEGUYFPQCZWA]%" t] 4 "\ Check if the current file has any SCCS headers in it."]) (fset 'sccs-tree-list #[nil "Q&eb##q" [call-process "/bin/sh" nil t "-c" "/bin/ls -1 " default-directory "SCCS/s.*" search-forward "SCCS/s." replace-match ""] 9 "\ List all the registered files in the current directory"]) (fset 'sccs-new-revision-p #[(file) "\n!\n\"" [file-newer-than-file-p sccs-name file] 3 "\ True if the SCCS archive is more recent than the file itself"]) (fset 'sccs-revert #[(file) "\n\"!\n!\n$" [delete-file sccs-name file "p" sccs-do-command "*SCCS*" "get" "-s"] 5 "\ Cancel a check-out and get a fresh copy of the file"]) (fset 'sccs-rename #[(old new) "\n\"!\n\" \"#\n\"!\n\" \"#" [file-exists-p sccs-name old "p" rename-file new t "s"] 5 "\ Rename the SCCS archives for OLD to NEW"]) (fset 'rcs-name #[(file) "??!P !\n!P!\n!\n!# *" [file expand-file-name name ",v" rcs-file file-exists-p file-name-directory "RCS" format "%sRCS/%s,v" file-name-nondirectory] 6 "\ Return the rcs-file corresponding to a given file."]) (fset 'rcs-lock-info #[(file) " !? !??Ɗ!q &eb! #‰DӰ!‰DԔԕ{ՔՕ{D)*" [rcs-name file nil locks-regexp rcs-file file-exists-p get-buffer-create "*RCS tmp*" erase-buffer call-process "rlog" t "-L" "-h" looking-at "\n.*Working file" "^locks:" "^locks:.*$\n" re-search-forward "[ ]*\\([^:]*\\): \\([0-9\\.]*\\)" 1 2] 9 "\ Lock-info method for RCS. See sc-generic-lock-info"]) (byte-code "MMM" [rcs-register #[(file revision) "!!!ȉ  !&" [file-exists-p "RCS" y-or-n-p "Directory RCS does not exist, create it?" make-directory "SCCS" sc-do-command "*RCS*" "ci" file rcs-name "-u"] 7] rcs-check-out #[(file lockp) "‰ ! &" [sc-do-command "*RCS*" "co" file rcs-name lockp "-l"] 7] rcs-get-version #[(file buffer revision) " ‰ ! P&" [sc-do-command buffer "co" file rcs-name revision "-p" "-q"] 8]] 2) (fset 'rcs-check-in #[(file revision comment) "‰ !\" !˪ \"&" [sc-do-command "*RCS*" "ci" file rcs-name "-f" format "-m%s" comment revision sc-locked-revision "-u" "-u%s"] 11 "\ Check-in a given version of the given file with the given comment."]) (fset 'rcs-history #[(file) "p\n\n!%" [sc-do-command "rlog" file rcs-name] 7]) (fset 'rcs-tree-list #[nil "Q&Q&eb##qeb##q" [call-process "/bin/sh" nil t "-c" "/bin/ls -1 " default-directory "RCS/*,v" "*,v" search-forward "RCS/" replace-match "" ",v"] 9 "\ List all the registered files in the current directory"]) (fset 'rcs-new-revision-p #[(file) "\n!\n\"" [file-newer-than-file-p rcs-name file] 3 "\ True if the archive is more recent than the file itself"]) (fset 'rcs-revert #[(file) "‰ !& !lj !%" [sc-do-command "*RCS*" "rcs" file rcs-name "-u" delete-file "co"] 7 "\ Cancel a check-out and get a fresh copy of the file"]) (fset 'rcs-rename #[(old new) "\n!!\n! !#" [file-exists-p rcs-name old rename-file new t] 4 "\ Rename the archives for OLD to NEW"]) (fset 'cvs-lock-info #[(file) "D" [nil] 2 "\ Lock-info method for CVS, different from RCS and SCCS modes. File are never locked in CVS."]) (byte-code "MMM" [cvs-register #[(file revision) " !&" [sc-do-command "*CVS*" "cvs add" cvs-program file file-name-nondirectory "add" "-mInitial revision"] 8] cvs-check-out (lambda (file lockp)) cvs-get-version #[(file buffer revision) " P& " [sc-do-command buffer "cvs update" cvs-program file "update" revision "-r" "-p" "-q"] 10]] 2) (fset 'cvs-check-in #[(file revision comment) " \"\n\"&" [sc-do-command "*CVS*" "cvs commit" cvs-program file "commit" revision format "-r%s" "-m%s" comment] 11 "\ Check-in a given version of the given file with the given comment."]) (fset 'cvs-history #[(file) "p\n &" [sc-do-command "cvs log" cvs-program file "log"] 7]) (fset 'cvs-revert #[(file) " ! &" [delete-file file sc-do-command "*CVS*" "cvs update" cvs-program "update"] 7 "\ Cancel a check-out and get a fresh copy of the file"]) (fset 'sc-cvs-update-directory #[nil " !" [cvs-update default-directory] 2 "\ Update the current directory by calling cvs-update from pcl-cvs" nil]) (fset 'sc-cvs-file-status #[nil " \" &)qeb)!" [buffer-file-name error "There is no file associated with buffer %s" buffer-name file sc-do-command "*CVS*" "cvs status" cvs-program "status" "-v" display-buffer] 8 "\ Show the CVS status of the current file" nil]) (byte-code "MMMM" [ccase-is-registered-3 #[(fod) "!‡ !@\"ʉkAbª&q \"ʪ\"ª*+" [fod file-readable-p na sc-ccase-mfs-prefixes nil expand-file-name file f dirs string-match t sc-do-command "*CCase*" "describe" "cleartool" buffer-string s "@@" "^Unix"] 8] ccase-is-registered #[(fod) " !=" [ccase-is-registered-3 fod t] 2] ccase-lock-info #[(file) " !=q ) \" ʔʕO ˔˕OD‰D *" [ccase-is-registered-3 file nil s cc t "*CCase*" buffer-string string-match "@@[^\n]*CHECKEDOUT\" from \\([^ ]*\\)[^\n]*\n[^\n]* by \\([^(\n]*\\) (" 1 2] 5] ccase-maybe-comment #[(tag) " > " [tag sc-ccase-comment-on sc-enter-comment] 2]] 2) (fset 'ccase-register #[(file revision) " !\n!!\n& &\n&)" [file-name-directory file dpath ccase-is-registered error "Cannot register file outside of VOB" sc-do-command "*CCase*" "co - dir" "cleartool" "co" "register" "mkelem" "ci - dir" "ci"] 7 "\ Registers the file. We don't support the revision argument. Also, we have to checkout the directory first."]) (fset 'ccase-check-out #[(file lockp) "!\nȪ\n\n ˪& )" [ccase-maybe-comment checkout comment sc-do-command "*CCase*" "co" "cleartool" file "-c" "-nc" ccase-reserve-p "-res" "-unr"] 10 "\ Checks out the latest version of FILE. If LOCKP is not NIL, FILE is also locked."]) (fset 'ccase-reserve-p #[nil "==‡!" [sc-ccase-reserve t nil y-or-n-p "Reserve Checkout? "] 2 "\ Determine whether the user wants a reserved or unreserved checkout"]) (fset 'ccase-get-version #[(file buffer revision) "qed|\n Q!)" [buffer insert-file-contents file "@@/" revision] 4 "\ Insert a previous revison of FILE in BUFFER. REVISION is the revision number requested."]) (fset 'ccase-check-in #[(file revision message) " & " [sc-do-command "*CCase*" "ci" "cleartool" file "-c" message sc-mode-expert "-ide"] 10 "\ Check in FILE with revision REVISION. MESSAGE is a string describing the changes."]) (fset 'ccase-history #[(file) " &" [sc-do-command buffer-name "history" "cleartool" file "lsh"] 7 "\ Insert the edit history of FILE in the current buffer."]) (defun ccase-tree-list nil "\ List in the current buffer the files registered in the source control system") (fset 'ccase-new-revision-p #[(file) "\n&qeb#ϔϕ{К\nҔҕ{RԔԕ{\n &#Ҕҕ{\n ?\n\"." [nil br2 br1 res newfile pos sc-do-command "*CCase*" "Describe" "cleartool" file "des" search-forward-regexp "@@\\([^ \"]*\\)CHECKEDOUT\" from \\([^ ]*\\) (\\([a-z]*\\))" t 3 "unreserved" "@@" 1 "LATEST" 2 "@@\\([^ \"]*\\)" error "%s not currently checked out"] 8 "\ True if a new revision of FILE was checked in since we last got a copy of it"]) (fset 'ccase-revert #[(file) " &" [sc-do-command "*CCase*" "uco" "cleartool" file "unco"] 7 "\ Cancel a check out of FILE and get back the latest checked in version"]) (fset 'ccase-rename #[(old new) " !! !! Ϊ & Ϊ & Ϊ &*" [file-name-directory old ccase-maybe-comment rename comment dpath ccase-is-registered error "Cannot rename file outside of VOB" sc-do-command "*CCase*" "co - dir" "cleartool" "co" "-c" "-nc" "mv" new "ci - dir" "ci"] 10 "\ Rename the source control archives for OLD to NEW"]) (fset 'sc-ccase-checkout-dir #[nil "! !! ͪ &*" [default-directory ccase-maybe-comment checkout-dir comment dpath ccase-is-registered error "Cannot checkout directory outside of VOB" sc-do-command "*CCase*" "co - dir" "cleartool" "co" "-c" "-nc"] 9 "\ Checkout the directory this file is in" nil]) (fset 'sc-ccase-checkin-dir #[nil "! !! ͪ &*" [default-directory ccase-maybe-comment checkin-dir comment dpath ccase-is-registered error "Cannot checkout directory outside of VOB" sc-do-command "*CCase*" "ci - dir" "cleartool" "ci" "-c" "-nc"] 9 "\ Checkin the directory this file is in" nil]) (fset 'sc-ccase-editcs #[nil "&!\" q! ed #! &)" [sc-do-command "*CCase-cs*" "catcs" "cleartool" "" nil switch-to-buffer-other-window local-set-key "" exit-recursive-edit recursive-edit make-temp-name "/tmp/configspec" name write-region kill-buffer "*CCase*" "setcs"] 7 "\ Edit Config Spec for this view" nil]) (fset 'sc-ccase-new-brtype #[(brt) "!\nɪ\n\n&)" [ccase-maybe-comment new-brtype comment sc-do-command "*CCase*" "mkbrt" "cleartool" brt "mkbrtype" "-c" "-nc"] 9 "\ Create a new branch type" "sBranch Name: "]) (fset 'sc-ccase-new-branch #[(brch) " ! ʪ  & *" [buffer-file-name ccase-maybe-comment new-branch comment file sc-do-command "*CCase*" "mkbrch" "cleartool" "mkbranch" "-c" "-nc" brch] 10 "\ Create a new branch for element" "sBranch: "]) (fset 'sc-ccase-checkin-merge #[nil " p! &qeb# ДЕ{P Ӫ & qΉ\"! \"," [buffer-file-name ccase-maybe-comment checkin-merge comment buf file sc-do-command "*CCase*" "Describe" "cleartool" "des" search-forward-regexp "@@\\([^ \"]*\\)CHECKEDOUT\" from \\([^ ]*\\) (\\([a-z]*\\))" nil t "Merging" 1 "LATEST" "merge" "-c" "-nc" "-abort" "-to" "-ver" revert-buffer display-buffer error "File %s not checked out"] 13 "\ Merge in changes to enable checkin" nil]) (fset 'sc-ccase-version-tree #[nil "  &!)" [buffer-file-name p sc-do-command "*CCase*" "lsvtree" "cleartool" display-buffer] 7 "\ List version tree for file" nil]) (fset 'ccase-protect-expanded-name #[(revision) " \" O\"Im*" [sc-generic-name "CCase" string-match "/" revision 0 nil i str 58] 3 "\ Protect ccase extended names from being used as temp names. Munge /s into :s"]) (byte-code "MM" [sc-ccase-list-locked-files #[nil " &" [sc-do-command "*CCase directory*" "listing" "cleartool" default-directory nil "lsco" "-cview"] 8 nil nil] sc-ccase-list-all-locked-files #[nil " &" [sc-do-command "*CCase directory*" "listing" "cleartool" default-directory nil "lsco"] 7 nil nil]] 2) (fset 'sc-ccase-list-registered-files #[nil " & " [sc-do-command "*CCase directory*" "listing" "cleartool" default-directory nil "ls" "-r" "-vis" "-nxname"] 10 "\ List files registered in clearcase" nil]) (defvar sc-default-menu '(["NEXT-OPERATION" sc-next-operation t nil] ["Update Current Directory" sc-update-directory t] "----" ["Revert File" sc-revert-file t nil] ["Rename File" sc-rename-this-file t nil] "----" ["Show Changes" sc-show-changes t] ["Show Changes Since Revision..." sc-show-revision-changes t] ["Visit Previous Revision..." sc-visit-previous-revision t] ["Show Edit History" sc-show-history t] "----" ["List Locked Files" sc-list-locked-files t] ["List Locked Files Any User" sc-list-all-locked-files t] ["List Registered Files" sc-list-registered-files t]) "\ Menubar entry for using the revision control system.") (defvar sc-cvs-menu '(["Update Current Directory" sc-cvs-update-directory t] ["Revert File" sc-revert-file t nil] "----" ["Show Changes" sc-show-changes t] ["Show Changes Since Revision..." sc-show-revision-changes t] ["Visit Previous Revision..." sc-visit-previous-revision t] ["Show File Status" sc-cvs-file-status t] ["Show Edit History" sc-show-history t]) "\ Menubar entry for using the revision control system with CVS.") (defvar sc-ccase-menu '(["NEXT-OPERATION" sc-next-operation t nil] ["Revert File" sc-revert-file t nil] ["Checkin Merge" sc-ccase-checkin-merge t] "----" ["Show Changes" sc-show-changes t] ["Show Changes Since Revision..." sc-show-revision-changes t] ["Visit Previous Revision..." sc-visit-previous-revision t] ["Show Edit History" sc-show-history t] "----" ("Directories" ["Checkout Directory" sc-ccase-checkout-dir t] ["Checkin Directory" sc-ccase-checkin-dir t] ["Rename File..." sc-rename-this-file t nil]) ("Configs" ["Edit Config Spec..." sc-ccase-editcs t] ["Create New Branch..." sc-ccase-new-brtype t] ["Make New Branch..." sc-ccase-new-branch t]) ("Listings" ["List Version Tree" sc-ccase-version-tree t] ["List Locked Files" sc-ccase-list-locked-files t] ["List Locked Files Any User" sc-ccase-list-all-locked-files t] ["List Registered Files" sc-ccase-list-registered-files t])) "\ Menubar entry for using the revision control system.") (byte-code "MMMMMMM!" [sc-sensitize-menu #[nil " \nC\"@A!   ! !  @< ABAg!H==ت٪@ڪI=@\nܚ@ II=IGV I=\n!>!I) A55@A5.χ" [find-menu-item current-menubar sc-generic-name rest t case-fold-search buffer-file-name file-name-nondirectory buffer-name file file-name-directory default-directory dir sc-lock-info lock-info nil command nested-rest item vectorp 1 sc-next-operation 0 na "Not Available" "Register File" "Check out File" "Check in File" "CCase" user-login-name 2 3 ("CVS" "CCase") enable-file-items (sc-force-check-in-file sc-register-file sc-revert-file sc-rename-this-file sc-show-history sc-show-changes sc-show-revision-changes sc-visit-previous-revision sc-cvs-file-status sc-ccase-checkout-dir sc-ccase-checkin-dir sc-ccase-editcs sc-ccase-new-brtype sc-ccase-new-branch sc-ccase-checkin-merge sc-ccase-needs-merge sc-ccase-merge-changes sc-ccase-create-label sc-ccase-label-sources sc-ccase-version-tree sc-list-locked-files sc-list-all-locked-files sc-ccase-list-registered-files)] 5] sc-set-SCCS-mode #[nil "   @ABB##" ["SCCS" sc-generic-name t sc-can-hack-dir sccs-lock-info sc-generic-lock-info sccs-register sc-generic-register sccs-check-out sc-generic-check-out sccs-get-version sc-generic-get-version sccs-check-in sc-generic-check-in sccs-history sc-generic-history sccs-tree-list sc-generic-tree-list sccs-new-revision-p sc-generic-new-revision-p sccs-revert sc-generic-revert sccs-rename sc-generic-rename sc-default-menu ["Insert Headers" sccs-insert-headers t] sc-menu define-key sc-prefix-map "h" sccs-insert-headers "" sc-update-directory] 4] sc-set-RCS-mode #[nil "   #" ["RCS" sc-generic-name t sc-can-hack-dir rcs-lock-info sc-generic-lock-info rcs-register sc-generic-register rcs-check-out sc-generic-check-out rcs-get-version sc-generic-get-version rcs-check-in sc-generic-check-in rcs-history sc-generic-history rcs-tree-list sc-generic-tree-list rcs-new-revision-p sc-generic-new-revision-p rcs-revert sc-generic-revert rcs-rename sc-generic-rename sc-default-menu sc-menu define-key sc-prefix-map "" sc-update-directory] 4] sc-set-CVS-mode #[nil "!   ##" [require pcl-cvs "CVS" sc-generic-name t sc-can-hack-dir cvs-lock-info sc-generic-lock-info cvs-register sc-generic-register cvs-check-out sc-generic-check-out cvs-get-version sc-generic-get-version cvs-check-in sc-generic-check-in cvs-history sc-generic-history cvs-tree-list sc-generic-tree-list cvs-new-revision-p sc-generic-new-revision-p cvs-revert sc-generic-revert cvs-rename sc-generic-rename sc-cvs-menu sc-menu define-key sc-prefix-map "" sc-cvs-update-directory "s" sc-cvs-file-status] 4] sc-set-CLEARCASE-mode #[nil "   !qed$eb‰ ⏫ !Bo$+" ["CCase" sc-generic-name nil sc-can-hack-dir ccase-lock-info sc-generic-lock-info ccase-register sc-generic-register ccase-check-out sc-generic-check-out ccase-get-version sc-generic-get-version ccase-check-in sc-generic-check-in ccase-history sc-generic-history ccase-tree-list sc-generic-tree-list ccase-new-revision-p sc-generic-new-revision-p ccase-revert sc-generic-revert ccase-rename sc-generic-rename sc-ccase-menu sc-menu get-buffer-create "*CCase*" shell-command-on-region "df -t mfs | sed -n 's%.*[ ]\\(/[^ ]*\\)$%\\1%p'" t l x (byte-code "p!" [read x] 2) ((error)) prin1-to-string sc-ccase-mfs-prefixes] 5] sc-set-ATRIA-mode #[nil " " [sc-set-CLEARCASE-mode] 1] sc-set-CCASE-mode #[nil " " [sc-set-CLEARCASE-mode] 1] provide generic-sc] 2)