....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 66.235.200.170  /  Your IP : 3.135.64.200
Web Server : Apache
System : Linux gator4410.hostgator.com 5.14.0-162.23.1.9991722448259.nf.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 31 18:11:45 UTC 2024 x86_64
User : bmgxafte ( 1214)
PHP Version : 8.2.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/emacs/27.2/lisp/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/emacs/27.2/lisp/shadowfile.elc
;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; 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.

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


(byte-code "\300\301!\210\300\302!\210\303\304\305\306\307\310\311\312\313\314&	\210\315\316\305\317\320\321\313\304&\210\315\322\305\323\320\324\313\304&\210\315\325\305\326\320\324\313\304&\210\315\327\330\331\320\332\313\304\333\334&	\210\315\335\336\337\320\332\313\304\333\334&	\207" [require cl-lib tramp custom-declare-group shadow nil "Automatic file copying when saving a file." :prefix "shadow-" :link (emacs-commentary-link "shadowfile") :group files custom-declare-variable shadow-noquery "If t, always copy shadow files without asking.\nIf nil (the default), always ask.  If not nil and not t, ask only if there\nis no buffer currently visiting the file." :type (choice (const t) (const nil) (other :tag "Ask if no buffer" maybe)) shadow-inhibit-message "If non-nil, do not display a message when a file needs copying." boolean shadow-inhibit-overload "If non-nil, shadowfile won't redefine \\[save-buffers-kill-emacs].\nNormally it overloads the function `save-buffers-kill-emacs' to check for\nfiles that have been changed and need to be copied to other systems." shadow-info-file (locate-user-emacs-file "shadows" ".shadows") "File to keep shadow information in.\nThe `shadow-info-file' should be shadowed to all your accounts to\nensure consistency.  Default: ~/.emacs.d/shadows" file :version "26.2" shadow-todo-file (locate-user-emacs-file "shadow_todo" ".shadow_todo") "File to store the list of uncopied shadows in.\nThis means that if a remote system is down, or for any reason you cannot or\ndecide not to copy your shadow files at the end of one Emacs session, it will\nremember and ask you again in your next Emacs session.\nThis file must NOT be shadowed to any other system, it is host-specific.\nDefault: ~/.emacs.d/shadow_todo"] 10)
#@53 The identification for local files on this machine.
(defvar shadow-system-name (byte-code "\300\301 \302Q\207" ["/" system-name ":"] 3) (#$ . 2173))
#@38 Your home directory on this machine.
(defvar shadow-homedir "~" (#$ . 2328))
#@54 List of host clusters (see `shadow-define-cluster').
(defvar shadow-clusters nil (#$ . 2411))
#@149 List of files that are shared between hosts.
This list contains shadow structures with literal filenames, created by
`shadow-define-literal-group'.
(defvar shadow-literal-groups nil (#$ . 2512))
#@162 List of file types that are shared between hosts.
This list contains shadow structures with regexps matching filenames,
created by `shadow-define-regexp-group'.
(defvar shadow-regexp-groups nil (#$ . 2714))
(defvar shadow-files-to-copy nil)
(defvar shadow-hashtable nil)
(defvar shadow-info-buffer nil)
(defvar shadow-todo-buffer nil)
#@25 Use for debug messages.
(defvar shadow-debug nil (#$ . 3055))
#@69 Add members of list A to list B if not equal to items already in B.
(defalias 'shadow-union #[(a b) "\204	\207@	\235\203\302A	\"\207\302A@	B\"\207" [a b shadow-union] 4 (#$ . 3123)])
#@80 If FUNC applied to some element of LIST is non-nil, return first such element.
(defalias 'shadow-find #[(func list) "\203	@!\204A\211\204@\207" [list func] 3 (#$ . 3321)])
#@101 Like `regexp-quote', but includes the \` and \'.
This makes sure regexp matches nothing but STRING.
(defalias 'shadow-regexp-superquote #[(string) "\301\302!\303Q\207" [string "\\`" regexp-quote "\\'"] 3 (#$ . 3511)])
#@135 If PREFIX begins with STRING, return the rest.
Return value is non-nil if PREFIX and STRING are `string=' up to the length of
PREFIX.
(defalias 'shadow-suffix #[(prefix string) "G	G\nY\205\304	\305#\230\205\304	\"*\207" [prefix string ls lp substring 0] 5 (#$ . 3737)])
#@49 compiler-macro for inlining `shadow-cluster-p'.
(defalias 'shadow-cluster-p--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block shadow-cluster-p (and (memq (car-safe cl-x) cl-struct-shadow-cluster-tags) t)) nil] 7 (#$ . 4024)])
(put 'shadow-cluster-p 'compiler-macro 'shadow-cluster-p--cmacro)
(defalias 'shadow-cluster-p #[(cl-x) "\242	>\205\302\207" [cl-x cl-struct-shadow-cluster-tags t] 2])
(byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put shadow-cluster-p side-effect-free error-free put shadow-cluster cl-deftype-satisfies] 5)
#@52 compiler-macro for inlining `shadow-cluster-name'.
(defalias 'shadow-cluster-name--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block shadow-cluster-name (progn (or (shadow-cluster-p cl-x) (signal 'wrong-type-argument (list 'shadow-cluster cl-x))) (nth 1 cl-x))) nil] 7 (#$ . 4639)])
(put 'shadow-cluster-name 'compiler-macro 'shadow-cluster-name--cmacro)
#@53 Access slot "name" of `shadow-cluster' struct CL-X.
(defalias 'shadow-cluster-name #[(cl-x) "\242	>\204\302\303\304D\"\210A@\207" [cl-x cl-struct-shadow-cluster-tags signal wrong-type-argument shadow-cluster] 4 (#$ . 5057)])
(byte-code "\300\301\302\303#\300\207" [function-put shadow-cluster-name side-effect-free t] 4)
#@55 compiler-macro for inlining `shadow-cluster-primary'.
(defalias 'shadow-cluster-primary--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block shadow-cluster-primary (progn (or (shadow-cluster-p cl-x) (signal 'wrong-type-argument (list 'shadow-cluster cl-x))) (nth 2 cl-x))) nil] 7 (#$ . 5389)])
(put 'shadow-cluster-primary 'compiler-macro 'shadow-cluster-primary--cmacro)
#@56 Access slot "primary" of `shadow-cluster' struct CL-X.
(defalias 'shadow-cluster-primary #[(cl-x) "\242	>\204\302\303\304D\"\210\3058\207" [cl-x cl-struct-shadow-cluster-tags signal wrong-type-argument shadow-cluster 2] 4 (#$ . 5822)])
(byte-code "\300\301\302\303#\300\207" [function-put shadow-cluster-primary side-effect-free t] 4)
#@54 compiler-macro for inlining `shadow-cluster-regexp'.
(defalias 'shadow-cluster-regexp--cmacro #[(_cl-whole-arg cl-x) "\301\302\303\304\211\211&\207" [cl-x cl--defsubst-expand (cl-x) (cl-block shadow-cluster-regexp (progn (or (shadow-cluster-p cl-x) (signal 'wrong-type-argument (list 'shadow-cluster cl-x))) (nth 3 cl-x))) nil] 7 (#$ . 6168)])
(put 'shadow-cluster-regexp 'compiler-macro 'shadow-cluster-regexp--cmacro)
#@55 Access slot "regexp" of `shadow-cluster' struct CL-X.
(defalias 'shadow-cluster-regexp #[(cl-x) "\242	>\204\302\303\304D\"\210\3058\207" [cl-x cl-struct-shadow-cluster-tags signal wrong-type-argument shadow-cluster 3] 4 (#$ . 6596)])
(byte-code "\300\301\302\303#\304\305\306\"\207" [function-put shadow-cluster-regexp side-effect-free t defalias copy-shadow-cluster copy-sequence] 4)
#@102 compiler-macro for inlining `make-shadow-cluster'.

(fn CL-WHOLE &cl-quote &key NAME PRIMARY REGEXP)
(defalias 'make-shadow-cluster--cmacro #[(cl-whole &rest #1=#:--cl-rest--) "\306\307\"A@\306\310\"A@\306\311\"A@\f\203A\f@\312>\203*\fAA\211\202\313>A@\2038\314\211\202\315\316\f@\"\210\202)\317\320\321\314
\314	\n&+\207" [#1# name primary regexp #2=#:--cl-keys-- cl-whole plist-member :name :primary :regexp (:name :primary :regexp :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:name :primary :regexp)" cl--defsubst-expand (name primary regexp) (cl-block make-shadow-cluster (list 'shadow-cluster name primary regexp))] 10 (#$ . 6993)])
(put 'make-shadow-cluster 'compiler-macro 'make-shadow-cluster--cmacro)
#@82 Constructor for objects of type `shadow-cluster'.

(fn &key NAME PRIMARY REGEXP)
(defalias 'make-shadow-cluster #[(&rest #1=#:--cl-rest--) "\305\306\"A@\305\307\"A@\305\310\"A@\f\203A\f@\311>\203*\fAA\211\202\312>A@\2038\313\211\202\314\315\f@\"\210\202)\316	\nF+\207" [#1# name primary regexp #2=#:--cl-keys-- plist-member :name :primary :regexp (:name :primary :regexp :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:name :primary :regexp)" shadow-cluster] 5 (#$ . 7766)])
(byte-code "\300\301\302\303#\304\305\306\211\307\303\310\311\305\306&	\207" [function-put make-shadow-cluster side-effect-free t cl-struct-define shadow-cluster nil list ((cl-tag-slot) (name) (primary) (regexp)) cl-struct-shadow-cluster-tags] 11)
#@197 Put cluster NAME on the list of clusters.
Replace old definition, if any.  PRIMARY and REGEXP are the
information defining the cluster.  For interactive use, call
`shadow-define-cluster' instead.
(defalias 'shadow-set-cluster #[(name primary regexp) "\305\306\"\307\n\fF	B\211)\207" [shadow-clusters rest name primary regexp cl-remove-if #[(x) "	\242\n>\204\303\304\305	D\"\210	A@\232\207" [name x cl-struct-shadow-cluster-tags signal wrong-type-argument shadow-cluster] 5] shadow-cluster] 4 (#$ . 8550)])
#@36 Return cluster named NAME, or nil.
(defalias 'shadow-get-cluster #[(name) "\301\302\"\207" [shadow-clusters shadow-find #[(x) "\242	>\204\303\304\305D\"\210A@\n\230\207" [x cl-struct-shadow-cluster-tags name signal wrong-type-argument shadow-cluster] 4]] 3 (#$ . 9069)])
#@60 Return name if SITE has the form "/name:", otherwise SITE.
(defalias 'shadow-site-name #[(site) "\301\302\"\203\f\303\304\"\207\207" [site string-match "\\`/\\([-.[:word:]]+\\):\\'" match-string 1] 3 (#$ . 9352)])
#@58 Return "/name:" if NAME has word syntax, otherwise NAME.
(defalias 'shadow-name-site #[(name) "\301\302\"\203\f\303\304\"\207\207" [name string-match "\\`[-.[:word:]]+\\'" format "/%s:"] 3 (#$ . 9576)])
#@77 If SITE is a cluster, return primary identification, otherwise return SITE.
(defalias 'shadow-site-primary #[(site) "\303\304!!\211\203	\242\n>\204\305\306\307	D\"\210\310	8\202)\207" [site cluster cl-struct-shadow-cluster-tags shadow-get-cluster shadow-site-name signal wrong-type-argument shadow-cluster 2] 5 (#$ . 9789)])
#@48 Given a SITE, return cluster it is in, or nil.
(defalias 'shadow-site-cluster #[(site) "\302\303!!\206\f\304\305	\"\207" [site shadow-clusters shadow-get-cluster shadow-site-name shadow-find #[(x) "\303\242	>\204\304\305\306D\"\210\3078\310\n!\"\207" [x cl-struct-shadow-cluster-tags site string-match signal wrong-type-argument shadow-cluster 3 shadow-name-site] 5]] 3 (#$ . 10129)])
#@65 Read a cluster name or host identification from the minibuffer.
(defalias 'shadow-read-site #[nil "\303\304\"\305\306	!!\204#	\n\230\204#	\306\n!\230\204#\307	!\211\205$	)\207" [shadow-clusters ans shadow-system-name completing-read "Host identification or cluster name: " shadow-get-cluster shadow-site-name file-remote-p] 3 (#$ . 10527)])
#@160 Non-nil if SITE1 is or includes SITE2.
Each may be a host or cluster name; if they are clusters, regexp of SITE1 will
be matched against the primary of SITE2.
(defalias 'shadow-site-match #[(site1 site2) "	\230\206-\305!\306	!\n\203)\307\n\242\f>\204!\310\311\312\nD\"\210\313\n8\"\202,\230*\207" [site1 site2 cluster1 primary2 cl-struct-shadow-cluster-tags shadow-get-cluster shadow-site-primary string-match signal wrong-type-argument shadow-cluster 3] 5 (#$ . 10882)])
#@143 Parse any NAME into a `tramp-file-name' structure.
Argument can be a simple name, remote file name, or already a
`tramp-file-name' structure.
(defalias 'shadow-parse-name #[(name) "\204\304\207\242	>\203\207\305!\203\306!\207\307!\203*\310\311\312\n!\313\307!$\207\314\315\"\205L\316\317\"\316\320\"\321!\205K\322\304\211\211\304\304\257*\207" [name cl-struct-tramp-file-name-tags shadow-system-name file nil file-remote-p tramp-dissect-file-name shadow-local-file make-tramp-file-name :host shadow-site-name :localname string-match "^/\\([^:/]+\\):\\([^:]*\\)$" match-string 1 2 shadow-get-cluster tramp-file-name] 8 (#$ . 11372)])
#@109 Make a Tramp style fullname out of HUP, a `tramp-file-name' structure.
Replace HOST, and NAME when non-nil.
(defalias 'shadow-make-fullname #[(hup &optional host name) "\306!	\203\242\n>\204\307\310\311D\"\210\312\233\211	\240\210)\f\203:\242\n>\2041\307\310\311D\"\210\313\233\211\f\240\210)\242\n>\204H\307\310\311D\"\210A@\204v\314\315\242\n>\204^\307\310\311D\"\210\3128\242\n>\204o\307\310\311D\"\210\3138#\202y\316!)\207" [hup host cl-struct-tramp-file-name-tags #1=#:c name #2=#:c copy-tramp-file-name signal wrong-type-argument tramp-file-name 4 6 format "/%s:%s" tramp-make-tramp-file-name] 8 (#$ . 12037)])
(put 'shadow-make-fullname 'byte-optimizer 'byte-compile-inline-expand)
#@61 Return FULLNAME with the name component changed to NEWNAME.
(defalias 'shadow-replace-name-component #[(fullname newname) "\302!	P\207" [fullname newname file-remote-p] 2 (#$ . 12763)])
#@83 If FILE is not remote, return it.
If it refers to a different system, return nil.
(defalias 'shadow-local-file #[(file) "\204\306\207\242	>\2033\242	>\204\307\310\311D\"\210A@\2043\242	>\204/\307\310\311D\"\210\3128\207\242	>\203<\306\207\313\314\315\316\n!\"\"\203M\317\320\"\207\313\321\"\203\213\322\317\320\"!\203\213\317\323\"\322\317\320\"!\211\242\f>\204v\307\310\324D\"\210\3238)
\n\230\203\204\306\325
P!*\207\326!?\205\223\207" [file cl-struct-tramp-file-name-tags shadow-system-name cl-x cl-struct-shadow-cluster-tags primary nil signal wrong-type-argument tramp-file-name 6 string-match format "^%s\\([^:]*\\)$" regexp-quote match-string 1 "^/\\([^:/]+\\):\\([^:]*\\)$" shadow-get-cluster 2 shadow-cluster shadow-local-file file-remote-p] 6 (#$ . 12956)])
#@130 If hostname part of FILE is a cluster, expand it to cluster's primary hostname.
Will return the name bare if it is a local file.
(defalias 'shadow-expand-cluster-in-file-name #[(file) ";\205M\305!\206M\306\307\"\203L\310 \311\216\312\313\314\315\"!!\211\242>\204.\316\317\320\nD\"\210\321\n8+\211\204;\202J\322\f\323\211\315%\305!\206J)\207\207" [file save-match-data-internal cl-x cl-struct-shadow-cluster-tags primary shadow-local-file string-match "^\\(/[^:/]+:\\)[^:]*$" match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] shadow-get-cluster shadow-site-name match-string 1 signal wrong-type-argument shadow-cluster 2 replace-match nil] 7 (#$ . 13769)])
#@44 Expand file name and get FILE's true name.
(defalias 'shadow-expand-file-name #[(file &optional default) "\302\303	\"!\207" [file default file-truename expand-file-name] 4 (#$ . 14492)])
#@162 Simplify FILE.
Do so by replacing (when possible) home directory with ~, and hostname
with cluster name that includes it.  Filename should be absolute and
true.
(defalias 'shadow-contract-file-name #[(file) "\306!\307	!\203\n\202\226\310\311\312	\313\314\315	!\f\2037	\242
>\204-\316\317\320	D\"\210\321	\233\211\f\240\210)\203S	\242
>\204I\316\317\320	D\"\210\322	\233\211\240\210)	\242
>\204a\316\317\320	D\"\210	A@\204\217\323\324	\242
>\204w\316\317\320	D\"\210\321	8	\242
>\204\210\316\317\320	D\"\210\322	8#\202\222\325	!,!!!\326	\242
>\204\251\316\317\320	D\"\210\322	8\"\327	\313\330\315	!\f\203\326	\242
>\204\314\316\317\320	D\"\210\321	\233\211\f\240\210)\203\362	\242
>\204\350\316\317\320	D\"\210\322	\233\211\240\210)	\242
>\204\316\317\320	D\"\210	A@\204.\323\324	\242
>\204\316\317\320	D\"\210\321	8	\242
>\204'\316\317\320	D\"\210\322	8#\2021\325	!,!\211\203|	\242
>\204G\316\317\320	D\"\210	A\211 \313\240\210)	\242
>\204^\316\317\320	D\"\210\321	\233\211!\242\">\204u\316\317\331D\"\210A@\240\210)	\313\203\212\332P\202\233	\242
>\204\230\316\317\320	D\"\210\322	8\315	!\f\203\276	\242
>\204\264\316\317\320	D\"\210\321	\233\211\f\240\210)\203\332	\242
>\204\320\316\317\320	D\"\210\322	\233\211\240\210)	\242
>\204\350\316\317\320	D\"\210	A@\204\323\324	\242
>\204\376\316\317\320	D\"\210\321	8	\242
>\204\316\317\320	D\"\210\322	8#\202\325	!.\207" [file hup shadow-homedir name host cl-struct-tramp-file-name-tags shadow-parse-name shadow-local-file file-name-as-directory file-local-name expand-file-name nil "~" copy-tramp-file-name signal wrong-type-argument tramp-file-name 4 6 format "/%s:%s" tramp-make-tramp-file-name shadow-suffix shadow-site-cluster "" shadow-cluster "~/" #1=#:c #2=#:c homedir suffix cluster #3=#:c #4=#:c cl-struct-shadow-cluster-tags] 11 (#$ . 14687)])
#@164 True if the site of PATTERN and of FILE are on the same site.
PATTERN and FILE may be Tramp vectors, or remote file names.
FILE may also be just a local filename.
(defalias 'shadow-same-site #[(pattern file) "\305!\305	!\306\242\f>\204\307\310\311D\"\210\3128\n\242\f>\204(\307\310\311\nD\"\210\312\n8\"\205g\242\f>\204=\307\310\311D\"\210\3138?\206g\242\f>\204R\307\310\311D\"\210\3138\n\242\f>\204c\307\310\311\nD\"\210\313\n8\230*\207" [pattern file file-sup pattern-sup cl-struct-tramp-file-name-tags shadow-parse-name shadow-site-match signal wrong-type-argument tramp-file-name 4 2] 6 (#$ . 16594)])
#@387 Return t if PATTERN matches FILE.
If REGEXP is supplied and non-nil, the file part of the pattern is a regular
expression, otherwise it must match exactly.  The sites must
match---see `shadow-same-site'.  The pattern must be in full Tramp format,
but the file can be any valid filename.  This function does not do any
filename expansion or contraction, you must do that yourself first.
(defalias 'shadow-file-match #[(pattern file &optional regexp) "\306!\306\n!\307	\"\205a\f\203:\310	\242
>\204\"\311\312\313	D\"\210\314	8\242
>\2043\311\312\313D\"\210\3148\"\202]	\242
>\204H\311\312\313	D\"\210\314	8\242
>\204Y\311\312\313D\"\210\3148\230\205a\315*\207" [pattern pattern-sup file file-sup regexp cl-struct-tramp-file-name-tags shadow-parse-name shadow-same-site string-match signal wrong-type-argument tramp-file-name 6 t] 6 (#$ . 17227)])
#@373 Edit (or create) the definition of a cluster NAME.
This is a group of hosts that share directories, so that copying to or from
one of them is sufficient to update the file on all of them.  Clusters are
defined by a name, the network address of a primary host (the one we copy
files to), and a regular expression that matches the hostnames of all the
sites in the cluster.
(defalias 'shadow-define-cluster #[(name) "\306!\307\310\311	\203 	\242>\204\312\313\314	D\"\210\315	8\202!\"\211\f\230\204:\316\n!\204:\317\320!\210\321\315!\210\202\n)\307\322\310\323	\203[	\242>\204U\312\313\314	D\"\210\324	8\202^\325
!\"\211
\"\204r\317\326!\210\321\315!\210\202@)\327
#+\207" [name old try-primary cl-struct-shadow-cluster-tags shadow-system-name primary shadow-get-cluster nil read-string "Primary host: " signal wrong-type-argument shadow-cluster 2 file-remote-p message "Not a valid primary!" sit-for string-match "Regexp matching all host names: " 3 shadow-regexp-superquote "Regexp doesn't include the primary host!" shadow-set-cluster try-regexp regexp] 7 (#$ . 18097) (list (completing-read "Cluster name: " shadow-clusters))])
#@273 Declare a single file to be shared between sites.
It may have different filenames on each site.  When this file is edited, the
new version will be copied to each of the other locations.  Sites can be
specific hostnames, or names of clusters (see `shadow-define-cluster').
(defalias 'shadow-define-literal-group #[nil "\306\307\310 !!\211\242	>\204\311\312\313D\"\210\3148\315\211\316 \211\203\267\317\320\n\"\306\307\n!!\211\315\321!
\203U\242	>\204K\311\312\313D\"\210\322\233\211
\240\210)\n\203q\242	>\204g\311\312\313D\"\210\314\233\211\n\240\210)\242	>\204\311\312\313D\"\210A@\204\255\323\324\242	>\204\225\311\312\313D\"\210\3228\242	>\204\246\311\312\313D\"\210\3148#\202\260\325!,\fB\202\fB,\326 \207" [hup cl-struct-tramp-file-name-tags name site group host shadow-parse-name shadow-contract-file-name buffer-file-name signal wrong-type-argument tramp-file-name 6 nil shadow-read-site read-string "Filename: " copy-tramp-file-name 4 format "/%s:%s" tramp-make-tramp-file-name shadow-write-info-file #1=#:c #2=#:c shadow-literal-groups] 8 (#$ . 19265) nil])
#@389 Make each of a group of files be shared between hosts.
Prompts for regular expression; files matching this are shared between a list
of sites, which are also prompted for.  The filenames must be identical on all
hosts (if they aren't, use `shadow-define-literal-group' instead of this
function).  Each site can be either a hostname or the name of a cluster (see
`shadow-define-cluster').
(defalias 'shadow-define-regexp-group #[nil "\304\305\306 \205
\307\310\306 !!\"\311\211\312 \211\203!	B\202\313\n\"B\314 +\207" [sites site regexp shadow-regexp-groups read-string "Filename regexp: " buffer-file-name shadow-regexp-superquote file-local-name nil shadow-read-site shadow-make-group shadow-write-info-file] 5 (#$ . 20394) nil])
#@54 Interactive function to display shadows of a buffer.
(defalias 'shadow-shadows #[nil "\301\302\303\304 !\305#\306\307G\310U\203\311\202\")\207" [msg mapconcat cdr shadow-shadows-of buffer-file-name " " message "%s" 0 "No shadows."] 4 (#$ . 21144) nil])
#@309 Copy all pending shadow files.
With prefix argument, copy all pending files without query.
Pending copies are stored in variable `shadow-files-to-copy', and in
`shadow-todo-file' if necessary.  This function is invoked by
`shadow-save-buffers-kill-emacs', so it is not usually necessary to
call it manually.
(defalias 'shadow-copy-files #[(&optional arg) "\204\301\302!\205\303\304!\207\212\305\306\307\310$\210\311\312!)\207" [shadow-files-to-copy called-interactively-p interactive message "No files need to be shadowed." map-y-or-n-p #[(pair) "\206
	\206
\303\304\nA\"\207" [arg shadow-noquery pair format "Copy shadow file %s? "] 3] shadow-copy-file ("shadow" "shadows" "copy") shadow-write-todo-file t] 5 (#$ . 21411) "P"])
#@281 Cancel the instruction to copy some files.
Prompts for which copy operations to cancel.  You will not be asked to copy
them again, unless you make more changes to the files.  To cancel a shadow
permanently, remove the group from `shadow-literal-groups' or
`shadow-regexp-groups'.
(defalias 'shadow-cancel #[nil "\301\302\303\304$\210\305\306G\"\210\307 \207" [shadow-files-to-copy map-y-or-n-p #[(pair) "\301\302@A#\207" [pair format "Cancel copying %s to %s? "] 4] #[(pair) "\301!\207" [pair shadow-remove-from-todo] 2] ("shadow" "shadows" "cancel copy") message "There are %d shadows to be updated." shadow-write-todo-file] 5 (#$ . 22156) nil])
#@146 Make a description of a file group---
actually a list of regexp Tramp file names---from REGEXP (name of file to
be shadowed), and list of SITES.
(defalias 'shadow-make-group #[(regexp sites) "\205\221\306\307@!!\310	\311\f!\203/\f\242
>\204%\312\313\314\fD\"\210\315\f\233\211\240\210)\n\203K\f\242
>\204A\312\313\314\fD\"\210\316\f\233\211\n\240\210)\f\242
>\204Y\312\313\314\fD\"\210\fA@\204\207\317\320\f\242
>\204o\312\313\314\fD\"\210\315\f8\f\242
>\204\200\312\313\314\fD\"\210\316\f8#\202\212\321\f!,\322	A\"B\207" [sites regexp name host hup cl-struct-tramp-file-name-tags shadow-parse-name shadow-site-primary nil copy-tramp-file-name signal wrong-type-argument tramp-file-name 4 6 format "/%s:%s" tramp-make-tramp-file-name shadow-make-group #1=#:c #2=#:c] 7 (#$ . 22815)])
#@23 Copy one shadow file.
(defalias 'shadow-copy-file #[(s) "\304\305\306@!!!\2068\307@!\204$\310\311\312@\"!\203 \313!\210\314\2028	\315=\2044\310\311\316@\"!\2058\317@!\320A!\n\205\\\nq\210\3211V\322\314\211#\210\313!0\202\\\210\323\324A\"*\207" [s shadow-noquery buffer to get-file-buffer abbreviate-file-name shadow-expand-file-name file-readable-p y-or-n-p format "Cannot find file %s--cancel copy request? " shadow-remove-from-todo nil t "No buffer for %s -- update shadow anyway? " find-file-noselect shadow-expand-cluster-in-file-name (error) write-region message "Shadow %s not updated!"] 4 (#$ . 23628)])
#@222 Return copy operations needed to update FILE.
Filename should have clusters expanded, but otherwise can have any format.
Return value is a list of dotted pairs like (from . to), where from
and to are absolute file names.
(defalias 'shadow-shadows-of #[(file) "\306	\"J\206B\307\310!\206\n\"\311!\312\313\314\315\f
\316#\315\f\317#\"\"\203:\320\321\310!\n\f&\210\322	\"L+\207" [file shadow-hashtable shadow-homedir absolute-file canonical-file shadow-literal-groups intern-soft shadow-expand-file-name shadow-local-file shadow-contract-file-name mapcar #[(shadow) "	B\207" [absolute-file shadow] 2] append shadow-shadows-of-1 nil t message "shadow-shadows-of: %s %s %s %s %s" intern shadow-regexp-groups shadows shadow-debug] 8 (#$ . 24267)])
#@108 Return list of FILE's shadows in GROUPS.
Consider them as regular expressions if third arg REGEXP is true.
(defalias 'shadow-shadows-of-1 #[(file groups regexp) "\205R\306\307@\"\310	@\232\203\311\202J\n\203I\312!\211\242
>\204,\313\314\315\fD\"\210\316\f8)\203A\317\320\312!$\210\321\322	\")\202J	\323A\n#\")\207" [groups nonmatching regexp file cl-x cl-struct-tramp-file-name-tags cl-remove-if #[(x) "\303	\n#\207" [x file regexp shadow-file-match] 4] append nil shadow-parse-name signal wrong-type-argument tramp-file-name 6 message "shadow-shadows-of-1: %s %s %s" mapcar #[(x) "\302	\"\207" [x realname shadow-replace-name-component] 3] shadow-shadows-of-1 realname shadow-debug] 7 (#$ . 25040)])
#@75 If current buffer has shadows, add them to the list needing to be copied.
(defalias 'shadow-add-to-todo #[nil "\203\305\306\307p!\310\307p!!#\210\311\310\307p!!!\2035\305\312	\n\313\314!\315\216\316 \210)rq\210\317 +$\210	\203P\320	\n\"\f\204M\305\321\322\323!\"\210\324\325!\210\326 \210)\327\207" [shadow-debug shadows shadow-files-to-copy standard-output shadow-inhibit-message message "shadow-add-to-todo: %s %s" buffer-file-name shadow-expand-file-name shadow-shadows-of "shadow-add-to-todo: %s %s\n%s" generate-new-buffer " *string-output*" #[nil "\301!\207" [standard-output kill-buffer] 2] backtrace buffer-string shadow-union "%s" substitute-command-keys "Use \\[shadow-copy-files] to update shadows." sit-for 1 shadow-write-todo-file nil] 6 (#$ . 25773)])
#@97 Remove PAIR from `shadow-files-to-copy'.
PAIR must be `eq' to one of the elements of that list.
(defalias 'shadow-remove-from-todo #[(pair) "\203\304\305	\n\306\307!\310\216\311 \210)rq\210\312 +$\210\313\314\n\"\211\207" [shadow-debug pair shadow-files-to-copy standard-output message "shadow-remove-from-todo: %s %s\n%s" generate-new-buffer " *string-output*" #[nil "\301!\207" [standard-output kill-buffer] 2] backtrace buffer-string cl-remove-if #[(s) "	=\207" [s pair] 2]] 6 (#$ . 26559)])
#@174 Visit and load `shadow-info-file' and `shadow-todo-file'.
Thus restores shadowfile's state from your last Emacs session.
Return t unless files were locked; then return nil.
(defalias 'shadow-read-files #[nil "\304!;\204\304	!;\203\305\306!\210\307 \210\310\311!\210\312\207r\203H\313\314\"\211q\210\315 \204E\316\317 \"\203E\320 \210\305\321\322\317 !@\"\210\310\323!\210\324 \210	\203u\313	\314\"\211q\210\315 \204q\316\317 	\"\203q\320 \210\305\321\322\317 !@\"\210\310\323!\210\324\312!\210\325 \210)\326\207" [shadow-info-file shadow-todo-file shadow-info-buffer shadow-todo-buffer file-locked-p message "Shadowfile is running in another Emacs; can't have two." beep sit-for 3 nil find-file-noselect nowarn buffer-modified-p file-newer-than-file-p make-auto-save-file-name erase-buffer "Data recovered from %s." insert-file-contents 1 eval-buffer shadow-invalidate-hashtable t] 4 (#$ . 27071) nil])
#@154 Write out information to `shadow-info-file'.
Also clear `shadow-hashtable', since when there are new shadows
defined, the old hashtable info is invalid.
(defalias 'shadow-write-info-file #[nil "\303 \210\205%r	\204\304!	q\210\305ed|\210\306\307!\210\306\310!\210\306\311!)\207" [shadow-info-file shadow-info-buffer buffer-read-only shadow-invalidate-hashtable find-file-noselect nil shadow-insert-var shadow-clusters shadow-literal-groups shadow-regexp-groups] 2 (#$ . 27997)])
#@91 Write out information to `shadow-todo-file'.
With non-nil argument also saves the buffer.
(defalias 'shadow-write-todo-file #[(&optional save) "\212\204	\304	!q\210\305ed|\210\306\307!\210\205\310 )\207" [shadow-todo-buffer shadow-todo-file buffer-read-only save find-file-noselect nil shadow-insert-var shadow-files-to-copy shadow-save-todo-file] 2 (#$ . 28488)])
(defalias 'shadow-save-todo-file #[nil "\203\303\304\305\306!\307\216	\310 \210)r	q\210\311 +\"\210\n\205<\312\n!\205<r\nq\210\31313\314 0\202;\210\303\315!\210\316\317!)\207" [shadow-debug standard-output shadow-todo-buffer message "shadow-save-todo-file:\n%s" generate-new-buffer " *string-output*" #[nil "\301!\207" [standard-output kill-buffer] 2] backtrace buffer-string buffer-modified-p (error) basic-save-buffer "WARNING: Can't save shadow todo file; it is locked!" sit-for 1] 4])
(defalias 'shadow-invalidate-hashtable #[nil "\301\302\303\"\211\207" [shadow-hashtable make-vector 37 0] 3])
#@208 Build a `setq' to restore VARIABLE.
Prettily insert a `setq' command which, when later evaluated,
will restore VARIABLE to its current setting.
VARIABLE must be the name of a variable whose value is a list.
(defalias 'shadow-insert-var #[(variable) "p\303\304	\"c\210\305	!:\2037\306c\210\307\305	!@!\210\305	!A\211\2031\310c\210\307\n@!\210\nA\211\204\"\311c)\202B\312c\210\307\305	!!\210\313c)\207" [standard-output variable rest format "(setq %s" eval "\n  '(" prin1 "\n    " "))\n\n" " " ")\n\n"] 4 (#$ . 29478)])
#@291 Offer to save each buffer and copy shadows, then kill this Emacs process.
With prefix arg, silently save all file-visiting buffers, then kill.

Extended by shadowfile to automatically save `shadow-todo-file' and
look for files that have been changed and need to be copied to other systems.
(defalias 'shadow-save-buffers-kill-emacs #[(&optional arg) "\303 \210\304\305\"\210\306 \210\303 \210\305\307\310\311 \">\203\312\313!\205T\314\315!\203R\315 \316\211\203F\317\n@!\320>\203?\321\n@!\203?\305\nA\211\204-	?\206N\312\322!*\205T\323 \207" [arg active processes shadow-save-todo-file save-some-buffers t shadow-copy-files mapcar #[(buf) "\301!\205	\302!\207" [buf buffer-file-name buffer-modified-p] 2] buffer-list yes-or-no-p "Modified buffers exist; exit anyway? " fboundp process-list nil process-status (run stop open listen) process-query-on-exit-flag "Active processes exist; kill them and exit anyway? " kill-emacs] 5 (#$ . 30010) "P"])
#@24 Set up file shadowing.
(defalias 'shadow-initialize #[nil "\305\306!!\306	!\306\n!\307 \204\310\311!\210\312 \210\313\314!\207\2043\315\316!\2043\317\316\320K\"\210\317\320\321\"\210\322\323\324\"\210\325\f\326\327#\207" [shadow-homedir shadow-info-file shadow-todo-file shadow-inhibit-overload ctl-x-4-map file-name-as-directory shadow-expand-file-name shadow-read-files message "Shadowfile information files not found - aborting" beep sit-for 3 fboundp shadow-orig-save-buffers-kill-emacs defalias save-buffers-kill-emacs shadow-save-buffers-kill-emacs add-hook write-file-functions shadow-add-to-todo define-key "s" shadow-copy-files] 4 (#$ . 30980) nil])
(defalias 'shadowfile-unload-function #[nil "\301\302\303#\210\304\305!\203\306\305KM\210\303\207" [ctl-x-4-map substitute-key-definition shadow-copy-files nil fboundp shadow-orig-save-buffers-kill-emacs save-buffers-kill-emacs] 4])
(provide 'shadowfile)

Youez - 2016 - github.com/yon3zu
LinuXploit