;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.



(byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314DD\315\316\317\320\321&\210\322\311!\210\310\323\312\313\324DD\325\316\326%\210\310\327\312\313\330DD\331\316\332%\210\310\333\312\313\334DD\335\316\313%\210\310\336\312\313\337DD\340\316\313%\210\310\341\312\313\342DD\343\316\344%\207" [custom-declare-group dirtrack nil "Directory tracking by watching the prompt." :prefix "dirtrack-" :group shell custom-declare-variable dirtrack-list funcall function #[0 "\300\301D\207" ["^emacs \\([a-zA-Z]:.*\\)>" 1] 2 #1=""] "List for directory tracking.\nFirst item is a regexp that describes where to find the path in a prompt.\nSecond is a number, the regexp group to match." :type (sexp (regexp :tag "Prompt Expression") (integer :tag "Regexp Group")) :version "24.1" make-variable-buffer-local dirtrack-debug #[0 "\300\207" [nil] 1 #1#] "If non-nil, the function `dirtrack' will report debugging info." boolean dirtrack-debug-buffer #[0 "\300\207" ["*Directory Tracking Log*"] 1 #1#] "Buffer in which to write directory tracking debug information." string dirtrack-directory-function #[0 "\301>\203 \302\207\303\207" [system-type (ms-dos windows-nt cygwin) dirtrack-windows-directory-function file-name-as-directory] 2 #1#] "Function to apply to the prompt directory for comparison purposes." dirtrack-canonicalize-function #[0 "\301>\203 \302\207\303\207" [system-type (ms-dos windows-nt cygwin) downcase identity] 2 #1#] "Function to apply to the default directory for comparison purposes." dirtrack-directory-change-hook #[0 "\300\207" [nil] 1 #1#] "Hook that is called when a directory change is made." hook] 8)#@166 Return a canonical directory for comparison purposes.
Such a directory is all lowercase, has forward-slashes as delimiters,
and ends with a forward slash.

(fn DIR)
(defalias 'dirtrack-windows-directory-function #[257 "\300\301\302\303#\227!\207" [file-name-as-directory subst-char-in-string 92 47] 6 (#$ . 1721)])#@90 Return a canonical directory taken from a Cygwin path for comparison purposes.

(fn DIR)
(defalias 'dirtrack-cygwin-directory-function #[257 "\300\301\"\203 \302\303\"\304\302\305\"Q\207\207" [string-match "/cygdrive/\\([A-Z]\\)\\(.*\\)" match-string 1 ":" 2] 6 (#$ . 2042)])#@95 Non-nil if Dirtrack mode is enabled.
Use the command `dirtrack-mode' to change this variable.
(defvar dirtrack-mode nil (#$ . 2327))
(make-variable-buffer-local 'dirtrack-mode)#@917 Toggle directory tracking in shell buffers (Dirtrack mode).

This method requires that your shell prompt contain the current
working directory at all times, and that you set the variable
`dirtrack-list' to match the prompt.

This is an alternative to `shell-dirtrack-mode', which works by
tracking `cd' and similar commands which change the shell working
directory.

This is a minor mode.  If called interactively, toggle the
`Dirtrack mode' mode.  If the prefix argument is positive, enable
the mode, and if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `dirtrack-mode'.

The mode's hook is called both when the mode is enabled and when
it is disabled.

(fn &optional ARG)
(defalias 'dirtrack-mode #[256 "\302 \303=\203 ?\202 \247\203 \304W\203 \305\202 \306\307\301!\2031 \310\300	\"\2031 \300	B\203? \311\312\313\305\306$\210\202E \314\312\313\306#\210\315\316\203O \317\202P \320\"\210\321\322!\203s \302 \203d \211\302 \232\203s \323\324\325\203o \326\202p \327\330$\210\210\331 \210\207" [dirtrack-mode local-minor-modes current-message toggle 1 nil t boundp delq add-hook comint-preoutput-filter-functions dirtrack remove-hook run-hooks dirtrack-mode-hook dirtrack-mode-on-hook dirtrack-mode-off-hook called-interactively-p any message "%s %sabled%s" "Dirtrack mode" "en" "dis" " in current buffer" force-mode-line-update] 7 (#$ . 2510) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar dirtrack-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205# \310\211%\207" [dirtrack-mode-map dirtrack-mode-hook variable-documentation put "Hook run after entering or leaving `dirtrack-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode dirtrack-mode boundp] 6)#@107 Non-nil if Dirtrack-Debug mode is enabled.
Use the command `dirtrack-debug-mode' to change this variable.
(defvar dirtrack-debug-mode nil (#$ . 4705))
(make-variable-buffer-local 'dirtrack-debug-mode)#@590 Toggle Dirtrack debugging.

This is a minor mode.  If called interactively, toggle the
`Dirtrack-Debug mode' mode.  If the prefix argument is positive,
enable the mode, and if it is zero or negative, disable the mode.

If called from Lisp, toggle the mode if ARG is `toggle'.  Enable
the mode if ARG is nil, omitted, or is a positive number.
Disable the mode if ARG is a negative number.

To check whether the minor mode is enabled in the current buffer,
evaluate `dirtrack-debug-mode'.

The mode's hook is called both when the mode is enabled and when
it is disabled.

(fn &optional ARG)
(defalias 'dirtrack-debug-mode #[256 "\303 \304=\203 ?\202 \247\203 \305W\203 \306\202 \307\310\301!\2031 \311\300	\"\2031 \300	B\203; \312\313\n!!\210\314\315\203E \316\202F \317\"\210\320\321!\203i \303 \203Z \211\303 \232\203i \322\323\324\203e \325\202f \326\327$\210\210\330 \210\207" [dirtrack-debug-mode local-minor-modes dirtrack-debug-buffer current-message toggle 1 nil t boundp delq display-buffer get-buffer-create run-hooks dirtrack-debug-mode-hook dirtrack-debug-mode-on-hook dirtrack-debug-mode-off-hook called-interactively-p any message "%s %sabled%s" "Dirtrack-Debug mode" "en" "dis" " in current buffer" force-mode-line-update] 7 (#$ . 4912) (byte-code "\203\n \301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)])
(defvar dirtrack-debug-mode-hook nil)
(byte-code "\301\302N\204\f \303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205# \310\211%\207" [dirtrack-debug-mode-map dirtrack-debug-mode-hook variable-documentation put "Hook run after entering or leaving `dirtrack-debug-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it.  (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode dirtrack-debug-mode boundp] 6)#@71 Insert strings at the end of `dirtrack-debug-buffer'.

(fn MSG1 MSG2)
(defalias 'dirtrack-debug-message #[514 "\205 r\302	!q\210db\210\303!\304\261)\207" [dirtrack-debug-mode dirtrack-debug-buffer get-buffer-create substitute-command-keys "\n"] 5 (#$ . 6800)])#@286 Determine the current directory from the process output for a prompt.
This filter function is used by `dirtrack-mode'.  It looks for
the prompt specified by `dirtrack-list', and calls
`shell-process-cd' if the directory seems to have changed away
from `default-directory'.

(fn INPUT)
(defalias 'dirtrack #[257 "\203\230 `e=\204\230 \212\305	@\"\204 \306\307\"\210\202\227 \310	A@\"\311\312\230\2031 \306\313\"\266\202\227 \314!\203{ \n!\f!\315!\262\211\230\204R \316!\316!\230\203[ \306\317\"\266\202\227 \320!\203r \321!\210\322\323!\210\306\324\"\266\202\227 \306\325\"\266\202\227 \305\326\327\fQ\211\262\"\203\225 \321\310\330\"P!\210\322\323!\210\266)\207" [dirtrack-mode dirtrack-list dirtrack-directory-function dirtrack-canonicalize-function default-directory string-match dirtrack-debug-message "Input failed to match `dirtrack-list': " match-string nil "" "Prompt match gives empty string: " file-name-absolute-p shell-prefixed-directory-name expand-file-name "Not changing directory: " file-accessible-directory-p shell-process-cd run-hooks dirtrack-directory-change-hook "Changing directory to " "Not changing to non-existent directory: " "\\`\\(.*\\)\\(?:/.*\\)?\n\\(.*/\\)\\1\\(?:/.*\\)?\\'" "\n" 2] 8 (#$ . 7072)])
(provide 'dirtrack)
