;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@41 Minimum version of GNU Global required. (defvar cedet-global-min-version "5.0" (#$ . 408)) (byte-code "\300\301\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\307&\207" [custom-declare-variable cedet-global-command "global" "Command name for the GNU Global executable." :type string :group cedet cedet-global-gtags-command "gtags" "Command name for the GNU Global gtags executable.\nGTAGS is used to create the tags table queried by the `global' command."] 8) #@439 Perform a search with GNU Global, return the created buffer. SEARCHTEXT is text to find. TEXTTYPE is the type of text, such as `regexp', `string', `tagname', `tagregexp', or `tagcompletions'. TYPE is the type of search, meaning that SEARCHTEXT is compared to filename, tagname (tags table), references (uses of a tag) , or symbol (uses of something not in the tag table.) SCOPE is the scope of the search, such as `project' or `subdirs'. (defalias 'cedet-gnu-global-search #[(searchtext texttype type scope) "\306=\203\n\307\202 \310 \311\267\202\312\202\313\202\314\n\315=\204&\n\316=\203*\312\2029\n\317\267\2028\320\2029\321\2029\322\323 \f QD!+\207" [type scope texttype stflag scopeflgs flgs file "-a" "-xa" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (project 17 target 21)) "" "l" nil tagname tagregexp #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (tagcompletions 48 regexp 52)) "c" "g" "r" cedet-gnu-global-call searchtext] 4 (#$ . 887)]) #@41 Call GNU Global with the list of FLAGS. (defalias 'cedet-gnu-global-call #[(flags) "\305\306!r\nq\210 \307 \210)\310\311 \312\n\312\f&\210\n*\207" [default-directory cd b cedet-global-command flags get-buffer-create "*CEDET Global*" erase-buffer apply call-process nil] 7 (#$ . 1941)]) #@48 Create GNU Global TAGS using gtags with FLAGS. (defalias 'cedet-gnu-global-gtags-call #[(flags) "\305\306!r\nq\210 \307 \210)\310\311 \312\n\312\f&\210r\nq\210eb\210\313\314\312\315#\203/\316\317\320 \"\210)\n*\207" [default-directory cd b cedet-global-gtags-command flags get-buffer-create "*CEDET Global gtags*" erase-buffer apply call-process nil re-search-forward "Error\\|Warning\\|invalid" t error "Output:\n%S" buffer-string] 7 (#$ . 2238)]) #@141 Expand the FILENAME with GNU Global. Return a list of absolute filenames or nil if none found. Signal an error if GNU global not available. (defalias 'cedet-gnu-global-expand-filename #[(filename) "r\302\303D!q\210eb\210\304\305!\203\306\307!\202\310\311 \312\313#)\314\315!\203I \203E G\316U\2039\317\320 @\"\210\202I\317\321 @ AG#\210\202I\306\322!\210 )\207" [filename ans cedet-gnu-global-call "-Pa" looking-at "global: " error "GNU Global not available" split-string buffer-string "\n" t called-interactively-p interactive 1 message "%s" "%s + %d others" "No file found"] 4 (#$ . 2700) "sFile: "]) #@62 Show the root of a GNU Global area under the current buffer. (defalias 'cedet-gnu-global-show-root #[nil "\300\301\302 \"\207" [message "%s" cedet-gnu-global-root] 3 (#$ . 3320) nil]) #@155 Return the root of any GNU Global scanned project containing DIR. Returns nil if no GNU Global project can be found. DIR defaults to `default-directory'. (defalias 'cedet-gnu-global-root #[(&optional dir) "\206 r\302\303C!q\210eb\210m?\205\304`\305 {!*\207" [dir default-directory cedet-gnu-global-call "-pq" file-name-as-directory point-at-eol] 3 (#$ . 3511)]) #@183 Check the version of the installed GNU Global command. If optional programmatic argument NOERROR is non-nil, then instead of throwing an error if Global isn't available, return nil. (defalias 'cedet-gnu-global-version-check #[(&optional noerror) "\304\305!\210\3061\307\310C!0\202\210\311\311\211\204'\312\313!\203#\314\315!\210\311\202Zr q\210eb\210\316\317\311\320#\210\321\322!\323\311\n#\203M ?\205Y\324\325\n#\202Y\312\313!\203X\314\326\"\210\320)*\207" [rev b cedet-global-min-version noerror require inversion (error) cedet-gnu-global-call "--version" nil called-interactively-p interactive message "GNU Global not found." re-search-forward "(?GNU GLOBAL)? \\([0-9.]+\\)" t match-string 1 inversion-check-version error "Version of GNU Global is %s. Need at least %s" "GNU Global %s - Good enough for CEDET."] 5 (#$ . 3886) nil]) #@54 Scan all the hits from the GNU Global output BUFFER. (defalias 'cedet-gnu-global-scan-hits #[(buffer) "\303\304r\nq\210eb\210\305\303\306#\203\"\307\310\311!!\310\312!B B\202 \237+\207" [r1 hits buffer nil "^\\([^ ]+\\) +\\([0-9]+\\) \\([^ ]+\\) " re-search-forward t string-to-number match-string 2 3] 4 (#$ . 4747)]) #@89 Create a GNU Global database in DIR. If a database already exists, then just update it. (defalias 'cedet-gnu-global-create/update-database #[(&optional dir) "\303!\211\203\n  \203\304\305C!\202\306\307!*\207" [dir root default-directory cedet-gnu-global-root cedet-gnu-global-call "-u" cedet-gnu-global-gtags-call nil] 3 (#$ . 5079) "DDirectory: "]) (provide 'cedet-global)