;ELC ;;; Compiled by mwolson@grepfind.mwolson.org on Thu Jan 24 00:15:31 2008 ;;; from file /stuff/proj/emacs/dvc/mwolson/lisp/tla-core.el ;;; in Emacs version 23.0.50.2 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`tla-core.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\207" [require dvc-core dvc-utils tla-defs tla-autoconf dvc-lisp ewoc pp] 2) #@62 Return the Arch executable to use. Can be either tla or baz. (defalias 'tla--executable #[nil "\303=\203 \207\304=\205\n\207" [tla-arch-branch tla-executable baz-executable tla baz] 2 (#$ . 770)]) #@53 Return the name of the branch of arch, as a string. (defalias 'tla-arch-branch-name #[nil "\301!\207" [tla-arch-branch symbol-name] 2 (#$ . 979)]) #@65 Return the name of the branch of arch, as a capitalized string. (defalias 'tla-arch-branch-name-caps #[nil "\301\302!!\207" [tla-arch-branch capitalize symbol-name] 3 (#$ . 1133)]) #@400 Return the tree root for LOCATION, nil if not in a local tree. Computation is done from withing Emacs, by looking at an {arch} directory in a parent buffer of LOCATION. This is therefore very fast. If LOCATION is nil, the tree root is returned, and it is guaranteed to end in a "/" character. If NO-ERROR is non-nil, don't raise an error if LOCATION is not an arch managed tree (but return nil). (defalias 'tla-tree-root #[(&optional location no-error interactive) "\303\304\206t\305 \n%\207" [interactive location no-error dvc-tree-root-helper "{arch}/=tagging-method" "%S is not in an arch-managed tree!"] 6 (#$ . 1322) nil]) #@50 Return the last visited xtla's inventory buffer. (defalias 'tla--last-visited-inventory-buffer #[nil "\304\305\306\307\310\311\"A\"\"\312 \313\n\314\"@\211A@+\207" [dvc-buffers-tree bl inventories x remove nil mapcar #[(elt) "\302\211A@)!\205\f\207" [elt x buffer-live-p] 3] assoc inventory buffer-list sort #[(a b) "\306\211A@)\n\"\306 \211A@)\n\"\211\fW*\207" [a x bl b bindex aindex dvc-position] 5]] 8 (#$ . 1962)]) #@46 Switch to the last visited inventory buffer. (defalias 'tla-show-inventory-buffer #[nil "\300\301 !\207" [dvc-switch-to-buffer tla--last-visited-inventory-buffer] 2 (#$ . 2401) nil]) #@20 From now, use tla. (defalias 'tla-use-tla #[nil "\301 \210\302\211\207" [tla-arch-branch tla-autoconf-reset tla] 2 (#$ . 2590) nil]) #@20 From now, use baz. (defalias 'tla-use-baz #[nil "\301 \210\302\211\207" [tla-arch-branch tla-autoconf-reset baz] 2 (#$ . 2730) nil]) #@49 Run tla asynchronously. See `dvc-run-dvc-async' (defalias 'tla--run-tla-async #[(arguments &rest keys) "\203\303=\204\304\305 \n$\207\306\307!\207" [tla-arch-branch arguments keys none apply dvc-run-dvc-async error "No tla variant is installed on your system"] 5 (#$ . 2870)]) #@47 Run tla synchronously. See `dvc-run-dvc-sync' (defalias 'tla--run-tla-sync #[(arguments &rest keys) "\203\303=\204\304\305 \n$\207\306\307!\207" [tla-arch-branch arguments keys none apply dvc-run-dvc-sync error "No tla variant is installed on your system"] 5 (#$ . 3160)]) #@1150 Split "--" connected string NAME into 5 elements list. The first element is always nil if ARCHIVE is not given. If ARCHIVE is given, use it as the first. Even if the elements in name are less than 5, the list is filled by nil to make the length 5. ELISP> (tla--name-split-semi-qualified "branch--category--version--revision" "archive") ("archive" "branch" "category" "version" "revision") ELISP> (tla--name-split-semi-qualified "branch--category--version--revision") (nil "branch" "category" "version" "revision") ELISP> (tla--name-split-semi-qualified "branch--category--version") (nil "branch" "category" "version" nil) ELISP> (tla--name-split-semi-qualified "branch--category--version" "archive") ("archive" "branch" "category" "version" nil) ELISP> (tla--name-split-semi-qualified "branch--category" "archive") ("archive" "branch" "category" nil nil) ELISP> (tla--name-split-semi-qualified "branch--category" nil) (nil "branch" "category" nil nil) ELISP> (tla--name-split-semi-qualified "branch--category--" nil) (nil "branch" "category" "" nil) (defalias 'tla--name-split-semi-qualified #[(name &optional archive) "\304!\305 GV\203\306 B\202\n \237B\307\310 8!\203. @ A@\311\310 8\312 8\257 *\207" [name list archive result tla--name-split-semi-qualified-internal 4 nil tla--is-version-string 2 "" 3] 6 (#$ . 3448)]) #@234 Non-nil if STRING is a candidate for a version name. That is, if it contains only digits and dots. The regexp here is less strict than the one of tla, but must verify (tla--is-version-string string) => string can't be a branch name. (defalias 'tla--is-version-string #[(string) "\205\301\302\"\207" [string string-match "^[0-9.]+$"] 3 (#$ . 4887)]) #@85 Helper function for `tla--name-split-semi-qualified'. Splits a semi-qualified NAME. (defalias 'tla--name-split-semi-qualified-internal #[(name) "\301\302\"\203\303\304\"\305\303\306\"!B\207\307B\207" [name string-match "^\\(.+\\)--\\(\\([^-]\\|-[^-]\\)*\\)" match-string 2 tla--name-split-semi-qualified-internal 1 nil] 5 (#$ . 5246)]) #@316 Parse a fully qualified revision NAME, but possibly incomplete. email@address.com--arch/cat--branch--ver -> ("email@address.com--arch" "cat" "branch" "ver" nil) email@address.com--arch/cat -> ("email@address.com--arch" "cat" nil nil nil) email@address.com--arch -> ("email@address.com--arch" nil nil nil nil) (defalias 'tla--name-split #[(name) "\301\302\"\203\303\304\305\"\304\306\"\"\207\307\230\203 \310\211\211\211\211\257\207\310\211\211\211\257\207" [name string-match "\\(.*\\)/\\(.*\\)" tla--name-split-semi-qualified match-string 2 1 "" nil] 5 (#$ . 5595)]) #@252 Concatenate COMP with "--". This function can accept strings or a list which contains strings. ELISP> (tla--name-construct-semi-qualified "a" "b" "c") "a--b--c" ELISP> (tla--name-construct-semi-qualified (list "a" "b" "c")) "a--b--c" (defalias 'tla--name-construct-semi-qualified #[(&rest comp) "@:\203 @\211A@)\302\230\203&@\303\304\305\306\307\211AA)\"\303#Q\207\304\305\306\307\"\303#\207" [comp x "" "--" mapconcat identity remove nil] 8 (#$ . 6186)]) #@418 Create the revision name ARCHIVE/CATEGORY--BRANCH--VERSION--REVISION. The arguments may be nil. If ARCHIVE is a revision name list like (archive category branch version revision), the list element is mapped to arguments before creating the fully qualified revision name. If the branch name is the empty string and the version is defined, then, we have an unnamed branch. The full name is archive/category--version. (defalias 'tla--name-construct #[(archive &optional category branch version revision) ":\203\306!\307!\310!\311!\312!\313 \n \f$\2052\314\230?\2052 \2051\315P P)\207" [archive category branch version revision semi tla--name-category tla--name-branch tla--name-version tla--name-revision tla--name-archive tla--name-construct-semi-qualified "" "/"] 5 (#$ . 6677)]) (defalias 'tla-revision-id-to-list #[(rev-id) "\303\304\"\210@\305=\204@\306=\204\307\310\"\210\311!\312!\303\313 \"\210\303\314\n\"\210\n\315=\2035 @\202K\n\316=\203G\317 @A@ A@\"\202K\307\320\n\"*\207" [rev-id data type dvc-trace "rev-id=%S" tla baz error "%S is not a tla/baz revision ID." dvc-revision-get-data dvc-revision-get-type "data=%S" "type=%S" revision previous-revision tla-revision-direct-ancestor "TODO: type of revision not implemented: %S"] 3]) #@102 Get archive component from TARGET. Both representation of TARGET, a string and a list is acceptable. (defalias 'tla--name-archive #[(target) ";\203 \301!@\207" [target tla--name-split] 2 (#$ . 7964)]) #@103 Get category component from TARGET. Both representation of TARGET, a string and a list is acceptable. (defalias 'tla--name-category #[(target) ";\203 \302!\211A@)\207" [target x tla--name-split] 3 (#$ . 8177)]) #@103 Get branch component from a TARGET. Both representation of TARGET, a string and a list is acceptable. (defalias 'tla--name-branch #[(target) ";\203 \302!\211AA)@\207" [target x tla--name-split] 3 (#$ . 8401)]) #@102 Get version component from TARGET. Both representation of TARGET, a string and a list is acceptable. (defalias 'tla--name-version #[(target) ";\203 \302!\211AA)\211A@)\207" [target x tla--name-split] 3 (#$ . 8624)]) #@103 Get revision component from TARGET. Both representation of TARGET, a string and a list is acceptable. (defalias 'tla--name-revision #[(target) ";\203 \302!\211AA)\211AA)@\207" [target x tla--name-split] 3 (#$ . 8854)]) #@957 Mask ORIGINAL, a tla revision name by masks; and return the masked value. If DO-CONSTRUCT-P is given, the result is converted to a string by `tla--name-construct'. ARCHIVE-MASK, CATEGORY-MASK, BRANCH-MASK, VERSION-MASK and REVISION-MASK should be either nil or t, and indicate whether that field should be masked. If a mask value is nil, the associated element in ORIGINAL is set to nil. Else If a mask value is a string, the associated element in ORIGINAL is set to the string. Else the associated element in ORIGINAL is not changed. Examples: ELISP> (tla--name-mask '("a" "c" "b" "v" "r") nil t t t t nil) ("a" "c" "b" "v" nil) ELISP> (tla--name-mask '("a" "c" "b" "v" "r") nil t t t nil nil) ("a" "c" "b" nil nil) ELISP> (tla--name-mask '("a" "c" "b" "v" "r") t t t t nil nil) "a/c--b" ELISP> (tla--name-mask '("a" "c" "b" "v" "r") t nil nil nil nil t) "r" ELISP> (tla--name-mask '("a" "c" "b" "v" "r") t nil nil nil t t) "v--r" ELISP> (defalias 'tla--name-mask #[(original do-construct-p &optional archive-mask category-mask branch-mask version-mask revision-mask) ";\203 \306!:\205q \205 ;\203 \202\307!\n\205.\n;\203+\n\202.\310! \205> ;\203; \202>\311!\f\205N\f;\203K\f\202N\312! \205^ ;\203[ \202^\313!\257 \203n\314 !\202p )\207" [original archive-mask category-mask branch-mask version-mask revision-mask tla--name-split tla--name-archive tla--name-category tla--name-branch tla--name-version tla--name-revision tla--name-construct masked do-construct-p] 6 (#$ . 9087)]) #@479 Compare the fully qualified revision list TARGET with a MASK. Each parameter is a list. The elements of the both lists are compared via a regexp match. When the mask part of a component is nil, this comparision is skipped. Here are some examples: (tla--name-match '("xsteve@nit.at--public" "xtla" "main" "0.1" "patch-116") '(nil "xt.*" "main" nil nil)) => t (tla--name-match '("xsteve@nit.at--public" "xtla" "main" "0.1" "patch-116") '(nil "xt.*" "devel" nil nil)) => nil (defalias 'tla--name-match #[(target mask) " \306\211\307  \2036 @ @\211\203 \310 \f\"\n\203/ A A\202 \306\211 \204\n\205;\307-\207" [target mask matching m-part t-part ml nil t string-match tl] 6 (#$ . 10629)]) #@276 Match TARGET against a list of possible matches. Every entry of MATCH-LIST is a list that contains a match element and a possible result. The target is matched against the elements in the match-list. If a match is found return the corresponding result, otherwise return nil. (defalias 'tla--name-match-from-list #[(target match-list) "\306\211\211 \204/\f\203/\f\211@@)\f\211@A)@\307 \"\205(\n\fA\202 ,\207" [match-list result data match ml x nil tla--name-match target] 5 (#$ . 11349)]) #@67 Return the newest revision for ARCHIVE/CATEGORY--BRANCH--VERSION. (defalias 'tla--version-head #[(archive category branch version) "\304\305\306 \n $D\307\310#\207" [archive category branch version tla--run-tla-sync "revisions" tla--name-construct :finished #[(output error status arguments) "rq\210db\210\301\302!\210\303`\304 \")\207" [output re-search-backward "^." buffer-substring-no-properties line-end-position] 3]] 7 (#$ . 11861)]) #@312 Non-nil when the list of archives is built. In tla--archive-tree, the list of archives is built by running "baz archives", but some items can be added also while adding categories, branches, ... In this case, this variable remains nil so that "baz archives" is ran next time, to get the full list of archives. (defvar tla--archive-tree-archives-complete nil (#$ . 12310)) #@1319 Arch archive/category/branch/version/revision are stored in assoc list: (("xsteve@nit.at--public" "http://arch.xsteve.at/2004") [...] ("mbp@sourcefrog.net--2004" "http://sourcefrog.net/arch/mbp@sourcefrog.net--2004" ("xtla") ("tilly") [...] ("dupes" ("mainline" ("0.1"))) [...] ("archzoom")) ("mark@dishevelled.net--2003-mst" "http://members.iinet.net.au/~mtriggs/arch/") ("lord@emf.net--2004" "http://regexps.srparish.net/{archives}/lord@emf.net--2004") [...] ("Matthieu.Moy@imag.fr--public" "http://www-verimag.imag.fr/webdav/moy/public" ("xtla" ("main" ("0.1" ("patch-228" "Merged from Robert (patch8-9), Milan (patch21-22), Stefan (patch5-8)" "Matthieu Moy " "2004-06-03 20:13:11 GMT") ("patch-227" "Fix default-directory in tla--run-tla-sync, fix in dvc-diff-ediff" "Matthieu Moy " "2004-06-03 15:26:15 GMT") [...] ("patch-1" "typo" "Matthieu Moy " "2004-04-07 22:57:00 GMT") ("base-0" "tag of xsteve@nit.at--public/xtla--main--0.1--patch-5" "Matthieu Moy " "2004-04-07 22:52:39 GMT"))))) [...] ) This list is initially empty, and is built/rebuilt on demand. (defvar tla--archive-tree nil (#$ . 12691)) #@71 In PARENT, update VALUE. REST are the items that are already present. (defalias 'tla--archive-tree-setcdr #[(parent value &optional rest) "A\305\n \" \203 \204\n\fB B\241\202% \205%\f\205% \f\241*\207" [parent current value list-details rest assoc] 3 (#$ . 14059)]) #@26 In PARENT, update VALUE. (defalias 'tla--archive-tree-setcddr #[(parent value) "\211AA)\211\203\304 \n\"?\205A \305B\nB\241)\207" [parent x current value assoc nil] 4 (#$ . 14342)]) #@216 Add ARCHIVE at LOCATIONS to the archive tree. If OLD is provided, it is an old archive tree from which some information can be found (this is useful to keep the category/branch/version info for existing archives). (defalias 'tla--archive-tree-add-archive #[(archive locations &optional old) "\306!\203\306!\211A\211@ A\f\206 \240+\207\306 \"\fD\211\2036A\211 AA)\241\210\nB\211\n*\207" [archive a val oldlocation locations old tla--archive-tree-get-archive newinfo oldinfo x tla--archive-tree] 4 (#$ . 14539)]) #@104 Get the value of ARCHIVE from ARCHIVE-TREE. If ARCHIVE-TREE is not given, `tla--archive-tree' is used. (defalias 'tla--archive-tree-get-archive #[(archive &optional archive-tree) "\303 \206\n\"\207" [archive archive-tree tla--archive-tree assoc] 3 (#$ . 15083)]) #@47 Add a new category to ARCHIVE named CATEGORY. (defalias 'tla--archive-tree-add-category #[(archive category) "\302\303\"\210\304\305! \"\207" [archive category tla--archive-tree-add-archive nil tla--archive-tree-setcddr tla--archive-tree-get-archive] 3 (#$ . 15355)]) #@29 From ARCHIVE, get CATEGORY. (defalias 'tla--archive-tree-get-category #[(archive category) "\302\303 !AA\"\207" [category archive assoc tla--archive-tree-get-archive] 4 (#$ . 15631)]) #@54 Add a new branch to ARCHIVE's CATEGORY named BRANCH. (defalias 'tla--archive-tree-add-branch #[(archive category branch) "\303 \"\210\304\305 \"\n\"\207" [archive category branch tla--archive-tree-add-category tla--archive-tree-setcdr tla--archive-tree-get-category] 4 (#$ . 15822)]) #@52 Get a branch from ARCHIVE's CATEGORY named BRANCH. (defalias 'tla--archive-tree-get-branch #[(archive category branch) "\303\304 \n\"A\"\207" [branch archive category assoc tla--archive-tree-get-category] 5 (#$ . 16114)]) #@61 Add a new version to ARCHIVE CATEGORY BRANCH named VERSION. (defalias 'tla--archive-tree-add-version #[(archive category branch version) "\304 \n#\210\305\306 \n# \"\207" [archive category branch version tla--archive-tree-add-branch tla--archive-tree-setcdr tla--archive-tree-get-branch] 5 (#$ . 16343)]) #@59 Get a version from ARCHIVE CATEGORY BRANCH named VERSION. (defalias 'tla--archive-tree-get-version #[(archive category branch version) "\304\305 \n #A\"\207" [version archive category branch assoc tla--archive-tree-get-branch] 6 (#$ . 16656)]) #@71 Add a new revision to ARCHIVE CATEGORY BRANCH VERSION named REVISION. (defalias 'tla--archive-tree-add-revision #[(archive category branch version revision &optional rev-struct) "\306 \n $\210\307\310 \n $\f #\207" [archive category branch version revision rev-struct tla--archive-tree-add-version tla--archive-tree-setcdr tla--archive-tree-get-version] 6 (#$ . 16907)]) #@69 Get a revision from ARCHIVE CATEGORY BRANCH VERSION named REVISION. (defalias 'tla--archive-tree-get-revision #[(archive category branch version revision) "\305\306 \n \f$A\"\207" [revision archive category branch version assoc tla--archive-tree-get-version] 7 (#$ . 17286)]) #@106 Get a revision from ARCHIVE CATEGORY BRANCH VERSION named REVISION. Return a structure `tla--revision'. (defalias 'tla--archive-tree-get-revision-struct #[(archive category branch version revision) "\305\306 \n \f$A\"A\206!\307 \n \f\310%\210\305\306 \n \f$A\"A\207" [revision archive category branch version assoc tla--archive-tree-get-version tla--archive-tree-build-revisions t] 7 (#$ . 17570)]) #@206 Generic version of tla--archive-tree-build-*. BASENAME is used as a base for this tree. If USE-CACHE is non-nil, load details from the cache where possible. If IGNORE-ERROR is non-nil, don't throw errors. (defalias 'tla--archive-tree-build #[(basename &optional use-cache ignore-error) ";\203 \306!\307!\310!\311!\312! \203*\313\f \n &\202Y\n\2039\314\f \n %\202Y \203G\315\f $\202Y\f\203T\316\f #\202Y\317 \",\207" [basename version branch category archive use-cache tla--name-split tla--name-archive tla--name-category tla--name-branch tla--name-version tla--archive-tree-build-revisions tla--archive-tree-build-versions tla--archive-tree-build-branches tla--archive-tree-build-categories tla--archive-tree-build-archives ignore-error] 7 (#$ . 17980)]) #@147 Builds the list of archives. If USE-CACHE is non-nil, load details from the cache where possible. If IGNORE-ERROR is non-nil, don't throw errors. (defalias 'tla--archive-tree-build-archives #[(&optional use-cache ignore-error) "\203 \203 \n?\205k\306\307\310 \205\311D\312\313\314 \203!\313\202\"\315%\210\316 \317\212\317q\210eb\210\320 \321 V\205j\322\321 \320 \"\323y\210\317\324\325!\203]\326\323!B\323y\210\202I\327 \330!\f#\210)\2024+\207" [use-cache tla--archive-tree tla--archive-tree-archives-complete ignore-error old-archive-tree archive-name tla--run-tla-sync "archives" tla-archives-has-all-locations-option "--all-locations" :finished dvc-null-handler :error dvc-default-error-function t nil line-end-position line-beginning-position buffer-substring-no-properties 1 looking-at "^ \\(.*\\)$" match-string tla--archive-tree-add-archive reverse dvc-last-process-buffer archive-locations] 6 (#$ . 18775)]) #@183 Build the list of categories for ARCHIVE in `tla--archive-tree'. If USE-CACHE is non-nil, load details from the cache where possible. If IGNORE-ERROR is non-nil, don't throw errors. (defalias 'tla--archive-tree-build-categories #[(archive &optional use-cache ignore-error) "\306\307\"\210 \203\310\n!\211AA)?\205c\n\311\312\f\"\210\313\314\fD\315\316\317\203+\316\202,\320%\210\311\321\f\"\210\322\323!\210\311\324!\210)r q\210\324eb\210\325 \326 V\205b\327\326 \325 \"\330y\210\331\n\"\210\202F*\207" [ignore-error use-cache archive x basename dvc-last-process-buffer tla--archive-tree-build-archives t tla--archive-tree-get-archive message "building categories for `%s'..." tla--run-tla-sync "categories" :finished dvc-null-handler :error dvc-default-error-function "building categories for `%s'...done" sit-for 0 nil line-end-position line-beginning-position buffer-substring-no-properties 1 tla--archive-tree-add-category category] 7 (#$ . 19730)]) #@190 Build the list of branches for ARCHIVE/CATEGORY in `tla--archive-tree'. If USE-CACHE is non-nil, load details from the cache where possible. If IGNORE-ERROR is non-nil, don't throw errors. (defalias 'tla--archive-tree-build-branches #[(archive category &optional use-cache ignore-error) "\306\307 #\210\n\203\310 \"A?\205s\311 \"\312\313\f\"\210\314\315\fD\316\317\320 \203,\317\202-\321%\210\312\322\f\"\210\323\324!\210\312\325!\210)r q\210\325 eb\210\326 \327 V\205r\330\327 \326 \" \331 \332\333!\203i\334\335 !!\202j\336#\210\337y\210\202G*\207" [archive ignore-error use-cache category basename dvc-last-process-buffer tla--archive-tree-build-categories t tla--archive-tree-get-category tla--name-construct message "building branches for `%s'..." tla--run-tla-sync "branches" :finished dvc-null-handler :error dvc-default-error-function "building branches for `%s'...done" sit-for 0 nil line-end-position line-beginning-position buffer-substring-no-properties tla--archive-tree-add-branch looking-at ".*--" tla--name-branch tla--name-split-semi-qualified "" 1 branch] 6 (#$ . 20707)]) #@193 Build the version list in ARCHIVE/CATEGORY--BRANCH in `tla--archive-tree'. If USE-CACHE is non-nil, load details from the cache where possible. If IGNORE-ERROR is non-nil, don't throw errors. (defalias 'tla--archive-tree-build-versions #[(archive category branch &optional use-cache ignore-error) "\306 \307\n$\210 \203\310 \f#A?\205n\311 \f#\312\313 \"\210\314\315 D\316\317\320\n\203/\317\2020\321%\210\312\322 \"\210\323\324!\210\312\325!\210)rq\210\325eb\210\326 \327 V\205m\330\327 \326 \"\331y\210\332 \f\333\334!!$\210\202K*\207" [archive category ignore-error use-cache branch basename tla--archive-tree-build-branches t tla--archive-tree-get-branch tla--name-construct message "building versions for `%s'..." tla--run-tla-sync "versions" :finished dvc-null-handler :error dvc-default-error-function "building versions for `%s'...done" sit-for 0 nil line-end-position line-beginning-position buffer-substring-no-properties 1 tla--archive-tree-add-version tla--name-version tla--name-split-semi-qualified dvc-last-process-buffer version] 7 (#$ . 21822)]) #@187 Read the contents of FIELD from a log buffer. Must be called from a log file buffer. Returns the content of the field FIELD. FIELD is just the name of the field, without trailing ": " (defalias 'tla--read-field #[(field) "\212eb\210\301\302\303Q\304\305#\203\306`\301\307!\210`\310Z\"\202\311)\207" [field re-search-forward "^" ": " nil t buffer-substring-no-properties "^[^ ]" 2 ""] 4 (#$ . 22911)]) #@185 Read the contents of FIELD from a log buffer. Returns the content of the field FIELD, extracted from the log LOG-AS-STRING. FIELD is just the name of the field, without trailing ": " (defalias 'tla--read-field-str #[(field log-as-string) "\303\304!\305\216rq\210 c\210\306\n!+\207" [#1=#:temp-buffer log-as-string field generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) tla--read-field] 2 (#$ . 23327)]) #@97 Read the output of "baz .. --complete-log", starting at "N chars". Return the log as a string. (defalias 'tla--read-complete-log-string #[(&optional buffer) "r\206pq\210\302\303!\210\304\305`\306\307!\"!\310y\210\305` u\210`\"*\207" [buffer chars set-buffer-multibyte nil string-to-number buffer-substring-no-properties search-forward " " 1] 6 (#$ . 23800)]) #@160 Skip a log in the output of "baz .. --complete-log", starting at "N chars". Same as `tla--read-complete-log-string', but don't return anything and is faster. (defalias 'tla--skip-complete-log #[(&optional buffer) "r\206pq\210\302\303!\210\304\305`\306\307!\"!\310y\210 u*\207" [buffer chars set-buffer-multibyte nil string-to-number buffer-substring-no-properties search-forward " " 1] 5 (#$ . 24171)]) #@97 Read the output of "baz .. --complete-log", starting at "N chars". Return the log as a string. (defalias 'tla--read-complete-log-struct #[(&optional buffer) "\301\302!!\207" [buffer tla--parse-log-file tla--read-complete-log-string] 3 (#$ . 24585)]) #@59 Parses a log file and return a structure `tla--revision'. (defalias 'tla--parse-log-file #[(log-as-string) "\306\307\310\211\211\211\211\211\211&\310\311\312!\313\216r\nq\210 c\210eb\210\314\315\310\316#\2038\317\320!`\320y\210\321\322!\203;\320y\210\202/\323\f`S\"1 \324\230\203k\325 !\203^ G\326Y\203^ \327H2>\204b\330\331!\210 \3321I\210\2024 \333\230\203\224\325 !\203\207 G\326Y\203\207 \327H2>\204\213\330\334!\210 \3351I\210\2024 \336\230\203\275\325 !\203\260 G\326Y\203\260 \327H2>\204\264\330\337!\210 \3401I\210\2024 \341\230\203\364 3\3421!4\3253!\203\3453G\326Y\203\3453\327H2>\204\351\330\343!\2103\3444I\210*\2024 \345\230\203+ 5\3461!6\3255!\2035G\326Y\2035\327H2>\204 \330\347!\2105\3206I\210*\2024 \350\230\20341+\202\320y\210 7\323`d\"8\3257!\203]7G\326Y\203]7\327H2>\204a\330\351!\2107\3528I\210*\325 !\203 G\326Y\203 \327H2>\204\203\330\353!\210 \320H\240\210 9\354\355\325 !\203\244 G\326Y\203\244 \327H2>\204\250\330\353!\210 \320H!\325 !\203\302 G\326Y\203\302 \327H2>\204\306\330\356!\210 \344H\":\3259!\203\3459G\326Y\203\3459\327H2>\204\351\330\343!\2109\344:I\210-\325 !\203 G\326Y\203 \327H2>\204 \330\357!\210 \360 I\210 *\207" [archive rev-struct #1=#:temp-buffer log-as-string begin header vector cl-struct-tla--revision nil generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) re-search-forward "^\\([A-Za-z0-9_-]*\\): ?" t match-string-no-properties 1 looking-at "^[ ]" buffer-substring-no-properties "Summary" vectorp 8 0 error "tla--revision-summary storing a non-tla--revision" 2 "Creator" "tla--revision-creator storing a non-tla--revision" 3 "Standard-date" "tla--revision-date storing a non-tla--revision" 4 "New-patches" split-string "tla--revision-merges storing a non-tla--revision" 5 "Revision" tla--name-split-semi-qualified "tla--revision-revision storing a non-tla--revision" "Archive" "tla--revision-body storing a non-tla--revision" 6 "tla--revision-revision accessing a non-tla--revision" remove tla--name-construct "tla--revision-merges accessing a non-tla--revision" "tla--revision-log storing a non-tla--revision" 7 value cl-struct-tla--revision-tags #2=#:--cl-x-- #3=#:--cl-store-- #4=#:--cl-x-- #5=#:--cl-store-- #6=#:--cl-x-- #7=#:--cl-store-- #8=#:--cl-x-- #9=#:--cl-store--] 9 (#$ . 24843)]) #@295 Build the revision list in ARCHIVE/CATEGORY--BRANCH--VERSION. Updates `tla--archive-tree'. If USE-CACHE is non-nil, load details from the cache where possible. If IGNORE-ERROR is non-nil, don't throw errors. If CALLBACK is non-nil, run the process asynchronously and call callback afterwards. (defalias 'tla--archive-tree-build-revisions #[(archive category branch version &optional use-cache ignore-error need-complete-info callback) "\306 \n\307 %\210\f\203,\310 \n $A\203, \205\216\310 \n $A\211!@A)?\205\216\"\2068#\2068$\311 \n $%&\312\313%\"\210'\203Q\314\202R\315\316\317&\205c\320 \203b\321\202c\322%C\"B\323 \203q\324\202r\325\326\327\330\331\332\333\334\335\336\337' \n &%\257D\257E%*\207" [archive category branch ignore-error use-cache version tla--archive-tree-build-versions t tla--archive-tree-get-version tla--name-construct message "building revisions for `%s'..." tla--run-tla-async tla--run-tla-sync "revisions" append tla-revisions-has-complete-log-option ("--complete-log") ("--summary" "--date" "--creator") :error dvc-null-handler dvc-default-error-function :finished lambda (output errors status arguments) apply #[(output errors status arguments #1=#:dvc-gensym-uniq-47 #2=#:dvc-gensym-uniq-46 #3=#:dvc-gensym-uniq-45 #4=#:dvc-gensym-uniq-44 #5=#:dvc-gensym-uniq-43 #6=#:dvc-gensym-uniq-42 #7=#:dvc-gensym-uniq-41) "\306\307\"\210\310\311!\210\306\312!\210r q\210\312\211\211\211\211eb\210\313 \314 V\203\267\315\314 \313 \"\316\317\"\203E\320y\210\315\314 \313 \"\202/\320y\210\203\243\321 \203X\322 \202\245\323\312w\210\315`\313 \"\320y\210\323\312w\210\315`\313 \"\320y\210\323\312w\210\315`\324\325!\210\326\320!\210\312\210`\"\320y\210\327\330\257 \f \312\211\211&\202\245\312\331\n&\210\202. \205\301 \207" [#7# output rev-struct summary creator date message "building revisions for `%s'...done" sit-for 0 nil line-end-position line-beginning-position buffer-substring-no-properties string-match ".*password: $" 1 tla-revisions-has-complete-log-option tla--read-complete-log-struct " " re-search-forward "^\\([^ ]\\|$\\)" previous-line vector cl-struct-tla--revision tla--archive-tree-add-revision revision #6# #5# #4# #3# #2# #1#] 9] output errors status arguments quote need-complete-info x dvc-revisions-shows-summary dvc-revisions-shows-date dvc-revisions-shows-creator basename details callback] 22 (#$ . 27267)]) #@126 Whether VERSION has already been listed full details. Details include summary lines, dates, and creator in the archive tree. (defalias 'tla--revisions-tree-contains-details #[(archive category branch version) "\306 \n $\211A\205\f\211A@)\211A@))\207" [archive category branch version vtree x tla--archive-tree-get-version] 6 (#$ . 29720)]) #@150 Same as `tla--archive-tree', but for revision library. Does not contain details for revisions, since they would be redundant with the archive tree. (defvar tla--revlib-tree nil (#$ . 30073)) #@98 Get ARCHIVE from ARCHIVE-TREE. If ARCHIVE-TREE is not given, `tla--revlib-tree' is used instead. (defalias 'tla--revlib-tree-get-archive #[(archive &optional archive-tree) "\303 \206\n\"\207" [archive archive-tree tla--revlib-tree assoc] 3 (#$ . 30271)]) #@222 Build the list of archives in `tla--revlib-tree'. If USE-CACHE is non-nil, load from the cache where possible. If IGNORE-ERROR is non-nil, error is not reported. Return non-nil if the tree entry for archives are updated. (defalias 'tla--revlib-tree-build-archives #[(&optional use-cache ignore-error) "\203 ?\205V\306\307\310\311\312\n\203\311\202\313%\210 \314\212\314\f \314q\210eb\210\315 \316 V\203N\317\320\316 \315 \"\321y\210\322\314 #\210\202/\f .\207" [use-cache tla--revlib-tree ignore-error old-revlib-tree tla--archive-tree result tla--run-tla-sync ("library-archives") :finished dvc-null-handler :error dvc-default-error-function nil line-end-position line-beginning-position t buffer-substring-no-properties 1 tla--archive-tree-add-archive tmp archive-name dvc-last-process-buffer] 6 (#$ . 30536)]) #@45 Get a category from ARCHIVE named CATEGORY. (defalias 'tla--revlib-tree-get-category #[(archive category) "\302\303 !AA\"\207" [category archive assoc tla--revlib-tree-get-archive] 4 (#$ . 31385)]) #@242 Builds the list of categories for an ARCHIVE in `tla--revlib-tree'. If USE-CACHE is non-nil, load from the cache where possible. If IGNORE-ERROR is non-nil, error is not reported. Return non-nil if the tree entry for categories are updated. (defalias 'tla--revlib-tree-build-categories #[(archive &optional use-cache ignore-error) "\203\306 !\211AA)?\205]\307\310 D\311\312\313 \203\312\202 \314%\210r\fq\210\315 \315eb\210\316 \317 V\203T\320\321\317 \316 \"\322y\210\323 \"\210\2025 -\207" [use-cache archive x ignore-error dvc-last-process-buffer tla--archive-tree tla--revlib-tree-get-archive tla--run-tla-sync "library-categories" :finished dvc-null-handler :error dvc-default-error-function nil line-end-position line-beginning-position t buffer-substring-no-properties 1 tla--archive-tree-add-category tla--revlib-tree result tmp category] 7 (#$ . 31591)]) #@36 From ARCHIVE/CATEGORY, get BRANCH. (defalias 'tla--revlib-tree-get-branch #[(archive category branch) "\303\304 \n\"A\"\207" [branch archive category assoc tla--revlib-tree-get-category] 5 (#$ . 32493)]) #@243 Build the list of branches for ARCHIVE/CATEGORY in `tla--revlib-tree'. If USE-CACHE is non-nil, load from the cache where possible. If IGNORE-ERROR is non-nil, error is not reported. Return non-nil if the tree entry for branches are updated. (defalias 'tla--revlib-tree-build-branches #[(archive category &optional use-cache ignore-error) "\203 \306 \n\"A?\205b\307\310\311 \n\"D\312\313\314 \203\313\202 \315%\210r\fq\210\316 \316eb\210\317 \320 V\203Y\321\322\320 \317 \"\323y\210\324 \n\325\326!!#\210\2025 -\207" [use-cache archive category ignore-error dvc-last-process-buffer tla--archive-tree tla--revlib-tree-get-category tla--run-tla-sync "library-branches" tla--name-construct :finished dvc-null-handler :error dvc-default-error-function nil line-end-position line-beginning-position t buffer-substring-no-properties 1 tla--archive-tree-add-branch tla--name-branch tla--name-split-semi-qualified tla--revlib-tree result tmp branch] 6 (#$ . 32705)]) #@61 Get ARCHIVE/CATEGORY--BRANCH--VERSION from the revlib tree. (defalias 'tla--revlib-tree-get-version #[(archive category branch version) "\304\305 \n #A\"\207" [version archive category branch assoc tla--revlib-tree-get-branch] 6 (#$ . 33700)]) #@247 Build the versions list in ARCHIVE/CATEGORY/BRANCH in `tla--archive-tree'. If USE-CACHE is non-nil, load from the cache where possible. If IGNORE-ERROR is non-nil, error is not reported. Return non-nil if the tree entry for versions are updated. (defalias 'tla--revlib-tree-build-versions #[(archive category branch &optional use-cache ignore-error) "\203\306 \n #A?\205i\307\310\311 \n #D\312\313\314\f\203!\313\202\"\315%\210r q\210\316\316eb\210\317 \320 V\203^\321\322\320 \317 \"\323y\210\324 \n \325\326!!$\210\2029-\207" [use-cache archive category branch ignore-error dvc-last-process-buffer tla--revlib-tree-get-branch tla--run-tla-sync "library-versions" tla--name-construct :finished dvc-null-handler :error dvc-default-error-function nil line-end-position line-beginning-position t buffer-substring-no-properties 1 tla--archive-tree-add-version tla--name-version tla--name-split-semi-qualified tla--archive-tree tla--revlib-tree result tmp version] 7 (#$ . 33952)]) #@71 Get ARCHIVE/CATEGORY--BRANCH--VERSION--REVISION from the revlib tree. (defalias 'tla--revlib-tree-get-revision #[(archive category branch version revision) "\305\306 \n \f$A\"\207" [revision archive category branch version assoc tla--revlib-tree-get-version] 7 (#$ . 34972)]) #@202 Build the revision list of ARCHIVE/CATEGORY--BRANCH--VERSION. Updates `tla--revlib-tree'. If IGNORE-ERROR is non-nil, error is not reported. Return non-nil if the tree entry for revisions are updated. (defalias 'tla--revlib-tree-build-revisions #[(archive category branch version &optional use-cache ignore-error) "\203\306 \n \f$A?\205i\307\310\311 \n \f$D\312\313\314 \203#\313\202$\315%\210rq\210\316\316eb\210\317 \320 V\203^\321\322\320 \317 \"\323y\210\324 \n \f%\210\202<-\207" [use-cache archive category branch version ignore-error tla--revlib-tree-get-version tla--run-tla-sync "library-revisions" tla--name-construct :finished dvc-null-handler :error dvc-default-error-function nil line-end-position line-beginning-position t buffer-substring-no-properties 1 tla--archive-tree-add-revision dvc-last-process-buffer tla--archive-tree tla--revlib-tree result tmp revision] 7 (#$ . 35256)]) #@65 Function to be called from the minibuffer while reading a name. (defalias 'tla-name-read-refresh-cache #[nil "\301\302\303\304\305\306\307 !\"!!!\210\305\211\207" [tla--archive-tree tla--archive-tree-build tla--name-construct butlast delete nil tla--name-split minibuffer-contents] 7 (#$ . 36198) nil]) #@423 Used to suppress warnings from the byte code compiler. This variable is a just placeholder introduced to suppress the warnings from byte code compiler. Variable `tla--name-read-arguments' should be bound in `let'. Variable `tla--name-read-arguments' is used for passing information from `tla-name-read' to functions called internally from `tla-name-read'. Use function `tla--name-read-arguments' to get the information (defvar tla--name-read-arguments "This value should not be refereed." (#$ . 36509)) #@644 Get `tla-name-read' context information associated to KEY. `tla-name-read' calls some functions to read a tla name. In the functions, the arguments passed to `tla-name-read'(context information) are needed to know. However, `tla-name-read' cannot pass the context information directly to the functions because the functions are something to do with Emacs's completion mechanism; and the mechanism specifies the number of arguments of the functions. So the context information is passed via a local variable, `tla--name-read-arguments', defined in let. Symbol `archive', `category', `branch', `version', or `revision' are acceptable as KEY. (defalias 'tla--name-read-arguments #[(key) "\302 \"A\207" [key tla--name-read-arguments assoc] 3 (#$ . 37022)]) #@688 Completion function for name reading. Displays STRING and prompts for something satisfying PREDICATE. This function uses the free variables archive, category, branch, version, and revision. If one of these variables is non-nil, it means the corresponding value must be read from keyboard. REMINDER: this function may be called several times, with different values for WHAT: - nil : The function must return the longest prefix - t : The function must return the list of completions - 'lambda : The function must return t if the completion correspond to an exact match, nil otherwise. (so that Emacs can distinguish between "sole completion" and "complete, but not unique". (defalias 'tla--name-read-complete #[(string predicate what) "\306=\205\n\307\310 \"?\205t\311 ?\312 !\313 !.\314 !/\315 !0\316 !1\317 !2\320\321!\203?/\204?\322\202j\320\323!\203N0\204N\324\202j\320\325!\203]1\204]\324\202j\320\326!\205j2?\205j\3243\320\321!\327=\203x\330\202\312\320\323!\327=\203\216.\203\216/\203\216\330\202\312\320\325!\327=\203\251.\203\251/\203\2510\203\251\330\202\312\320\326!\327=\203\311.\203\311/\203\3110\203\3111\203\311\330\202\312\31142\203\375\320\326!\205\354\311\211\211567\331./01\f\330&\210+\332./01$A\202\3541\203\320\325!\205\354\333./0\f\330%\210\334./0#A\202\3540\203\300\320\323!\205\354\335./\f\330$\210\336./\"A80\337\230\203\272\320\325!\203\272\3119\336./\"A\311\211:\203t:@\211@\337\230\203k\3309:A\211:\204\\*9)\203\272\333./\337#\210\334./\337#\211\203\2728;\3118;\203\271;\211<@@)\337\230\204\260;@8B8;A\211;\204\233)8)\202\354/\203\337\320\321!\205\354\340.\f\330#\210\341.!\211\344\345>\"?4\205\3743@\n\205\344\346\nA\"A\347 \344\350?\"@\205\344\351?\"\244\n\205$\344\352A\"\244B#>\330=\2035>\202r>G\353=\203]\306=\203K>@ \230\202r>@ \230\203W\330\202r>@\202r\306=\203j >\235\202r\354 \344\355>\"\".\207" [what string empty-branch current-prefix-arg use-cache splited lambda string-match "/\\(.*--\\)?$" nil tla--name-split tla--name-archive tla--name-category tla--name-branch tla--name-version tla--name-revision tla--name-read-arguments category "/" branch "--" version revision maybe t tla--archive-tree-build-revisions tla--archive-tree-get-version tla--archive-tree-build-versions tla--archive-tree-get-branch tla--archive-tree-build-branches tla--archive-tree-get-category #1="" tla--archive-tree-build-categories tla--archive-tree-get-archive archive tla--archive-tree-build-archives mapcar #[(x) "\306\307\310\205 \n\205  \205\n\f\205 @\257\"!\207" [category-loc archive-loc branch-loc version-loc revision-loc x tla--name-construct delete nil] 8] #[(x) "\303 \304\n@$\207" [archive-loc category-loc x tla--name-construct #1#] 5] all-completions #[(x) " PC\207" [x suffix] 2] #[(x) "C\207" [x] 1] #[(x) "C\207" [x] 1] 1 try-completion list archive-loc category-loc branch-loc version-loc revision-loc suffix maybep dvc-revisions-shows-creator dvc-revisions-shows-date dvc-revisions-shows-summary result empty-br-exists #2=#:--cl-dolist-temp-- tmp x tla--archive-tree completions base sans-suffix empty-branch-versions predicate] 8 (#$ . 37786)]) (byte-code "\301B\302\303!\207" [current-load-list tla-part-of-name-regex (lambda (#1=#:defconst-tmp-var) (defconst tla-part-of-name-regex #1#)) "\\([^/ \n-]\\|-[^-]\\)+"] 2) #@317 Make a regexp for an Arch name (archive, category, ...). LEVEL can be 0 (archive), 1 (category), 2 (branch), 3 (version) or 4 (revision). If SLASH-MANDATORY is non-nil, the '/' after the archive name is mandatory. (allows to distinguish between Arch archives and emails. If EXACT is non-nil, match exactly LEVEL. (defalias 'tla-make-name-regexp #[(level slash-mandatory exact) "\203\305\202 \306\307\310\311\312\313\n\314Y\205B\315 \n\316Y\205>\317\320 \n\321Y\205:\317\320\322\n\323Y\2056\317\320\324\325 \260\325 \260\325 \260\325 \260\325\f\205N\n\314W\205N\326\327\260 )\207" [exact qmark level tla-part-of-name-regex slash-mandatory "" "?" "\\([^/@ \n]+" "@" "[^/ \n]+" "\\(--" "[^/ \n]+\\)?" 1 "/\\(" 2 "\\(" "--" 3 "[0-9]+[.0-9]*" 4 "\\(base\\|patch\\|version\\|versionfix\\)-[0-9]+" "\\)" "/" "\\( \\|\n\\|:\\)"] 18 (#$ . 41309)]) #@173 Provides a default value for tla-name-read. It first looks, if a name is found near point. If this does not succeed, use the revision at point, when in tla-changelog-mode. (defalias 'tla-get-name-at-point #[nil "\302\212\303\304e\305#\203`Tb\210\202\306 \210\307\310\311\302\211#!\203#\312\313!)\2041 \314=\2031\315 )\207" [name major-mode nil re-search-backward "[ \n]" t beginning-of-line looking-at tla-make-name-regexp 4 match-string 1 tla-changelog-mode tla-changelog-revision-at-point] 5 (#$ . 42176) nil]) (byte-code "\301B\302\301!\204\303\301\304\"\210\304\207" [current-load-list tla--name-read-history default-boundp set-default nil] 3) #@67 If non-nil, `condition-case' in `tla-name-read' is made disabled. (defvar tla--name-read-debug nil (#$ . 42847)) #@1272 Read a name. To get help on the user interface of `tla-name-read', please type M-x tla-name-read-help RET. Function reading an archive location from keyboard. Read name is expressed in a list built by `tla--name-split'. First argument PROMPT is the prompt the user will get. Next arguments ARCHIVE CATEGORY BRANCH VERSION and REVISION are either the default value, or a request for a value. They can take four values: - A string means the default value, and will be used as an initial input. - The symbol 'prompt means the value will be prompted from the user. The user will HAVE to give this value. - The symbol 'maybe means the value will be prompted, but is optional for the user. - nil means the value won't be prompted. They should appear in the same order as above. Example: - Read a category in archive "Matthieu.Moy@imag.fr--public": (tla-name-read "enter category: " "Matthieu.Moy@imag.fr--public" 'prompt) - Read a revision, anywhere: (tla-name-read "revision: " 'prompt 'prompt 'prompt 'prompt 'prompt) - Read either a revision or a version: (tla-name-read "revision: " 'prompt 'prompt 'prompt 'prompt 'maybe) While prompting, a menu "Xtla" is added to the menubar. The following commands are available: \{tla--name-read-minibuf-map} (defalias 'tla-name-read #[(&optional prompt archive category branch version revision) "\306 \211\203_\307! \203 9\203@\206 \n\203,\n9\203,A@\206+\n \203= 9\203=\3108\206< \f\203N\f9\203N\3118\206M\f \203_ 9\203_\3128\206^ )\301 B\302\nB\303 B\304\fB\305 B\257\203\205\313 \n \f &\202\211\314\315\316\217)\207" [l archive category branch version revision tla-get-name-at-point tla--name-split 2 3 4 tla--name-read-internal reason (byte-code "\306 \n \f &\207" [prompt archive category branch version revision tla--name-read-internal] 7) (((quit error) (byte-code "\301\302!\210\303@A\"\207" [reason run-hooks tla-name-read-error-hook signal] 3))) tla--name-read-arguments tla--name-read-debug prompt] 8 (#$ . 42968)]) #@22 See `tla-name-read'. (defalias 'tla--name-read-internal #[(prompt archive category branch version revision) "\306\307!\210\310\311\312\311\313\n \f $\257\"\"!%\314&\315\211'(\315)&\2048'\2048(\2048)\203\267&\204\200*\316=\204\200\317 \210\320'\203Q\321\202j(\203Z\322\202j)\203g\323)\324Q\202j\325\326! %\327\n \f $%$\210\330\331!\210\320\315!\210\332 \206\207\333\334\315\211%\335&%\315&\336%\n \f $&'\337%\n \f $&(\340%!)\202$%\203\302\341%!%\342\343%\"\210%.\207" [tla--name-read-minibuf-map minibuffer-local-completion-map archive category branch version run-hooks tla-name-read-init-hook tla--name-construct delete maybe prompt t nil choose-completion ding message "%s%s [incomplete input: %s]" "%s%s [too long input for: %s]" "%s%s [empty " " name]" error "case not managed. Please submit a bug report" tla--name-read-required-input sit-for 2 dvc-completing-read "Location: " tla--name-read-complete tla--name-read-history tla--prompt-not-finished tla--prompt-too-long tla--prompt-last-empty tla--name-split run-hook-with-args tla-name-read-final-hook revision result first-try not-finished too-long last-empty this-command] 11 (#$ . 45009)]) #@155 Check whether user input is complete. True if RESULT (a string) is not sufficient when the user is prompted for ARCHIVE CATEGORY BRANCH VERSION REVISION. (defalias 'tla--prompt-not-finished #[(result archive category branch version revision) "\306!\n\307=\203\310 !?\206C \307=\203\311 !?\206C\f\307=\203+\312 !?\206C \307=\2038\313 !?\206C \307=\205C\314 !?)\207" [result res-split archive category branch version tla--name-split prompt tla--name-archive tla--name-category tla--name-branch tla--name-version tla--name-revision revision] 2 (#$ . 46223)]) #@292 Check whether the user has entered too many elements. True if RESULT (a string) contains too many elements when the user is prompted for ARCHIVE CATEGORY BRANCH VERSION REVISION. For example, will return true if the user entered foo@bar--2004/xtla--main while prompted only for a category. (defalias 'tla--prompt-too-long #[(result archive category branch version revision) "\306!\n\204\307 !\2065 \204\310 !\2065\f\204\"\311 !\2065 \204,\312 !\2065\f?\2055\313 !)\207" [result res-split revision version branch category tla--name-split tla--name-revision tla--name-version tla--name-branch tla--name-category tla--name-archive archive] 2 (#$ . 46800)]) #@294 Check whether the last field is empty. Non-nil if RESULT (a string) is terminated by "--" or "/". This means the user entered a delimiter but not the element after. When non-nil, the returned value is a string giving the name of the item that is currently empty. (eg: archive, category, ...) (defalias 'tla--prompt-last-empty #[(result) "\302!\303 !\304\232\203\305\202G\306 !\304\232\203\307\202G\310 !\304\232\203.\311 !\204.\312\202G\311 !\304\232\203:\313\202G\314 !\304\232\203F\315\202G\316)\207" [result res-split tla--name-split tla--name-archive "" "archive" tla--name-category "category" tla--name-branch tla--name-version "branch" "version" tla--name-revision "revision" nil] 2 (#$ . 47476)]) #@355 Return string which represents the elements to be readin `tla-name-read'. If ARCHIVE, CATEGORY, BRANCH, VERSION or REVISION are equal to 'maybe, the corresponding element will be optionally read. If any of these are non-nil (but not 'maybe), the corresponding element will be required. If any of these are nil, the correpsonding element is not required. (defalias 'tla--name-read-required-input #[(archive category branch version revision) "\305=\203\n\306\202\203\307\202\310 \305=\203\311\202& \203%\312\202&\310\n\305=\2030\313\2029\n\2038\314\2029\310 \305=\203C\315\202L \203K\316\202L\310\f\305=\203V\317\202_\f\203^\320\202_\310\260\207" [archive category branch version revision maybe "[A]" "A" "" "[/C]" "/C" "[--B]" "--B" "[--V]" "--V" "[--R]" "--R"] 6 (#$ . 48203)]) #@30 Return the type of LOCATION. (defalias 'tla--location-type #[(location) "\301\302\"\203 \303\207\301\304\"\203\305\207\301\306\"\203\307\207\310\207" [location string-match "^ftp://" ftp "^sftp://" sftp "^http://" http local] 3 (#$ . 49014)]) #@29 Return the type of ARCHIVE. (defalias 'tla--archive-type #[(archive) "\301\302\"\203 \303\207\301\304\"\203\305\207\306\207" [archive string-match "SOURCE$" source ".+-MIRROR" mirror normal] 3 (#$ . 49271)]) #@411 Make source archive name from ARCHIVE. If EXISTENCE-CHECK is non-nil, check whether the made source archive name already exists or not; return nil if it doesn't exists. Example: ELISP> (tla--archive-name-source "jet@gyve.org--xtla") "jet@gyve.org--xtla-SOURCE" ELISP> (tla--archive-name-source "jet@gyve.org--xtla-MIRROR") "jet@gyve.org--xtla" ELISP> (tla--archive-name-source "jet@gyve.org--xtla-SOURCE") nil (defalias 'tla--archive-name-source #[(archive &optional existence-check) "\304!\211\305=\203\306P\202# \307=\203\"\310\311\"\210\312\313\"\202#\314 \203:\315\316!\210\n\205;\317\n!\205;\n\202;\n*\207" [archive type source existence-check tla--archive-type normal "-SOURCE" mirror string-match "\\(.*\\)-MIRROR$" match-string 1 nil tla--archive-tree-build-archives t tla--archive-tree-get-archive] 4 (#$ . 49491)]) #@411 Make mirror archive name from ARCHIVE. If EXISTENCE-CHECK is non-nil, check whether the made mirror archive name already exists or not; return nil if it doesn't exists. Example: ELISP> (tla--archive-name-mirror "jet@gyve.org--xtla") "jet@gyve.org--xtla-MIRROR" ELISP> (tla--archive-name-mirror "jet@gyve.org--xtla-SOURCE") "jet@gyve.org--xtla" ELISP> (tla--archive-name-mirror "jet@gyve.org--xtla-MIRROR") nil (defalias 'tla--archive-name-mirror #[(archive &optional existence-check) "\304!\211\305=\203\306P\202# \307=\203\"\310\311\"\210\312\313\"\202#\314 \203:\315\316!\210\n\205;\317\n!\205;\n\202;\n*\207" [archive type mirror existence-check tla--archive-type normal "-MIRROR" source string-match "\\(.*\\)-SOURCE" match-string 1 nil tla--archive-tree-build-archives t tla--archive-tree-get-archive] 4 (#$ . 50338)]) #@183 Compute the direct ancestor of REVISION. REVISION must be provided as a list, and a list is returned. If revision is nil, return the ancestor of the last revision of the local tree. (defalias 'tla-revision-direct-ancestor #[(&optional revision num) "\303\304\305\205\n\306!E\307\310#t\203\311\312\306 !\306!#\210\n\313=\204)\n\314=\203- \2022\315 \nS\")\207" [revision ancestor num tla--run-tla-sync "ancestry-graph" "--immediate" tla--name-construct :finished #[(output error status arguments) "\301\302!!\207" [output tla--name-split dvc-buffer-content] 3] message "Ancestor of: %s\n is: %s" 1 nil tla-revision-direct-ancestor] 5 (#$ . 51184) (list (tla-name-read "Compute direct ancestor of: " 'prompt 'prompt 'prompt 'prompt 'prompt))]) #@48 Return true if EVENT is a mouse-related event. (defalias 'tla--mouse-event-p #[(event) "\301\302\303\304\305!\"\"\207" [event string-match "mouse" format "%S" event-basic-type] 6 (#$ . 51950)]) (put 'tla--mouse-event-p 'byte-optimizer 'byte-compile-inline-expand) #@248 Return the pika escaped value of STRING. If pika escaping is not supported by tla, return STRING. If UNESCAPE is non-nil, returns the unescaped version of string. If MESSAGE is non-nil or if run interactively, also display the value as a message. (defalias 'tla-escape #[(string &optional unescape message) "\304\203 \305\202\n\306 \"\203#\307 \203#\310\311\205\312 E\313\314#\202$ t\204- \2031\303\n!\210\n)\207" [unescape string res message string-match "\\\\" "[^a-zA-Z._+,{}-]" tla-has-escape-command tla--run-tla-sync "escape" "--unescaped" :finished #[(output error status arguments) "\301!\207" [output dvc-buffer-content] 2]] 4 (#$ . 52222) "sString to escape: "]) #@90 Run "tla escape --unescaped" on STRING. Return STRING if "tla escape" is not available. (defalias 'tla-unescape #[(string) "\205 \301\302t#\207" [string tla-escape t] 4 (#$ . 52914) "sString to unescape: "]) (provide 'tla-core)