;ELC   
;;; Compiled
;;; in Emacs version 25.3.1
;;; with all optimizations.

;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
     (< (aref emacs-version (1- (length emacs-version))) ?A)
     (string-lessp emacs-version "23")
     (error "`%s' was compiled for Emacs 23 or later" #$))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\207" [require cl-lib custom cus-face rich-minority] 2)
#@44 Version of the smart-mode-line.el package.
(defconst sml/version "2.10" (#$ . 526))
#@126 Opens github issues page in a web browser. Please send me any bugs you find, and please include your Emacs and sml versions.
(defalias 'sml/bug-report #[nil "\302\303!\210\304\305	#\207" [sml/version emacs-version browse-url "https://github.com/Malabarba/smart-mode-line/issues/new" message "Your sml/version is: %s, and your emacs version is: %s.\nPlease include this in your report!"] 4 (#$ . 617) nil])
#@65 Open the customization group for the `smart-mode-line' package.
(defalias 'sml/customize #[nil "\300\301\302\"\207" [customize-group smart-mode-line t] 3 (#$ . 1030) nil])
#@79 Open the customization group for faces used by the `smart-mode-line' package.
(defalias 'sml/customize-faces #[nil "\300\301\302\"\207" [customize-group smart-mode-line-faces t] 3 (#$ . 1208) nil])
(byte-code "\300\301\302\303\304\305\306\307&\210\300\310\302\311\304\301\306\307&\210\300\312\302\313\304\301\306\307&\210\300\314\302\315\304\301\306\307&\210\300\316\302\317\304\301\306\307&\210\300\320\302\321\306\307\304\301\304\322&	\207" [custom-declare-group smart-mode-line nil "Customization group for the `smart-mode-line' package." :group convenience :prefix sml smart-mode-line-position "Showing the point position in the smart mode line." smart-mode-line-path-and-prefix "Showing the path, buffer-name, and prefix in the smart mode line." smart-mode-line-mode-list "Showing major/minor modes in the smart mode line." smart-mode-line-others "Showing other data in the smart mode line." smart-mode-line-faces "Font (face) colors for the `smart-mode-line.el' package.\n\nYou can fully customize any of the fonts to match the color you\nwant. You can also set properties like bold with ':weight bold'.\n\nNote that, by default, smart-mode-line overrides your theme's\nsettings for the background and foreground color of the modeline\nface. We need to override, otherwise some elements become\nunreadable on lighter themes. If you'd rather configure these\nunreadable colors yourself and keep your theme's settings, just\nset `sml/override-theme' to nil." faces] 10)
#@47 Temporary dynamic variable. Used for filling.
(defvar sml/simplified nil (#$ . 2693))
#@50 Whether debugging information should be printed.
(defvar sml/-debug nil (#$ . 2785))
#@196 If variable `sml/-debug' is non-nil, describe FMT.
If FMT is a string, this is essentially the same as `message'.
If FMT is anything else, this is essentially:
    (message "%s is: %s" 'FMT FMT)
(defalias 'sml/-debug '(macro . #[(fmt &rest r) "\303\300!\205 \205 	;\203 \304\305\306\307	E\nF\207\310\311\312	D	F\207" [sml/-debug fmt r boundp apply #'message concat "[sml/debug] " message "[sml/debug] %s is: %s" quote] 5 (#$ . 2877)]))
#@344 Function used to shorten the directory name.

Value is a funcallable symbol that takes two arguments: the
string to be shortened and the maximum size. This is set
automatically when `sml/shorten-directory' is changed via the
customization menu or via the `sml/toggle-shorten-directory'
function (which are the only ways you should change it).
(defvar sml/shortener-func 'sml/do-shorten-directory (#$ . 3324))
#@86 Configure `sml/shortener-func' according to `sml/shorten-directory'.
Set SYM to VAL.
(defalias 'sml/set-shortener-func #[(sym val) "\303	\"\210	\203 \304\211\207\305\211\207" [sym val sml/shortener-func set-default sml/do-shorten-directory sml/not-shorten-directory] 3 (#$ . 3739)])
(byte-code "\302\303\304\305#\210\306\305\211\203, 	@\303N\203% \304N\204% \307\304\303N#\210	A\211\204 *\310\303\304\305#\210\302\311\312\305#\210\306\305\211\203_ 	@\311N\203X \312N\204X \307\312\311N#\210	A\211\204A *\310\311\312\305#\210\302\313\314\305#\210\306\305\211\203\222 	@\313N\203\213 \314N\204\213 \307\314\313N#\210	A\211\204t *\310\313\314\305#\210\315\314\316\317\320\321\322\323\324\325\326\327\326\330&\210\315\331\332\333\320\334\326\335\336\337&	\210\307\331\340\341#\210\315\342\343\344\320\334\326\335\322\345\324\325&\210\307\342\340\341#\210\315\346\347\350\320\334\326\335\336\351\322\345\324\325&\210\307\346\340\341#\210\315\352\353\354\320\334\326\335\322\345\324\325&\210\307\352\340\341#\210\315\355\356\357\320\334\326\335&\210\315\360\341\361\320\362\326\363&\210\307\360\364\365#\210\315\366\305\367\320\362\326\363&\210\307\366\364\365#\210\315\370\371\372\320\334\326\363\336\373&	\210\315\374\341\375\320\362\326\376&\210\307\374\364\365#\210\315\377\341\201@ \320\362\326\376&\210\307\377\364\365#\210\315\201A \201B \201C \320\201D \326\376&\210\315\201E \201F \201G \320\201H \326\376\336\201I &	\210\315\201J \201K \201L \320\201M \326\376&\210\315\201N \201O \201P \320\201Q \326\376&\210\315\201R \201S \201T \320\201U \326\376&\210\315\201V \341\201W \320\362\326\376\322\201X &	\210\307\201V \364\365#\210\315\201Y \201Z \201[ \320\334\326\201\\ &\210\315\201] \201^ \201_ \320\334\326\201\\ &\210\315\201` \341\201a \320\362\326\201\\ &\210\307\201` \364\365#\207" [prop --dolist-tail-- defvaralias sml/time-format display-time-format nil (saved-value saved-variable-comment) put make-obsolete-variable sml/show-time display-time-mode sml/override-theme sml/theme custom-declare-variable 'automatic "Defines which theme `smart-mode-line' should use.\n\nThis is usually one of the symbols:\n'automatic, 'respectful, 'dark, 'light or nil;\nbut it can be something else if there are other smart-mode-line\nthemes defined.\n\nSetting this to 'light and 'dark will apply some predefined\ncolors to the mode-line, which are designed to be easy to read.\n\nSetting this to nil will apply almost no colors. Use this if your\nglobal color theme already customizes sml faces (flatui-theme is\nan example).\n\nSetting this to 'automatic will let sml decide between 'light or\n'dark or nil, to best match the global theme that is active when\n`sml/setup' is called.\n\nSetting it to 'respectful will try to use the colors defined by\nyour current Emacs theme (emphasis on the \"try\"). Use this if\nyou color theme does NOT customize sml faces, AND if you're not\nhappy with 'light or 'dark.\nThis option will make the mode-line colors more consistent with\nbuffer colors (when compared to 'light or 'dark, which have fixed\ncolors) , but it's a bit of a shot in the dark. The result will\nvary for each color theme, and you may get colors that don't read\nwell.\n\nBut don't forget, ALL COLORS ARE CUSTOMIZABLE!\n`sml/customize-faces'\nAny color you change manually won't get affected by this\nvariable.\n\nSetting this variable via `setq' only has effect BEFORE calling\n`sml/setup'. If smart-mode-line is already loaded, use\n `sml/apply-theme' instead (or the customization interface)." :type (choice (const :tag "Automatically choose between 'light, 'dark, or nil during setup. (Default and Recommended)" automatic) (const :tag "Don't use a theme." nil) (const :tag "Use a dark color-theme." dark) (const :tag "Use a light color-theme." light) (const :tag "Respect the color-theme's colors." respectful) (symbol :tag "Other smart-mode-line theme you installed.")) :set sml/apply-theme :initialize custom-initialize-default :group smart-mode-line-faces smart-mode-line sml/position-percentage-format "%p" "Format used to display position in the buffer.\n\nSet it to nil to hide the number." string smart-mode-line-position :package-version (smart-mode-line . "2.0") risky-local-variable t sml/line-number-format "%3l" "Format used to display line number.\n\nEmpty it or disable `line-number-mode' to hide the number." sml/compile-position-construct sml/size-indication-format "%I " "Format to display buffer size when `size-indication-mode' is on." (smart-mode-line . "2.0") sml/col-number-format "%2c" "Format used to display column number.\n\nEmpty it or disable `column-number-mode' to hide the number." sml/numbers-separator ":" "Separator between line and column number.\n\nSince we use different faces for line and column number, you can\njust set this to \"\" to save an extra char of space." sml/show-remote "Whether to display an \"@\" for remote buffers.\nIf the buffer is local, an \"-\" is displayed instead.\nIf this variable is nil, nothing is displayed." boolean smart-mode-line-others safe-local-variable booleanp sml/show-client "Whether to show an \"@\" for emacsclient frames." sml/modified-char (char-to-string (if (char-displayable-p 215) 215 42)) "String that indicates if buffer is modified. Should be one SINGLE char." (smart-mode-line . "1.16") sml/show-trailing-N "Whether the \"<N>\" suffix in buffer names should be displayed in the mode-line." smart-mode-line-path-and-prefix sml/show-file-name "Unless nil: show file name instead of buffer name on the mode-line." sml/fill-char 32 "The char to be used for filling." char sml/replacer-regexp-list `((,(concat "^" (if (boundp 'org-directory) (regexp-quote org-directory) "~/org/")) ":Org:") ("^~/\\.emacs\\.d/elpa/" ":ELPA:") ("^~/\\.emacs\\.d/" ":ED:") ("^/sudo:.*:" ":SU:") ("^~/Documents/" ":Doc:") ("^~/Dropbox/" ":DB:") ("^:\\([^:]*\\):Documento?s/" ":\\1/Doc:") ("^~/[Gg]it/" ":Git:") ("^~/[Gg]it[Hh]ub/" ":Git:") ("^~/[Gg]it\\([Hh]ub\\|\\)-?[Pp]rojects/" ":Git:")) "List of pairs of strings used (by `sml/replacer') to create prefixes.\n\nThe first string of each pair is a regular expression, the second\nis a replacement. These pairs are sequentially applied on the\nfile path to replace portions of it, turning them into prefixes.\nFor instance, \"~/.emacs.d/\" is replaced by \":ED:\", which is\nshorter but easily identified.\n\nThe replacement strings can really be anything, but to be colored\nas a prefix a string must start and end with \":\" (see the\ndefault as an example, as an exception \"~/\" is also a prefix).\n\nReplacement doesn't stop on first match, so you can have stacking replacements:\n\n    (add-to-list 'sml/replacer-regexp-list '(\"^:DB:Org/\" \":Org:\") t)\n\nRemember that `add-to-list' adds items to the FRONT, and you'll\nusually want to add them to the back (thus the t at the end).\n\nYou can also set custom colors (faces) for these prefixes, just\nset `sml/prefix-face-list' accordingly." (repeat (list regexp string)) (smart-mode-line . "1.22") sml/prefix-regexp '(":\\(.*:\\)" "~/") "List of Regexps used to identify prefixes.\n\nA prefix is anything at the beginning of a line that matches any\nof these regexps. Don't start these regexps with \"^\", the\nparser applies that for you." (repeat regexp) sml/prefix-face-list '((":SU:" sml/sudo) (":G" sml/git) ("" sml/prefix)) "List of (STRING FACE) pairs used by `sml/propertize-prefix'.\n\nAfter the file path is constructed, the prefix contained in it is\ncolored according to this list. The elements are checked one by\none and, if the prefix contains the STRING part of the pair, then\nFACE is applied to it (and checking stops there)." (repeat (list string face)) sml/name-width 44 "Minimum and maximum size of the file name in the mode-line.\n\nIf `sml/shorten-directory' is nil, this is the minimum width.\nOtherwise, this is both the minimum and maximum width.\n\nAlternatively, you can set the minimum and maximum widths\nseparately, by setting this variable to a cons cell of integers:\n    (MIN-WIDTH . MAX-WIDTH)\n" (choice integer (cons (integer :tag "Minimum width") (integer :tag "Maximum width"))) sml/shorten-directory "Should directory name be shortened to fit width?\n\nWhen the buffer+directory name is longer than\n`sml/name-width':\n    if nil the rest of the mode-line is pushed right;\n    otherwise the directory name is shortened to fit." sml/set-shortener-func sml/full-mode-string " +" "String that's appended to the minor-mode list when it's full." smart-mode-line-mode-list sml/shorten-mode-string " -" "String that's appended to the minor-mode list when all modes are displayed." sml/shorten-modes "Should modes list be shortened to fit width?\n\nWhen the modes list is longer than `sml/mode-width':\n    if nil the rest of the mode-line is pushed right;\n    otherwise the list is shortened to fit."] 15)
#@292 Toggle the variable `sml/shorten-directory'.

If given an argument VAL, the variable is set to the argument,
otherwise it is toggled. This can be used as an alternative to
customizing the variable with `customize-group'. Setting the
variable with `setq' will NOT work and should be avoided.
(defalias 'sml/toggle-shorten-directory #[(&rest val) "\302\301\203 \242\202 	?\"\207" [val sml/shorten-directory sml/set-shortener-func] 3 (#$ . 12623) nil])
#@266 Toggle the variable `sml/shorten-modes'.

If given an argument VAL, the variable is set to the argument,
otherwise it is toggled. This can be used as an alternative to
customizing the variable with `customize-group'. Equivalent to
setting the variable with `setq'.
(defalias 'sml/toggle-shorten-modes #[(&rest val) "\203	 @\202 	?\302 \207" [val sml/shorten-modes force-mode-line-update] 1 (#$ . 13084) nil])
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\300\312\313\314\304\315\306\316&\210\300\317\320\321\304\315\306\316&\210\300\322\323\324\304\325\306\307&\210\326\327\330\331\306\332%\210\326\333\334\331\306\332%\210\326\335\336\331\306\332%\210\326\337\340\331\306\332%\210\326\341\342\331\306\332%\210\326\343\344\331\306\332%\210\326\345\346\331\306\332%\210\326\347\350\331\306\332%\210\326\351\352\331\306\332%\210\326\353\354\331\306\332%\210\326\355\356\331\306\332%\210\326\357\360\331\306\332%\210\326\361\362\331\306\332%\210\326\363\364\331\306\332%\210\326\365\366\331\306\332%\210\326\367\370\331\306\332%\210\326\371\372\331\306\332%\210\326\373\374\331\306\332%\210\326\375\376\331\306\332%\210\326\377\201@ \331\306\332%\210\326\201A \201B \331\306\332%\210\326\201C \201D \331\306\332%\210\326\201E \201F \331\306\332%\210\326\201G \201H \331\306\332%\210\326\201I \201J \331\306\332%\210\326\201K \201L \331\306\332%\207" [custom-declare-variable sml/mode-width 'full "Maximum and/or minimum size of the modes list in the mode-line.\n\nIf it is an integer, then the modes list width is that many\ncharacters.\n\nIf it is the symbol `full', then the mode-list fills all the\nempty space is available in the mode-line (this has the effect of\nindenting right anything after the mode-list).\n\nIf it is the symbol `right', then it behaves like `full', but the\nminor-modes list is moved all the way to the right.\n\nIf `sml/shorten-modes' is nil, this is the minimum width.\nOtherwise, this is both the minimum and maximum width." :type (choice integer symbol) :group smart-mode-line-mode-list :package-version (smart-mode-line . "2.4.5") sml/battery-format " %p" "Format used to display the battery in the mode-line.\n\nOnly relevant if using `display-battery-mode'. See that function\nfor the syntax." string smart-mode-line-others sml/modified-time-string "Modified on %T %Y-%m-%d." "String format used for displaying the modified time.\n\nThis is shown in the tooltip when hovering over the \"modified\nfile\" character (which is usually a * right before the file\nname." sml/extra-filler 0 "The number of extra filling chars to use.\nIt comes into play when `sml/mode-width' is set to 'full.\n\nThis is necessary because the mode-line width (which we need but\ndon't have access to) is larger than `window-total-width' (which\nwe have access to).\n\nDecrease this if right indentation seems to be going too far (or\nif you just want to fine-tune it)." integer custom-declare-face sml/global ((t :inverse-video nil)) "" smart-mode-line-faces sml/modes ((t :inherit sml/global)) sml/minor-modes ((t :inherit sml/global)) sml/filename ((t :inherit sml/global :weight bold)) sml/prefix ((t :inherit sml/global)) sml/read-only ((t :inherit sml/not-modified)) sml/modified ((t :inherit sml/not-modified :foreground "Red" :weight bold)) sml/outside-modified ((t :inherit sml/not-modified :foreground "#ffffff" :background "#c82829")) sml/line-number ((t :inherit sml/modes :weight bold)) sml/remote ((t :inherit sml/global)) sml/name-filling ((t :inherit sml/position-percentage)) sml/position-percentage ((t :inherit sml/prefix :weight normal)) sml/col-number ((t :inherit sml/global)) sml/numbers-separator ((t :inherit sml/col-number)) sml/client ((t :inherit sml/prefix)) sml/not-modified ((t :inherit sml/global)) sml/mule-info ((t :inherit sml/global)) sml/sudo ((t :inherit sml/outside-modified)) sml/git ((t :inherit (sml/read-only sml/prefix))) sml/folder ((t :inherit sml/global :weight normal)) sml/process ((t :inherit sml/prefix)) sml/vc ((t :inherit sml/git)) sml/vc-edited ((t :inherit sml/prefix)) sml/charging ((t :inherit sml/global :foreground "ForestGreen")) sml/discharging ((t :inherit sml/global :foreground "Red")) sml/time ((t :inherit sml/modes))] 10)
#@37 Avoid nesting in `sml/apply-theme'.
(defvar sml/-apply-theme-is-running nil (#$ . 17308))
(byte-code "\302\303\304\305\306\307\310\311\312\313&	\210\2030 \314\315!!\316\317	\"\210\320\314	\321P!!\203/ \316\317\314	\321P!\"\210)\304\207" [load-file-name dir custom-declare-variable sml/no-confirm-load-theme nil "If non-nil, `sml/apply-theme' will pass the NO-CONFIRM flag to `load-theme'.\nIf you're having problems with Emacs always asking for permission\nto load a theme (and not remembering your choice), you can set\nthis to t to workaround the problem. But it's recommended that\nyou try the problem instead." :type boolean :group smart-mode-line-faces :package-version (smart-mode-line . "2.5.2") file-name-as-directory file-name-directory add-to-list custom-theme-load-path file-directory-p "themes"] 10)
#@647 Apply the theme called smart-mode-line-THEME.

THEME is usually one of the symbols: respectful, dark, or light;
but it can be something else if there are other smart-mode-line
themes defined.
See the `sml/theme' variable for the meaning of each symbol.

This function will call `disable-theme' on any enabled themes
whose name starts with "smart-mode-line-", then it will call
`load-theme' on the theme called "smart-mode-line-THEME".

This also sets the `sml/theme' variable, see its documentation
for more information on each value.

The second argument (VALUE) is for internal use only, DON'T USE IT.

Third argument SILENT prevents messages.
(defalias 'sml/apply-theme #[(theme &optional value silent) "\306\307!=\203\n \310	\204 \311\312\305\n\206 #\210?\205T \313\314\305\n\206& \"\210\315\316\f\"\210\317=\2036 \320 \205S \321!\203D \202J \306\322\323\"!\324\"))\207" [theme silent value sml/-apply-theme-is-running custom-enabled-themes sml/theme intern "" nil message "[sml] %s set to %s" t set-default mapc #[(x) "\301!\205	 \302!\207" [x sml/theme-p disable-theme] 2] automatic sml/-automatically-decide-theme sml/theme-p format "smart-mode-line-%s" load-theme theme-name sml/no-confirm-load-theme] 4 (#$ . 18130) (list (intern (completing-read "Load smart-mode-line theme: " (cons 'automatic (mapcar #'(lambda (x) (replace-regexp-in-string "\\`smart-mode-line-" "" (symbol-name x))) (cl-remove-if-not #'sml/theme-p (custom-available-themes)))))) nil nil)])
(byte-code "\300\301\302\303\304$\210\305\301\304\"\207" [ad-add-advice enable-theme (sml/after-enable-theme-advice nil t (advice lambda (theme) "Make sure smart-mode-line themes take priority over global themes that don't customize sml faces." (unless (or (eq theme 'user) (sml/faces-from-theme theme)) (mapc #'enable-theme (reverse (cl-remove-if-not #'sml/theme-p custom-enabled-themes)))))) after nil ad-activate] 5)
#@92 Return non-nil if theme named THEME is a smart-mode-line theme.
Takes symbols and strings.
(defalias 'sml/theme-p #[(theme) "\301\3029\203 \303!\202 \"\207" [theme string-match "\\`smart-mode-line-" symbol-name] 4 (#$ . 20047)])
(byte-code "\300\301\302\"\210\303\304\305\306\307\310\311\312&\210\313\304\314\315#\210\303\316\317\320\307\321\311\312\322\323&	\210\300\324\302\"\210\303\302\325\326\307\327\311\312\322\330&	\210\303\331\332\333\307\321\311\312\322\334&	\210\303\335\305\336\307\310\311\312\322\337&	\210\313\335\314\315#\210\303\340\305\341\307\310\311\312\322\342&	\210\313\340\314\315#\207" [defvaralias sml/show-encoding sml/mule-info custom-declare-variable sml/show-eol nil "Whether to display the buffer EOL in the mode-line." :type boolean :group smart-mode-line-others put safe-local-variable booleanp sml/outside-modified-char "M" "Char to display if buffer needs to be reverted." string :package-version (smart-mode-line . "1.20") sml/encoding-format "%z" "Format for multilingual information. Set this to nil to hide buffer encoding." (choice string (const :tag "Don't display." nil)) (smart-mode-line . "2.0") sml/read-only-char "R" "Displayed when buffer is readonly." (smart-mode-line . "1.20") sml/show-frame-identification "Whether to show frame identification or not.\n\nIn some systems this doesn't even display anything. It's most useful\non terminals, but you might want to disable it anyway.\n\nJust set this to nil, and frame identification won't be displayed." (smart-mode-line . "2.0.3") sml/vc-mode-show-backend "Whether to show or not the backend in vc-mode's mode-line description.\n\nI think most people only use one backend, so this defaults to nil.\nIf you want it to show the backend, just set it to t." (smart-mode-line . "1.22")] 10)
#@42 Used for recycling position information.
(defvar sml/position-construct nil (#$ . 21842))
(put 'sml/position-construct 'risky-local-variable t)
#@37 Help-text for position information.
(defvar sml/position-help-text nil (#$ . 21992))
(make-variable-buffer-local 'sml/position-help-text)
#@60 Filling generated by `sml/fill-for-buffer-identification'.
(defvar sml/buffer-identification-filling nil (#$ . 22136))
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local sml/buffer-identification-filling put risky-local-variable t] 4)
#@74 Used for recycling buffer identification without having to recompute it.
(defvar sml/buffer-identification nil (#$ . 22402))
(byte-code "\300\301!\210\302\301\303\304#\210\305\306\307\310\311$\210\305\312\313\310\311$\207" [make-variable-buffer-local sml/buffer-identification put risky-local-variable t ad-add-advice rename-buffer (sml/after-rename-buffer-advice nil t (advice lambda nil "Regenerate buffer-identification after `rename-buffer'." (sml/generate-buffer-identification))) after nil set-visited-file-name (sml/after-set-visited-file-name-advice nil t (advice lambda nil "Regenerate buffer-identification after `set-visited-file-name'." (sml/generate-buffer-identification)))] 5)
#@75 Used for recalculating buffer identification filling only when necessary.
(defvar sml/name-width-old nil (#$ . 23100))
(make-variable-buffer-local 'sml/name-width-old)
#@75 Used for recalculating buffer identification filling only when necessary.
(defvar sml/shorten-directory-old nil (#$ . 23274))
(make-variable-buffer-local 'sml/shorten-directory-old)
#@81 Call `sml/generate-buffer-identification' only if `sml/name-width' has changed.
(defalias 'sml/generate-buffer-identification-if-necessary #[nil "	\232\203\f \n\232\204 	\304 \210\305\207" [sml/name-width-old sml/name-width sml/shorten-directory-old sml/shorten-directory sml/generate-buffer-identification nil] 2 (#$ . 23462)])
#@45 Construct that replaces `mode-line-client'.
(defvar sml/mode-line-client (byte-code "\300\301\302\303\304\305\306\307\310\311\312!%\313BBBDD\207" [sml/show-client :eval if (frame-parameter nil 'client) propertize "@" face sml/client help-echo purecopy "emacsclient frame" (" ")] 11) (#$ . 23803))
#@69 Replace the default `mode-line-buffer-identification' with our own.
(defvar sml/mode-line-buffer-identification '("" (sml/buffer-identification sml/buffer-identification (:eval (sml/generate-buffer-identification)))) (#$ . 24106))
#@40 Non-nil if projectile has been loaded.
(defvar sml/projectile-loaded-p nil (#$ . 24343))
(byte-code "\300\301\302\303\304\305%\210\306\301\307\310#\210\300\311\302\303\304\305%\210\306\311\307\310#\210\300\312\313\303\304\305%\210\306\312\307\310#\210\300\314\313\303\304\305%\210\306\314\307\310#\210\300\315\313\303\304\305%\210\306\315\307\310#\207" [custom-declare-variable sml/pos-id-separator " " "Miscellaneous mode-line construct." :type string put risky-local-variable t sml/pre-modes-separator sml/pre-id-separator "" sml/pre-minor-modes-separator sml/pos-minor-modes-separator] 6)
#@63 Return the most appropriate sml theme, based on global theme.
(defalias 'sml/-automatically-decide-theme #[nil "\301 ?\205A \3021 \303\304\305\306#\206 \303\307\305\306#0\202 \210\305\31014 ;\2050 \311\312\"\311\313\"V0\2028 \210\202? \203? \314\202@ \315)\207" [bg sml/global-theme-support-sml-p (error) face-background mode-line nil t default (error) color-distance "white" "black" dark light] 4 (#$ . 24941)])
#@68 Decide what theme to use and apply it.
Used during initialization.
(defalias 'sml/-setup-theme #[nil "\205 \301=\203 \302 \303\304\305#\207" [sml/theme automatic sml/-automatically-decide-theme sml/apply-theme nil :silent] 4 (#$ . 25367)])
#@136 Setup the mode-line to be smart and sexy.

ARG is ignored. Just call this function in your init file, and
the mode-line will be setup.
(defalias 'sml/setup #[(&optional arg) "\306	\307\310\"\311 \210\312\313!\210\314\315\f\"\210\312\316!\210\312\317!\210\314\320\321\"\210\314\322\"\210\312\323!\210\312\324!\210\314\325\306\"\210\314\326\327\"\210\330\331\332\"\210\333\334!\210\333\335!\210\330\336\332\"\210\330\337\340\"\210\330\341\342\"\210\343\323\344\"\210\314\345\346\347%\"\"\210\330\350\332\"\210\330\351\332\"\210\352\353\354\355\306$\210\333\353\306\"\210\352\356\357\355\306$\210\333\356\306\"\210\330\360\361\"\210\330\362\363\"\210\364\365\366\"\210\364\367\370\"\210\364\371\372\"\210\364\373\374\"\210\375\376!\203\256 >\203\261 \377>\201@ \201A !\207" [sml/simplified sml/battery-format battery-mode-line-format rm-base-text-properties sml/mode-line-client sml/mode-line-buffer-identification nil append ('face 'sml/minor-modes) sml/-setup-theme sml/filter-mode-line-list mode-line-mule-info set-default mode-line-client mode-line-modified mode-line-remote mode-line-frame-identification (#3="" (sml/show-frame-identification "%F") sml/pre-id-separator) mode-line-buffer-identification mode-line-position mode-line-modes mode-line-end-spaces mode-line-front-space ((:eval (sml/generate-buffer-identification-if-necessary)) (sml/position-help-text nil (:eval (let ((sml/-this-buffer-changed-p t)) (sml/generate-position-help)))) (sml/position-construct sml/position-construct (:eval (sml/compile-position-construct)))) add-hook after-save-hook sml/generate-buffer-identification ad-activate rename-buffer set-visited-file-name clone-indirect-buffer-hook after-change-functions sml/-this-buffer-changed post-command-hook sml/generate-position-help add-to-list (sml/buffer-identification-filling sml/buffer-identification-filling (:eval (setq sml/buffer-identification-filling (sml/fill-for-buffer-identification)))) mode-line-format mapcar #[(x) ";\203 \301\230\203 \302\207;\203 \303\230\203 \304\207\207" [x "   " sml/pos-id-separator "  " sml/pre-modes-separator] 2] comint-output-filter-functions eshell-directory-change-hook ad-add-advice term-command-hook (sml/term-advice-1 nil t (advice lambda nil (sml/generate-buffer-identification))) after term-handle-ansi-terminal-messages (sml/term-advice-2 nil t (advice lambda nil (sml/generate-buffer-identification))) dired-mode-hook sml/set-buffer-identification display-time-hook sml/propertize-time-string eval-after-load battery #[nil "\300\301\302\303\304$\210\305\301\304\"\210\301\207" [ad-add-advice battery-update (sml/after-battery-update-advice nil t (advice lambda nil "Change battery color." (when battery-mode-line-string (setq battery-mode-line-string (propertize battery-mode-line-string 'face 'sml/battery))))) after nil ad-activate] 5] "projectile" #[nil "\306\307\301\310\311\312\313\314\315\316\317&	\210\307\320\321\322\312\323\314\315\316\324&	\210\325\326\327\330\314\331%\210\332\333	!\334\"\211\235\2045 \nB)\332\333	!\334\"\326D\211\235\203I \202N \fB\211)\207" [sml/projectile-loaded-p sml/projectile-replacement-format #1=#:x sml/prefix-regexp #2=#:x sml/prefix-face-list t custom-declare-variable "[%s]" "Format used for replacements derived from projectile." :type string :group smart-mode-line-others :package-version (smart-mode-line . "2.4") sml/use-projectile-p 'after-prefixes "Whether we should use projectile to guess path prefixes.\n\nIf this is non-nil, and if current buffer is inside a project (as\ndefined by projectile), we use the project's name as a\nprefix (with the `sml/projectile-replacement-format' variable).\n\nIf this is 'after-prefix, then this replacement will only be used\nif no other prefixes (defined in `sml/replacer-regexp-list') were\nfound to match the current file path." (choice (const :tag "Use projectile only if current path doesn't match any prefixes." after-prefixes) (const :tag "Use projectile before checking prefixes." before-prefixes) (const :tag "Don't use projectile." nil)) (smart-mode-line . "2.4.1") custom-declare-face sml/projectile ((t :inherit sml/git)) #3# smart-mode-line-faces format regexp-quote ".*"] 11] "vc-hooks" #[nil "\300\301\302\303\304$\210\305\301\304\"\210\301\207" [ad-add-advice vc-mode-line (sml/after-vc-mode-line-advice nil t (advice lambda nil "Color `vc-mode'." (when (stringp vc-mode) (let ((noback (replace-regexp-in-string (format "^ %s" (vc-backend buffer-file-name)) " " vc-mode))) (setq vc-mode (propertize (if sml/vc-mode-show-backend vc-mode noback) 'face (cond ((string-match "^ -" noback) 'sml/vc) ((string-match "^ [:@]" noback) 'sml/vc-edited) ((string-match "^ [!\\?]" noback) 'sml/modified)))))))) after nil ad-activate] 5] "mew-net" #[nil "\300\301\302\303\304\305%\210\306\307\310\311\312\313\304\301\314\315&	\210\306\316\317\320\312\321\304\301\314\322&	\210\306\323\324\325\312\326\304\301\314\327&	\210\330\331\332\333\302$\210\334\331\302\"\210\330\335\336\333\302$\210\334\335\302\"\210\335\207" [custom-declare-group smart-mode-line-mew nil "Group for editing the mew-support variables." :group smart-mode-line custom-declare-variable sml/mew-support t "Whether to flash the mode-line when mew detects new mail." :type boolean :package-version (smart-mode-line . "1.11") sml/new-mail-background-color "#110000" "When new mail arrives, mode-line background will be tinted this color.\n\nOnly works with mew-biff. Right now it stays colored until you\nread the mail, so this color should probably be something sutil.\nMight implement a quick flash eventually." color (smart-mode-line . "1.11") sml/mew-biff-format (concat "%2d" (if (char-displayable-p 9993) "✉" "M")) "Format used for new-mail notifications if you use mew with biff." string (smart-mode-line . "1.11") ad-add-advice mew-biff-clear (sml/mew-biff-clear-advice nil t (advice lambda nil "Advice used to customize mew-biff-bark to fit sml's style." ad-do-it (when sml/mew-support (set-face-attribute 'mode-line nil :background sml/active-background-color)))) around ad-activate mew-biff-bark (sml/mew-biff-bark-advice nil t (advice lambda (n) "Advice used to customize mew-biff-bark to fit sml's style." ad-do-it (when sml/mew-support (if (= n 0) (set-face-attribute 'mode-line nil :background sml/active-background-color) (set-face-attribute 'mode-line nil :background sml/new-mail-background-color) (setq mew-biff-string (format sml/mew-biff-format n))))))] 10] boundp erc-track-position-in-mode-line t run-hooks sml/after-setup-hook] 5 (#$ . 25620) nil])
(defalias 'smart-mode-line-enable 'sml/setup)
#@64 Non-nil if any of the enabled themes supports smart-mode-line.
(defalias 'sml/global-theme-support-sml-p #[nil "\301\302\303\304\"\"\207" [custom-enabled-themes cl-remove-if sml/theme-p cl-remove-if-not sml/faces-from-theme] 5 (#$ . 32216)])
#@45 Return the sml faces that THEME customizes.
(defalias 'sml/faces-from-theme #[(theme) "\301\302\303\304\305N\"\"\207" [theme cl-remove-if-not #[(it) "\301\302\303!\"\207" [it string-match "\\`sml/" symbol-name] 4] mapcar cadr theme-settings] 6 (#$ . 32465)])
#@182 Setq the buffer-identification of this buffer back to ours.

Currently, we only this for dired. For other modes (like info) we
respect their changes.

Argument IGNORED is obsolete.
(defalias 'sml/set-buffer-identification #[(&rest ignored) "\211\207" [sml/mode-line-buffer-identification mode-line-buffer-identification] 2 (#$ . 32733)])
#@54 t if buffer was changed since last help-text update.
(defvar sml/-this-buffer-changed-p nil (#$ . 33079))
(make-variable-buffer-local 'sml/-this-buffer-changed-p)
#@78 Set variable `sml/-this-buffer-changed-p' to t.
Argument IGNORED is ignored.
(defalias 'sml/-this-buffer-changed #[(&rest ignored) "\301\302\207" [sml/-this-buffer-changed-p t nil] 1 (#$ . 33248)])
#@92 Set the string describing various buffer content information.
Argument IGNORED is ignored.
(defalias 'sml/generate-position-help #[(&rest ignored) "\205 \302p!\205 \303\304\305!\303\207" [sml/-this-buffer-changed-p sml/position-help-text get-buffer-window nil format-mode-line "Buffer size:\n	%IB\n\nmouse-1: Display Line and Column Mode Menu"] 2 (#$ . 33453)])
#@411 Decide the order of line-number and column-number display.

When both `line-number-mode' and `column-number-mode' are
enabled, this variable decides which gets displayed on the left,
and which gets displayed on the right. If either one of the modes
is not enabled, this variable has no effect (obviously).

It can only be t or nil.
    t means column-number:line-number
    nil means line-number:column-number
(custom-declare-variable 'sml/order-of-line-and-column nil '(#$ . 33827) :type '(choice (const :tag "column-number:line-number" t) (const :tag "line-number:column-number" nil)) :group 'smart-mode-line-position :package-version '(smart-mode-line . "2.4"))
#@104 Recompile the `sml/position-construct' after one of the formats was edited.
Also sets SYMBOL to VALUE.
(defalias 'sml/compile-position-construct #[(&optional symbol value) "\203\f 	\203\f 	L\210\306 \210\307\310\n\311\312\313\314\315\316\317&	D\320\321\310\f\311\312\313\314\315\316\317&	D\322\310\311\323\313\314\315\316\317&	DE\321\322\310\311\324\313\314\315\316\317&	DD\320\322\310\311\323\313\314\315\316\317&	D\321\310\f\311\312\313\314\315\316\317&	DEF\211\207" [symbol value sml/size-indication-format mode-line-column-line-number-mode-map sml/col-number-format sml/line-number-format sml/generate-position-help size-indication-mode propertize face sml/col-number help-echo sml/position-help-text mouse-face mode-line-highlight local-map sml/order-of-line-and-column column-number-mode line-number-mode sml/line-number sml/numbers-separator sml/position-construct] 16 (#$ . 34499)])
#@63 Return a string describing the modified status of the buffer.
(defalias 'sml/generate-modified-status #[nil "\300 \203 \306!\204 \307p!\204 \310	\311\312\313\314%\207\315 \203H \310\n\203' \202( \f\311\316\313\300 \203B \306!\204B \317\320\321\300 !8\"\202C \322\323\324&\207\n\203T \310\311\325\313\326%\207\310\327\311\330#\207" [buffer-file-name sml/outside-modified-char buffer-read-only sml/read-only-char sml/modified-char sml/modified-time-string file-remote-p verify-visited-file-modtime propertize face sml/outside-modified help-echo "Modified outside Emacs!\nRevert first!" buffer-modified-p sml/modified format-time-string 5 file-attributes "Buffer Modified" local-map (keymap (mode-line keymap (mouse-1 . save-buffer))) sml/read-only "Read-Only Buffer" " " sml/not-modified] 10 (#$ . 35410)])
#@77 Propertize string S as a line/column number, using FACE and help-echo HELP.
(defalias 'sml/propertize-position '(macro . #[(s face help) "\303\304	\305\n\306BBBBBB\207" [s face help propertize 'face 'help-echo ('mouse-face 'mode-line-highlight 'local-map mode-line-column-line-number-mode-map)] 7 (#$ . 36230)]))
#@71 Function to be added to `display-time-hook' to propertize the string.
(defalias 'sml/propertize-time-string #[nil "\301\300!\205 ;\205 \302\303\304#\211\207" [display-time-string boundp propertize face sml/time] 4 (#$ . 36550)])
#@113 Filter some elements of L and propertize the ones not filtered.

L must be a symbol! We assign right back to it
(defalias 'sml/filter-mode-line-list #[(l) "9\203 \301!<\203 \302\303\304\305\306\301!\"\"\"\207\307\310!\207" [l eval set-default remove nil mapcar sml/parse-mode-line-elements error "l must be a symbol to a list!"] 8 (#$ . 36791)])
#@228 Return a string such that `mode-line-buffer-identification' is fixed-width.
In buffers where `mode-line-buffer-identification' is nil, we
don't do any filling. That's because the given mode probably
doesn't want any buffer-id.
(defalias 'sml/fill-for-buffer-identification #[nil "\203 \303\304	\242\206\f 	\305\306!!Z\307]\n\"\310\311#\207\312\207" [mode-line-buffer-identification sml/name-width sml/fill-char propertize make-string string-width format-mode-line 0 face sml/name-filling ""] 6 (#$ . 37150)])
#@79 Return fully propertized prefix+path+buffername.
Argument IGNORED is ignored.
(defalias 'sml/generate-buffer-identification #[(&rest ignored) "\306\f\232\204 A@\f\235\204 \f\235\205\222 \307\310\311 !!!?\206. \312 \205. \313\312 !?\2054 \"\"\314!#\315 $\316\317\320\243\206H !\321#!\321$!#]%&%\"'\322\323\324\325\326##!\322\324\325\326'#\327\330#\322\324\325\326$#\327\331#Q\332\333\334\312 \206\205 \335 \"\336\337\340(&.\211)\207" [sml/name-width sml/name-width-old sml/buffer-identification-filling sml/mode-line-buffer-identification mode-line-buffer-identification dir nil sml/replacer abbreviate-file-name sml/get-directory buffer-file-name file-remote-p sml/get-prefix sml/buffer-name 0 - abs string-width propertize sml/propertize-prefix replace-regexp-in-string "%" "%%" face sml/folder sml/filename help-echo format "%s\n\nmouse-1: Previous buffer\nmouse-3: Next buffer" buffer-name mouse-face mode-line-highlight local-map sml/projectile-loaded-p sml/use-projectile-p prefix bufname dirsize sml/shortener-func dirstring mode-line-buffer-identification-keymap sml/buffer-identification] 8 (#$ . 37668)])
#@72 Propertize or delete EL.

To be used in mapcar and accumulate results.
(defalias 'sml/parse-mode-line-elements #[(el) "\305\235\203 \306\207\242\307\235\203 \306\207;\203$ \310\230\203$ \311\312\313BBD\207\314\232\203> \315\316\317\320\321\322\323\324\325\326\327!%\330BBBDD\207;\203L \331\332\"\203L \333\207\334!\203` \335\336\312\337\340	\341BBBBDD\207;\203\227 \331\342\"\203\227 \343\344\312\345\323\343\325\346\326\347!\350\326\351!F\340\n\352BBBBBBBBD\312\353\323\343\325\354\355\356\340\257\nDD\207\357\232\203\237 \360\207\361\232\204\255 \243@\362\232\203\257 \363\207<\203\320 @\312\232\203\320 A@\364\232\203\320 \211A\365\240\210)\366\367\"\207<\203\346 @\312\232\203\346 A@\370\232\203\346 \371\207\207" [el mode-line-column-line-number-mode-map mode-line-input-method-map mode-line-coding-system-map #1=#:v ("%[" "%]" "%1+" "(" ")" (t erc-modified-channels-object) (:eval (if (display-graphic-p) " " "-")) (:eval (unless (display-graphic-p) "-%-")) (:eval (mode-line-frame-control))) nil (line-number-mode column-number-mode size-indication-mode current-input-method) "%1@" sml/show-remote :propertize (face sml/remote) (#2="" (:propertize (#2# (:eval (if (frame-parameter nil 'client) "@" #2#))) help-echo "emacsclient frame")) sml/show-client :eval if (frame-parameter nil 'client) propertize "@" face sml/client help-echo purecopy "emacsclient frame" (" ") string-match "%[0-9-]*\\*" (:eval (sml/generate-modified-status)) sml/is-%p-p sml/position-percentage-format -3 (:eval sml/position-percentage-format) local-map (mouse-face mode-line-highlight face sml/position-percentage help-echo "Buffer Relative Position\nmouse-1: Display Line and Column Mode Menu") "\\s-*%[-0-9]*z" sml/mule-info 1 (current-input-method (#2# current-input-method-title) " ") concat "Current input method: " current-input-method "\nmouse-2: Disable input method\nmouse-3: Describe current input method" (mouse-face mode-line-highlight) (:eval sml/mule-info) mode-line-mule-info-help-echo mouse-face mode-line-highlight (:eval (mode-line-eol-desc)) (sml/show-eol (:eval (mode-line-eol-desc))) (#2# mode-line-process) (#2# mode-line-process) (:propertize (#2# mode-line-process) face sml/process) (#2# mode-name) (#2# "%[" mode-name "%]") append (face sml/modes) (#2# minor-mode-alist) (:eval (sml/generate-minor-modes))] 13 (#$ . 38819)])
#@55 Non-nil if X matches "%p" in a very subjective sense.
(defalias 'sml/is-%p-p #[(x) "<\203 \301\302\301\303\"\"\206 ;\205 \304\305\"\207" [x cl-remove-if-not #[(y) "\301\302\"\207" [y string-match ".*%p.*"] 3] stringp string-match ".*%p.*"] 5 (#$ . 41186)])
#@236 Return either buffer name or file name to be shown on the mode-line.
Uses `sml/show-file-name' to decide between the two.

Unless `sml/show-trailing-N' is nil, prevents the "<N>" (used in
duplicated buffer names) from being displayed.
(defalias 'sml/buffer-name #[nil "\303 \203 \304 \207\203 \305 \203 \306\305 !\207\307\310!\203\" \306\311	!!\207\n\203) \304 \207\312\313\314\304 #\207" [sml/show-file-name default-directory sml/show-trailing-N buffer-base-buffer buffer-name buffer-file-name file-name-nondirectory derived-mode-p dired-mode directory-file-name replace-regexp-in-string "<[0-9]+>$" ""] 4 (#$ . 41458)])
#@40 Return the size available for filling.
(defalias 'sml/fill-width-available #[nil "\303\304 \305\306\307\n!!)Z\\]\207" [sml/extra-filler sml/simplified mode-line-format 0 window-total-width t string-width format-mode-line] 6 (#$ . 42090)])
(defconst sml/propertized-shorten-mode-string '(:propertize sml/shorten-mode-string face sml/minor-modes help-echo "mouse-1: Shorten minor modes" local-map (keymap (mode-line keymap (mouse-1 . sml/toggle-shorten-modes))) mouse-face mode-line-highlight))
(defconst sml/propertized-full-mode-string '(:propertize sml/full-mode-string face sml/minor-modes help-echo "mouse-1: Show all modes" local-map (keymap (mode-line keymap (mouse-1 . sml/toggle-shorten-modes))) mouse-face mode-line-highlight))
#@63 Count occurrences of REGEX in STRING starting at index START.
(defalias 'sml/count-occurrences-starting-at #[(regex string start) "\303	\n#\203 \304	\305\225#T\207\305\207" [regex string start string-match sml/count-occurrences-starting-at 0] 4 (#$ . 42834)])
(byte-code "\304\300!\203\f \305\306!\210\307\300\301\310#\210\311\310\211\2038 @\300\nN\2031 \301\nN\2041 \312\301\n\300\nN#\210A\211\204 *\313\300\301\310#\207" [sml/hidden-modes rm-blacklist prop --dolist-tail-- boundp message "[smart-mode-line] Warning: `sml/hidden-modes' is obsolete, use `rm-blacklist' instead" defvaralias nil (saved-value saved-variable-comment) put make-obsolete-variable] 6)
#@62 Extracts all rich strings necessary for the minor mode list.
(defalias 'sml/generate-minor-modes #[nil "\203 \306\207\307 \310\311\n\312\235\203 \313 \202 \n\314\315\316!!\314\315\317!!#]\320\321	\306#\322\211\203H \314\f!V\203H \323\324\f\314!Z#T\203W \325	T\"\326 D\241\210\204j !	\235\204j \327	!C\"\314\315	!!Z\330\310]\"\"\n\331=\203\220 \332\333\334#\316	\317F\202\230 \306\316	\317\257-\207" [sml/simplified nameList sml/mode-width size finalNameList needs-removing "" rm--mode-list-as-string-list 0 - (full right) sml/fill-width-available string-width format-mode-line sml/pre-minor-modes-separator sml/pos-minor-modes-separator mapconcat identity nil sml/count-occurrences-starting-at " " last t append make-string right propertize face sml/modes filling sml/shorten-modes sml/full-mode-string sml/propertized-full-mode-string sml/propertized-shorten-mode-string sml/fill-char] 8 (#$ . 43514)])
#@52 Set the color of PREFIX according to its contents.
(defalias 'sml/propertize-prefix #[(prefix) "\306\307\306	:\2031 	@\310\n@\"\203& \311\312\nA@#\306\211\202' \307\2031 	A\211\202	 \f,\207" [sml/prefix-face-list #1=#:--cl-var-- pair #2=#:--cl-var-- #3=#:--cl-var-- prefix nil t string-match propertize face] 5 (#$ . 44462)])
#@54 Decide if we want directory shown. If so, return it.
(defalias 'sml/get-directory #[nil "\302\303 \203 \304\303 !\206? \305\202? \306=\203 \307\310\311	#\202? 9\203. \312\235\203. 	\202? \313 \203> r\313 q\210\314 )\202? \305!\207" [major-mode default-directory abbreviate-file-name buffer-file-name file-name-directory "" dired-mode replace-regexp-in-string "/[^/]*/$" "/" (shell-mode eshell-mode term-mode) buffer-base-buffer sml/get-directory] 5 (#$ . 44805)])
#@52 Set `sml/battery' face depending on battery state.
(defalias 'sml/set-battery-font #[nil "\302\300!\205\f \205\f  \303\304	\"A\305\230\203 \306\307\310\"\202\" \306\311\310\")\207" [battery-status-function data boundp assoc 76 "AC" copy-face sml/charging sml/battery sml/discharging] 3 (#$ . 45280)])
(byte-code "\300\301\302\303\304$\210\305\301\304\"\207" [ad-add-advice battery-update (sml/set-battery-font nil t (advice lambda nil "Fontify the battery display." (sml/set-battery-font))) before nil ad-activate] 5)
#@368 Run on string IN the replacements from `sml/replacer-regexp-list'.
Runs first on the given path, and if that doesn't have any affect,
runs them again on a version of the given path with all symlinks
expanded via `file-truename'.  If neither run succeeds in making
any replacements, returns the path originally given.

Used by `sml/strip-prefix' and `sml/get-prefix'.
(defalias 'sml/replacer #[(in) "\301\230\203 \207\302!\207" [in "" sml/replacer-raw] 2 (#$ . 45809)])
#@158 Run on the string IN the replacements from `sml/replacer-regexp-list'.

If projectile is loaded, also performs replacements specified by
project name first.
(defalias 'sml/replacer-raw #[(in) "\306\203 \f\307=\203 \310\n!\n\230\203< \306\211\203; @\311@A@\n#A\211\204\" *\n\230\203~ \312\313!!\211\306\211\203q @\311@A@#A\211\204V *\230\204} *\203\222 \f\314=\203\222 \n\230\203\222 \310\n!\n*\207" [in proj out sml/projectile-loaded-p sml/use-projectile-p sml/replacer-regexp-list nil before-prefixes sml/perform-projectile-replacement replace-regexp-in-string abbreviate-file-name file-truename after-prefixes cur --dolist-tail-- true-in true-out] 5 (#$ . 46289)])
#@59 If path IN is inside a project, use its name as a prefix.
(defalias 'sml/perform-projectile-replacement #[(in) "\306 \211;\203K \307	\310 \"\311\312\313\314!!P\n#\211\230\203F \314\315!!\311\312\313\314\315!!!P\n#\230\203@ \202B *\202G \f*\202L )\207" [proj sml/projectile-replacement-format replacement in short true-in projectile-project-p format projectile-project-name replace-regexp-in-string "^" regexp-quote abbreviate-file-name file-truename true-short] 7 (#$ . 47025)])
#@116 Prepare the actual regexp using `sml/prefix-regexp'.
If GETTER is non-nil, result regexp also accepts empty match.
(defalias 'sml/regexp-composer #[(getter) "\304\203	 \305\202\n \306;\203# \307\310\"\203 \202+ \n	Q\202+ \n\311\312\313#	Q*\207" [getter right left sml/prefix-regexp "^\\(" "\\|\\).*" "\\)" string-match "\\(" mapconcat identity "\\|"] 5 (#$ . 47530)])
#@130 Remove prefix from string PATH.

A prefix is anything at the beginning of the line that matches a
regexp in `sml/prefix-regexp'.
(defalias 'sml/strip-prefix #[(path) "\301\302\303!\304#\207" [path replace-regexp-in-string sml/regexp-composer nil ""] 4 (#$ . 47914)])
#@127 Get prefix from string PATH.

A prefix is anything at the beginning of the line that matches a
regexp in `sml/prefix-regexp'.
(defalias 'sml/get-prefix #[(path) "\301\302\303!\304#\207" [path replace-regexp-in-string sml/regexp-composer t "\\1"] 4 (#$ . 48189)])
#@54 Return DIR, abbreviated and prefixed.
ML isn't used.
(defalias 'sml/not-shorten-directory #[(dir ml) "\301!\207" [dir sml/strip-prefix] 2 (#$ . 48459)])
#@141 String used when truncating part of the file path.
Set this to nil or an empty string if you don't want any
indication of a truncated path.
(custom-declare-variable 'sml/directory-truncation-string '(if (char-displayable-p 8230) "…/" ".../") '(#$ . 48620) :type 'string :group 'smart-mode-line :package-version '(smart-mode-line . "2.10"))
#@59 Show up to MAX-LENGTH characters of a directory name DIR.
(defalias 'sml/do-shorten-directory #[(dir max-length) "\306!\307	!\nX\203 	\202W \310\311	\312\"!\313\211\203' \f@\313\232\203' \fA\n\307!Z\f\f\203L \307\f@\312Q!\fX\203L \f@\312Q\fA\211\2042 )\f\203U P*)\207" [dir longname max-length output path sml/directory-truncation-string sml/strip-prefix string-width reverse split-string "/" "" max] 5 (#$ . 48968)])
(provide 'smart-mode-line)
