....................................../////.===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/window.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.

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


(defalias 'internal--before-save-selected-window #[0 "\300 \301\302\303\304\305 \"\"B\207" [selected-window apply append mapcar #[257 "\300!\301!\302\203\303\"B\262\211\203*\211@\211\304!BB\262A\266\202\202\210\207" [frames-on-display-list tty-top-frame nil delq frame-selected-window] 9 "\n\n(fn TERMINAL)"] terminal-list] 6])
#@14 

(fn STATE)
(defalias 'internal--after-save-selected-window #[257 "\211A\211\203%\211@\300@!\203\301A!\203\302@A\303#\210A\266\202\202\210\301@!\2052\304@\303\"\207" [frame-live-p window-live-p set-frame-selected-window norecord select-window] 7 (#$ . 753)])
#@748 Execute BODY, then select the previously selected window.
The value returned is the value of the last form in BODY.

This macro saves and restores the selected window, as well as the
selected window in each frame.  If the previously selected window
is no longer live, then whatever window is selected at the end of
BODY remains selected.  If the previously selected window of some
frame is no longer live at the end of BODY, that frame's selected
window is left alone.

This macro saves and restores the current buffer, since otherwise
its normal operation could make a different buffer current.  The
order of recently selected windows and the buffer list ordering
are not altered by this macro (unless they are altered in BODY).

(fn &rest BODY)
(defalias 'save-selected-window '(macro . #[128 "\300\301\302\303\304B\305BBDE\207" [let ((save-selected-window--state (internal--before-save-selected-window))) save-current-buffer unwind-protect progn ((internal--after-save-selected-window save-selected-window--state))] 7 (#$ . 1035)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put save-selected-window lisp-indent-function 0 put edebug-form-spec t] 5)
#@156 Normal hook run by `with-temp-buffer-window' before buffer display.
This hook is run by `with-temp-buffer-window' with the buffer to be
displayed current.
(defvar temp-buffer-window-setup-hook nil (#$ . 2216))
#@177 Normal hook run by `with-temp-buffer-window' after buffer display.
This hook is run by `with-temp-buffer-window' with the buffer
displayed and current and its window selected.
(defvar temp-buffer-window-show-hook nil (#$ . 2433))
#@94 Set up temporary buffer specified by BUFFER-OR-NAME.
Return the buffer.

(fn BUFFER-OR-NAME)
(defalias 'temp-buffer-window-setup #[257 "\306!r\211q\210\307 \210\310 \210\311\211\312\211\312\313 \210\314\315!\210+\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only get-buffer-create kill-all-local-variables delete-all-overlays nil t erase-buffer run-hooks temp-buffer-window-setup-hook] 6 (#$ . 2669)])
#@160 Show temporary buffer BUFFER in a window.
Return the window showing BUFFER.  Pass ACTION as action argument
to `display-buffer'.

(fn BUFFER &optional ACTION)
(defalias 'temp-buffer-window-show #[513 "\304\211rq\210\305\304!\210\306eb\210	\307=\204	\310=\203#\n\203#\306\202$	\311\"\211\262)\205l\312!\262\211\313 =\204@\314!\210\315\316\"\210\317!r\320\316\321\322\323!\324\"\325$\216\326@\327\"\210\330\331!\210\n\203i\332!\210*\210)\207" [buffer-read-only window-combination-limit temp-buffer-resize-mode minibuffer-scroll-window nil set-buffer-modified-p t temp-buffer temp-buffer-resize display-buffer window-frame selected-frame raise-frame set-window-hscroll 0 internal--before-with-selected-window make-byte-code "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord run-hooks temp-buffer-window-show-hook resize-temp-buffer-window] 11 (#$ . 3157)])
#@1961 Bind `standard-output' to BUFFER-OR-NAME, eval BODY, show the buffer.
BUFFER-OR-NAME must specify either a live buffer, or the name of
a buffer (if it does not exist, this macro creates it).

Make the buffer specified by BUFFER-OR-NAME empty before running
BODY and bind `standard-output' to that buffer, so that output
generated with `prin1' and similar functions in BODY goes into
that buffer.  Do not make that buffer current for running the
forms in BODY.  Use `with-current-buffer-window' instead if you
need to run BODY with that buffer current.

At the end of BODY, mark the specified buffer unmodified and
read-only, and display it in a window (but do not select it).
The display happens by calling `display-buffer' passing it the
ACTION argument.  If `temp-buffer-resize-mode' is enabled, the
corresponding window may be resized automatically.

Return the value returned by BODY, unless QUIT-FUNCTION specifies
a function.  In that case, run that function with two arguments -
the window showing the specified buffer and the value returned by
BODY - and return the value returned by that function.

If the buffer is displayed on a new frame, the window manager may
decide to select that frame.  In that case, it's usually a good
strategy if QUIT-FUNCTION selects the window showing the buffer
before reading any value from the minibuffer; for example, when
asking a `yes-or-no-p' question.

This runs the hook `temp-buffer-window-setup-hook' before BODY,
with the specified buffer temporarily current.  It runs the hook
`temp-buffer-window-show-hook' after displaying the buffer, with
that buffer temporarily current, and the window that was used to
display it temporarily selected.

This construct is similar to `with-output-to-temp-buffer' but,
neither runs `temp-buffer-setup-hook' which usually puts the
buffer in Help mode, nor `temp-buffer-show-function' (the ACTION
argument replaces this).

(fn BUFFER-OR-NAME ACTION QUIT-FUNCTION &rest BODY)
(defalias 'with-temp-buffer-window '(macro . #[899 "\300\301!\300\302!\300\303!\304!\203\211\202\300\305!\304!\203$\211\202'\300\306!\304!\2033\211\2026\300\307!\310	\311DD\312D\n\nF\313	\314BE\315\f\313
\316EEE\317\320D\321F
F\257=\203y\211\202\200\322DC\"\266\203=\203\214\211\202\223\322DC\"\266\203=\203\237\211\202\246\322DC\"\266\203\207" [make-symbol "buffer" "window" "value" macroexp-const-p "vbuffer-or-name" "vaction" "vquit-function" let* temp-buffer-window-setup standard-output setq progn with-current-buffer temp-buffer-window-show if functionp funcall macroexp-let*] 23 (#$ . 4089)]))
(byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put with-temp-buffer-window edebug-form-spec t function-put lisp-indent-function 3] 4)
#@264 Evaluate BODY with a buffer BUFFER-OR-NAME current and show that buffer.
This construct is like `with-temp-buffer-window' but unlike that,
makes the buffer specified by BUFFER-OR-NAME current for running
BODY.

(fn BUFFER-OR-NAME ACTION QUIT-FUNCTION &rest BODY)
(defalias 'with-current-buffer-window '(macro . #[899 "\300\301!\300\302!\300\303!\304!\203\211\202\300\305!\304!\203$\211\202'\300\306!\304!\2033\211\2026\300\307!\310	\311DD\312D\n\nF\313\314\315BE\314
\316EEF\317\320D\321F\fFF=\203w\211\202~\322DC\"\266\203=\203\212\211\202\221\322DC\"\266\203=\203\235\211\202\244\322DC\"\266\203\207" [make-symbol "buffer" "window" "value" macroexp-const-p "vbuffer-or-name" "vaction" "vquit-function" let* temp-buffer-window-setup standard-output with-current-buffer setq progn temp-buffer-window-show if functionp funcall macroexp-let*] 23 (#$ . 6869)]))
(byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put with-current-buffer-window edebug-form-spec t function-put lisp-indent-function 3] 4)
#@255 Show a buffer BUFFER-OR-NAME and evaluate BODY in that buffer.
This construct is like `with-current-buffer-window' but unlike that,
displays the buffer specified by BUFFER-OR-NAME before running BODY.

(fn BUFFER-OR-NAME ACTION QUIT-FUNCTION &rest BODY)
(defalias 'with-displayed-buffer-window '(macro . #[899 "\300\301!\300\302!\300\303!\304!\203\211\202\300\305!\304!\203$\211\202'\300\306!\304!\2033\211\2026\300\307!\310	\311DD\312D\313\314\315\316\317\320DEDC\321BBD\322\323\313\324\325D\324\326\327\330\320\331DDEEEED\f\f\257\332\333\f\334\335\322\fEEEE\314\336\333\f\337BEE\340\f\341BB\323\313\342\343\344BB\345\313EEE\323\346\320\316\347\320DEDD\350\351\352\316\353\320DEDF\350\354\355\316\356\320DEDFF\357\360	D\345\nFF\257=\203\346\211\202\355\361DC\"\266\203=\203\371\211\202\361DC\"\266\203=\203\f\211\202\361DC\"\266\203\207" [make-symbol "buffer" "window" "value" macroexp-const-p "vbuffer-or-name" "vaction" "vquit-function" let* temp-buffer-window-setup standard-output vheight-function let window-height assq 'window-height cdr ((when (functionp (cdr window-height)) (cdr window-height))) vaction-copied when cons car '(window-height . t) assq-delete-all 'window-height copy-sequence with-current-buffer setq temp-buffer-window-show or ((inhibit-read-only t) (inhibit-modification-hooks t)) progn set-window-point ((point-min)) ignore-errors set-window-parameter ('preserve-size nil) funcall consp 'preserve-size window-preserve-size t cadr 'preserve-size nil cddr 'preserve-size if functionp macroexp-let*] 30 (#$ . 7950)]))
(byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put with-displayed-buffer-window edebug-form-spec t function-put lisp-indent-function 3] 4)
#@126 Return WINDOW's right sibling.
Return nil if WINDOW is the root window of its frame.  WINDOW can
be any window.

(fn WINDOW)
(defalias 'window-right #[257 "\211\205
\300!\205
\301!\207" [window-parent window-next-sibling] 3 (#$ . 9740)])
#@125 Return WINDOW's left sibling.
Return nil if WINDOW is the root window of its frame.  WINDOW can
be any window.

(fn WINDOW)
(defalias 'window-left #[257 "\211\205
\300!\205
\301!\207" [window-parent window-prev-sibling] 3 (#$ . 9989)])
#@76 Return WINDOW's first child window.
WINDOW can be any window.

(fn WINDOW)
(defalias 'window-child #[257 "\300!\206	\301!\207" [window-top-child window-left-child] 3 (#$ . 10235)])
#@81 Return number of WINDOW's child windows.
WINDOW can be any window.

(fn WINDOW)
(defalias 'window-child-count #[257 "\300\301!\203 \302!\211\262\203 \203 \211T\262\303!\262\202\211\207" [0 windowp window-child window-next-sibling] 4 (#$ . 10425)])
#@76 Return last child window of WINDOW.
WINDOW can be any window.

(fn WINDOW)
(defalias 'window-last-child #[257 "\300!\203\301!\211\262\203\302!\203\302!\262\202\207" [windowp window-child window-next-sibling] 3 (#$ . 10691)])
#@343 Return buffer specified by BUFFER-OR-NAME.
BUFFER-OR-NAME must be a live buffer, a string naming a live
buffer or nil which means to return the current buffer.

This function is commonly used to process the (usually optional)
"BUFFER-OR-NAME" argument of window related functions where nil
stands for the current buffer.

(fn BUFFER-OR-NAME)
(defalias 'window-normalize-buffer #[257 "\211\204p\202!\300!\203\211\202!\211;\203\301!\202!\302\303\"\304!\203+\211\202/\302\305\"\207" [bufferp get-buffer error "No such buffer %s" buffer-live-p "No such live buffer %s"] 5 (#$ . 10937)])
#@284 Return frame specified by FRAME.
FRAME must be a live frame or nil which means to return the
selected frame.

This function is commonly used to process the (usually optional)
"FRAME" argument of window and frame related functions where
nil stands for the selected frame.

(fn FRAME)
(defalias 'window-normalize-frame #[257 "\211\203\300!\203\207\301\302\"\207\303 \207" [frame-live-p error "%s is not a live frame" selected-frame] 4 (#$ . 11543)])
#@430 Return window specified by WINDOW.
If WINDOW is nil, return the selected window.  Otherwise, if
WINDOW is a live or an internal window, return WINDOW; if
LIVE-ONLY is non-nil, return WINDOW for a live window only.
Otherwise, signal an error.

This function is commonly used to process the (usually optional)
"WINDOW" argument of window related functions where nil stands
for the selected window.

(fn WINDOW &optional LIVE-ONLY)
(defalias 'window-normalize-window #[513 "\204\300 \207\211\203\301!\203\207\302\303\"\207\304!\203 \207\302\305\"\207" [selected-window window-live-p error "%s is not a live window" window-valid-p "%s is not a valid window"] 5 (#$ . 12004)])
#@492 Return the value of `frame-char-height' for WINDOW-OR-FRAME.
If WINDOW-OR-FRAME is a live frame, return the value of
`frame-char-height' for that frame.  If WINDOW-OR-FRAME is a
valid window, return the value of `frame-char-height' for that
window's frame.  In any other case, return the value of
`frame-char-height' for the selected frame.

Optional argument HORIZONTAL non-nil means to return the value of
`frame-char-width' for WINDOW-OR-FRAME.

(fn &optional WINDOW-OR-FRAME HORIZONTAL)
(defalias 'frame-char-size #[512 "\300!\203\f\301!\202\302!\203\202\303 \203\"\304!\202%\305!\207" [window-valid-p window-frame frame-live-p selected-frame frame-char-width frame-char-height] 5 (#$ . 12697)])
#@304 If non-nil, standard functions ignore window parameters.
The functions currently affected by this are `split-window',
`delete-window', `delete-other-windows' and `other-window'.

An application may bind this to a non-nil value around calls to
these functions to inhibit processing of window parameters.
(defvar ignore-window-parameters nil (#$ . 13420))
#@86 The absolute minimum number of lines of any window.
Anything less might crash Emacs.
(defconst window-safe-min-height 1 (#$ . 13780))
#@76 Return the absolute minimum pixel height of WINDOW.

(fn &optional WINDOW)
(defalias 'window-safe-min-pixel-height #[256 "\301\302!!_\207" [window-safe-min-height frame-char-size window-normalize-window] 5 (#$ . 13920)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable window-min-height funcall function #[0 "\300\207" [4] 1] "The minimum total height, in lines, of any window.\nThe value has to accommodate one text line, a mode and header\nline, a horizontal scroll bar and a bottom divider, if present.\nA value less than `window-safe-min-height' is ignored.  The value\nof this variable is honored when windows are resized or split.\n\nApplications should never rebind this variable.  To resize a\nwindow to a height less than the one specified here, an\napplication should instead call `window-resize' with a non-nil\nIGNORE argument.  In order to have `split-window' make a window\nshorter, explicitly specify the SIZE argument of that function." :type integer :version "24.1" :group windows] 10)
#@74 Return the minimum pixel height of window WINDOW.

(fn &optional WINDOW)
(defalias 'window-min-pixel-height #[256 "\302!\203\n\303\202	]\304!_\207" [window-min-height window-safe-min-height window-minibuffer-p 1 frame-char-size] 4 (#$ . 14978)])
#@86 The absolute minimum number of columns of a window.
Anything less might crash Emacs.
(defconst window-safe-min-width 2 (#$ . 15236))
#@75 Return the absolute minimum pixel width of WINDOW.

(fn &optional WINDOW)
(defalias 'window-safe-min-pixel-width #[256 "\301\302!\303\"_\207" [window-safe-min-width frame-char-size window-normalize-window t] 5 (#$ . 15375)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable window-min-width funcall function #[0 "\300\207" [10] 1] "The minimum total width, in columns, of any window.\nThe value has to accommodate two text columns as well as margins,\nfringes, a scroll bar and a right divider, if present.  A value\nless than `window-safe-min-width' is ignored.  The value of this\nvariable is honored when windows are resized or split.\n\nApplications should never rebind this variable.  To resize a\nwindow to a width less than the one specified here, an\napplication should instead call `window-resize' with a non-nil\nIGNORE argument.  In order to have `split-window' make a window\nnarrower, explicitly specify the SIZE argument of that function." :type integer :version "24.1" :group windows] 10)
#@73 Return the minimum pixel width of window WINDOW.

(fn &optional WINDOW)
(defalias 'window-min-pixel-width #[256 "	]\302\303\"_\207" [window-min-width window-safe-min-width frame-char-size t] 5 (#$ . 16433)])
#@181 Return the absolute minimum pixel height of WINDOW.
Optional argument HORIZONTAL non-nil means return the absolute
minimum pixel width of WINDOW.

(fn &optional WINDOW HORIZONTAL)
(defalias 'window-safe-min-pixel-size #[512 "\211\203\300!\207\301!\207" [window-safe-min-pixel-width window-safe-min-pixel-height] 4 (#$ . 16650)])
#@163 Return the minimum pixel height of WINDOW.
Optional argument HORIZONTAL non-nil means return the minimum
pixel width of WINDOW.

(fn &optional WINDOW HORIZONTAL)
(defalias 'window-min-pixel-size #[512 "\211\203\300!\207\301!\207" [window-min-pixel-width window-min-pixel-height] 4 (#$ . 16990)])
#@419 Return non-nil if WINDOW has siblings in a given direction.
WINDOW must be a valid window and defaults to the selected one.

HORIZONTAL determines a direction for the window combination.  If
HORIZONTAL is omitted or nil, return non-nil if WINDOW is part of
a vertical window combination.  If HORIZONTAL is non-nil, return
non-nil if WINDOW is part of a horizontal window combination.

(fn &optional WINDOW HORIZONTAL)
(defalias 'window-combined-p #[512 "\300!\262\301!\211\205\203\302!\202\303!\207" [window-normalize-window window-parent window-left-child window-top-child] 5 (#$ . 17297)])
#@269 Return WINDOW's first child if WINDOW is a vertical combination.
WINDOW can be any window and defaults to the selected one.
Optional argument HORIZONTAL non-nil means return WINDOW's first
child if WINDOW is a horizontal combination.

(fn &optional WINDOW HORIZONTAL)
(defalias 'window-combination-p #[512 "\300!\262\211\203
\301!\207\302!\207" [window-normalize-window window-left-child window-top-child] 4 (#$ . 17908)])
#@380 Return largest number of windows vertically arranged within WINDOW.
WINDOW must be a valid window and defaults to the selected one.
If HORIZONTAL is non-nil, return the largest number of
windows horizontally arranged within WINDOW.

Optional argument IGNORE-FIXED, if non-nil, means to ignore
fixed-size windows in the calculation.

(fn WINDOW &optional HORIZONTAL IGNORE-FIXED)
(defalias 'window-combinations #[769 "\300!\262\301!\203
\302\207\203\303!\202\304!\203B\305!\306\203A\2030\307\"\2049\310#\\\262\311!\262\202!\207\305!\302\203f\203U\307\"\204^\310#]\262\311!\262\202F\207" [window-normalize-window window-live-p 1 window-left-child window-top-child window-child 0 window-size-fixed-p window-combinations window-right] 9 (#$ . 18343)])
#@124 Helper function for `walk-window-tree' and `walk-window-subtree'.

(fn FUN WALK-WINDOW-TREE-WINDOW ANY &optional SUB-ONLY)
(defalias 'walk-window-tree-1 #[1027 "\300\205>\301!\262\211\204\203!\210\211\204,\302\303!#\210\302\304!#\210\2036\300\262\202\305!\262\202\207" [nil window-buffer walk-window-tree-1 window-left-child window-top-child window-right] 9 (#$ . 19142)])
#@739 Run function FUN on each live window of FRAME.
FUN must be a function with one argument - a window.  FRAME must
be a live frame and defaults to the selected one.  ANY, if
non-nil, means to run FUN on all live and internal windows of
FRAME.

Optional argument MINIBUF t means run FUN on FRAME's minibuffer
window even if it isn't active.  MINIBUF nil or omitted means run
FUN on FRAME's minibuffer window only if it's active.  In either
case the minibuffer window must be part of FRAME.  MINIBUF
neither nil nor t means never run FUN on the minibuffer window.

This function performs a pre-order, depth-first traversal of the
window tree.  If FUN changes the window tree, the result is
unpredictable.

(fn FUN &optional FRAME ANY MINIBUF)
(defalias 'walk-window-tree #[1025 "\300!\301!\302!\262=\204\303#\210\304!\205;\305!=\205;\306=\2048?\205;\307!\205;!\207" [frame-root-window minibuffer-window window-normalize-frame walk-window-tree-1 window-live-p window-frame t minibuffer-window-active-p] 10 (#$ . 19551)])
#@536 Run function FUN on the subtree of windows rooted at WINDOW.
WINDOW defaults to the selected window.  FUN must be a function
with one argument - a window.  By default, run FUN only on live
windows of the subtree.  If the optional argument ANY is non-nil,
run FUN on all live and internal windows of the subtree.  If
WINDOW is live, run FUN on WINDOW only.

This function performs a pre-order, depth-first traversal of the
subtree rooted at WINDOW.  If FUN changes that tree, the result
is unpredictable.

(fn FUN &optional WINDOW ANY)
(defalias 'walk-window-subtree #[769 "\300!\262\301\302$\207" [window-normalize-window walk-window-tree-1 t] 8 (#$ . 20599)])
#@672 Return first window on FRAME with PARAMETER non-nil.
FRAME defaults to the selected frame.  Optional argument VALUE
non-nil means only return a window whose window-parameter value
for PARAMETER equals VALUE (comparison is done with `equal').
Optional argument ANY non-nil means consider internal windows
too.

Optional argument MINIBUF t means consider FRAME's minibuffer
window even if it isn't active.  MINIBUF nil or omitted means
consider FRAME's minibuffer window only if it's active.  In both
cases the minibuffer window must be part of FRAME.  MINIBUF
neither nil nor t means never consider the minibuffer window.

(fn PARAMETER &optional VALUE FRAME ANY MINIBUF)
(defalias 'window-with-parameter #[1281 "\300C\3012\302\303\304\305\306\307#\310\"\311\312%$0\207" [nil found walk-window-tree make-byte-code 257 "\302\303\300\"\240\205\301\203\301\302\242\232\205\304\305\"\207" vconcat vector [window-parameter throw found] 5 "\n\n(fn WINDOW)"] 15 (#$ . 21272)])
#@192 Return root of atomic window WINDOW is a part of.
WINDOW must be a valid window and defaults to the selected one.
Return nil if WINDOW is not part of an atomic window.

(fn &optional WINDOW)
(defalias 'window-atom-root #[256 "\300!\262\301\203\302\303\"\203\262\304!\262\202\211\207" [window-normalize-window nil window-parameter window-atom window-parent] 5 (#$ . 22267)])
#@95 Make WINDOW an atomic window.
WINDOW must be an internal window.  Return WINDOW.

(fn WINDOW)
(defalias 'window-make-atom #[257 "\300!\204\301\302\"\207\303\304\305#\210\207" [window-child error "Window %s is not an internal window" walk-window-subtree #[257 "\300\301\"?\205
\302\301\303#\207" [window-parameter window-atom set-window-parameter t] 5 "\n\n(fn WINDOW)"] t] 5 (#$ . 22661)])
#@1685 Display BUFFER in an atomic window.
This function displays BUFFER in a new window that will be
combined with an existing window to form an atomic window.  If
the existing window is already part of an atomic window, add the
new window to that atomic window.  Operations like `split-window'
or `delete-window', when applied to a constituent of an atomic
window, are applied atomically to the root of that atomic window.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.  The following two symbols have a special meaning:

`window' specifies the existing window the new window shall be
  combined with.  Use `window-atom-root' to make the new window a
  sibling of an atomic window's root.  If an internal window is
  specified here, all children of that window become part of the
  atomic window too.  If no window is specified, the new window
  becomes a sibling of the selected window.  By default, the
  `window-atom' parameter of the existing window is set to `main'
  provided the window is live and the parameter is not set yet.

`side' denotes the side of the existing window where the new
  window shall be located.  Valid values are `below', `right',
  `above' and `left'.  The default is `below'.  By default, the
  `window-atom' parameter of the new window is set to this value.

The return value is the new window, nil when creating that window
failed.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-in-atom-window #[514 "\303\211\304\305\236A\306\236A\206\307\205\310\311\"\312\211\313!\262\314!\262\315\312#\211\262\205g\316\203B=\204B\202F\317!!\210\204X\320!\203X\321\311\322#\210\321\311#\210\323\305	$+\207" [ignore-window-parameters window-combination-limit window-combination-resize t atom window side below window-parameter window-atom nil window-normalize-window window-atom-root split-window-no-error window-make-atom window-parent window-live-p set-window-parameter main window--display-buffer] 13 (#$ . 23067)])
#@50 Subroutine of `window--atom-check'.

(fn WINDOW)
(defalias 'window--atom-check-1 #[257 "\211\205N\300\301\"\2037\302C\3032#\304\305\306\307\310\311!\312\"\313\314%\315#0\204-\211\242\316U\2033\304\317\315#\210\210\202I\320!\204I\321\322!!\210\321\323!!\210\321\324!!\207" [window-parameter window-atom 0 reset walk-window-subtree make-byte-code 257 "\301\302\"\203
\300\211\242T\240\207\303\304\305\"\207" vconcat vector [window-parameter window-atom throw reset t] 4 "\n\n(fn WINDOW)" t 1 #[257 "\300\301\302#\207" [set-window-parameter window-atom nil] 5 "\n\n(fn WINDOW)"] window-buffer window--atom-check-1 window-left-child window-top-child window-right] 9 (#$ . 25350)])
#@312 Check atomicity of all windows on FRAME.
FRAME defaults to the selected frame.  If an atomic window is
wrongly configured, reset the atomicity of all its windows on
FRAME to nil.  An atomic window is wrongly configured if it has
no child windows or one of its child windows is not atomic.

(fn &optional FRAME)
(defalias 'window--atom-check #[256 "\300\301!!\207" [window--atom-check-1 frame-root-window] 4 (#$ . 26053)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315\316\317&
\210\300\320\302\303\321DD\322\306\323\310\311\312\324\314\315\316\317&
\210\300\325\302\303\326DD\327\316\330\331\332\306\333\314\315&\207" [custom-declare-variable window-sides-vertical funcall function #[0 "\300\207" [nil] 1] "If non-nil, left and right side windows occupy full frame height.\nIf nil, top and bottom side windows occupy full frame width." :type boolean :initialize custom-initialize-default :set window--sides-verticalize :group windows :version "26.1" window-sides-reversed #[0 "\300\207" [nil] 1] "Whether top/bottom side windows appear in reverse order.\nWhen this is nil, side windows on the top and bottom of a frame\nare always drawn from left to right with increasing slot values.\nWhen this is t, side windows on the top and bottom of a frame are\nalways drawn from right to left with increasing slot values.\n\nWhen this is `bidi', the drawing order is like that for the value\nt if the value of `bidi-paragraph-direction' is `right-to-left'\nin the buffer most recently shown in the window selected within\nthe main window area of this frame.\n\nThe layout of side windows on the left or right of a frame is not\naffected by the value of this variable." (choice (const :tag "Never" nil) (const :tag "Bidi" bidi) (const :tag "Always" t)) window--sides-reverse window-sides-slots #[0 "\300\207" [(nil nil nil nil)] 1] "Number of available side window slots on each side of a frame.\nThe value is a list of four elements specifying the maximum\nnumber of side windows that may be created on the left, top,\nright and bottom side of any frame.\n\nIf an element is a number, `display-buffer-in-side-window' will\nrefrain from making a new side window if the number of windows on\nthat side is equal to or exceeds that number.  Rather, it will\nreuse the window whose `window-slot' value is nearest to the slot\nspecified via its ALIST argument.  If an element is nil, this\nmeans there's no bound on the number of windows on that side." "24.1" :risky t (list :value (nil nil nil nil) (choice :tag "Left" :help-echo "Maximum number of left side windows." :value nil :format "%[Left%] %v\n" (const :tag "Unlimited" :format "%t" nil) (integer :tag "Number" :value 2 :size 5)) (choice :tag "Top" :help-echo "Maximum number of top side windows." :value nil :format "%[Top%] %v\n" (const :tag "Unlimited" :format "%t" nil) (integer :tag "Number" :value 3 :size 5)) (choice :tag "Right" :help-echo "Maximum number of right side windows." :value nil :format "%[Right%] %v\n" (const :tag "Unlimited" :format "%t" nil) (integer :tag "Number" :value 2 :size 5)) (choice :tag "Bottom" :help-echo "Maximum number of bottom side windows." :value nil :format "%[Bottom%] %v\n" (const :tag "Unlimited" :format "%t" nil) (integer :tag "Number" :value 3 :size 5)))] 14)
#@408 Non-nil if this buffer was shown in a side window once.
If this variable is non-nil in a buffer, `switch-to-prev-buffer'
and `switch-to-next-buffer' will refrain from showing this buffer
within the main window area.  `display-buffer-in-side-window'
sets this variable automatically.

Killing buffer local variables after showing the buffer in a side
window annihilates any effect provided by this variable.
(defvar window--sides-shown nil (#$ . 29341))
(make-variable-buffer-local 'window--sides-shown)
#@51 Non-nil means inhibit any checks on side windows.
(defvar window--sides-inhibit-check nil (#$ . 29850))
#@189 Return non-nil when side windows should appear reversed on FRAME.
This uses some heuristics to guess the user's intentions when the
selected window of FRAME is a side window .

(fn FRAME)
(defalias 'window--sides-reverse-on-frame-p #[257 "\302>\203\207\303!\304\305\"?\205+\306!\203!\307 \211\262\205+r\310!q\210	)\311=\262\206V\312\313\"\314!\205Dr\310!q\210	)\311=\262\206V\3152V\316\317\320!\"\210\3210\207" [window-sides-reversed bidi-paragraph-direction (nil t) frame-selected-window window-parameter window-side window-minibuffer-p minibuffer-selected-window window-buffer right-to-left frame-parameter window-sides-main-selected-window window-live-p found walk-window-subtree #[257 "r\301!q\210\302=\205\303\304\305\")\207" [bidi-paragraph-direction window-buffer left-to-right throw found nil] 4 "\n\n(fn WINDOW)"] window-main-window t] 5 (#$ . 29961)])
#@369 Return the main window of specified FRAME.
The optional argument FRAME must be a live frame and defaults to
the selected one.

If FRAME has no side windows, return FRAME's root window.
Otherwise, return either an internal non-side window such that
all other non-side windows on FRAME descend from it, or the
single live non-side window of FRAME.

(fn &optional FRAME)
(defalias 'window-main-window #[256 "\300!\301C\301C\302\303\304\305\306\307\"\310\"\311\312%\313\314$\210\242\206$\315!\207" [window-normalize-frame nil walk-window-tree make-byte-code 257 "\302\303\"?\205+\301\304!\240\203\302\301\242\303\"\204(\301\305!\240\205+\302\301\242\303\"\205+\300\240\207" vconcat vector [window-parameter window-side window-prev-sibling window-next-sibling] 4 "\n\n(fn WINDOW)" t nomini frame-root-window] 12 (#$ . 30856)])
#@263 Return window to split for making a major side window.
SIDE must be one of the symbols `left', `top', `right' or
`bottom'.

This is an auxiliary function of `window--make-major-side-window'
and must not be called when a window on SIDE exists already.

(fn SIDE)
(defalias 'window--make-major-side-window-next-to #[257 "\302 \303\304\305=\203\306\307\310\304\303$\211\262\204*\311=\2030\306\307\312\304\303$\211\262\2030\313!\202\347\310=\203B\306\307\305\304\303$\211\262\204T\312=\203Z\306\307\311\304\303$\211\262\203Z\314!\202\347\315\267\202\300	\203h\202\347\306\307\311\304\303$\211\262\203z\314!\202\347\306\307\312\304\303$\211\262\203\214\313!\202\347\202\347	\204\230\202\347\306\307\305\304\303$\211\262\203\252\314!\202\347\306\307\310\304\303$\211\262\203\274\313!\202\347\202\347\310=\203\322\306\307\305\304\303$\211\262\204\344\312=\205\347\306\307\311\304\303$\211\262\205\347\314!)\207" [window--sides-inhibit-check window-sides-vertical frame-root-window t nil left window-with-parameter window-side right top bottom window-prev-sibling window-next-sibling #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (left 96 right 96 top 144 bottom 144))] 9 (#$ . 31704)])
#@465 Display BUFFER in a new major side window on the selected frame.
SIDE must be one of `left', `top', `right' or `bottom'.  SLOT
specifies the slot to use.  ALIST is an association list of
symbols and values as passed to `display-buffer-in-side-window'.
Return the new window, nil if its creation failed.

This is an auxiliary function of `display-buffer-in-side-window'
and may be called only if no window on SIDE exists yet.

(fn BUFFER SIDE SLOT &optional ALIST)
(defalias 'window--make-major-side-window #[1027 "\305>\306!\307\267\202\310\202\311\202\312\313\314\315\314#\316\236\203*\2023\316\2060\313BB\205\206\317\320\n#\210\321\322\323\"\210\317\324	#\210\321\322\325\"\210\203Z\326\236A\202^\327\236A\204w\203i\326\202j\327\330\331 \"\332\245BB\262rq\210\312)\333	\334$+\207" [window--sides-inhibit-check window-combination-resize window-combination-limit display-buffer-mark-dedicated window--sides-shown (left right) window--make-major-side-window-next-to #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (top 12 bottom 16)) above below t side nil split-window-no-error dedicated set-window-parameter window-side add-to-list window-persistent-parameters (window-side . writable) window-slot (window-slot . writable) window-width window-height window-total-size frame-root-window 4 window--display-buffer window] 14 (#$ . 32989)])
#@1751 Display BUFFER in a side window of the selected frame.
ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.  The following two symbols, when used in ALIST, have
a special meaning:

 `side' denotes the side of the frame where the new window shall
   be located.  Valid values are `bottom', `right', `top' and
   `left'.  The default is `bottom'.

 `slot' if non-nil, specifies the window slot where to display
   BUFFER.  A value of zero or nil means use the middle slot on
   the specified side.  A negative value means use a slot
   preceding (that is, above or on the left of) the middle slot.
   A positive value means use a slot following (that is, below or
   on the right of) the middle slot.  The default is zero.

If the current frame size or the settings of `window-sides-slots'
do not permit making a new window, a suitable existing window may
be reused and have its `window-slot' parameter value accordingly
modified.

Unless `display-buffer-mark-dedicated' is non-nil, dedicate the
side window used to BUFFER so that it does not get reused by
other `display-buffer' action functions.  Return the window used
for displaying BUFFER, nil if no suitable window can be found.

This function installs the `window-side' and `window-slot'
parameters and makes them persistent.  It neither modifies ALIST
nor installs any other window parameters unless they have been
explicitly provided via a `window-parameters' entry in ALIST.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-in-side-window #[514 "\305\236A\206\306\307\236A\206\310\311>\312>\204!\313\314\"\210\202+\247\204+\313\315\"\210\316\317\320\321$\322\323 !\324!\203@C\202w\325!\205w\326!\327!\211D\330\331\"\330\331\"V\262\327!\211\262\203kB\262\202Z\203s\211\202u\211\237\266\203\205\200\332\333!]\334\267\202\227\310\202\230\332\202\230\335\202\230\336\202\230\3208\321\337	\236\203\250\202\262\337\n\206\256\305B	B\320\211\211\211\211\211\211\211	\247\203\313	\310X\203\313\320\202+\204\335\340\f$\202+\3412\206\211\205\203\211@\330\331\"\262\247\203|U\203\211\262	\342\341\321\"\210\202|\310V\203\310V\204$\310W\203.\310W\203.\343	Z!\2027\343!\343	!\\\262\203CX\204I\211\262\262\203gX\203\\\211\262\202|\204|\211\262\202|X\203u\211\262\202|\204|\211\262A\266\202\202\343\2620\210\203\244rq\210\321\211)\203\244\344\345\f$\206+	\203\261\n\nW\203\203\317\203\276\346\202\277\347\305\350\320#\211\262\n)\262\204\356\203\203\334\351\202\335\352\305\350\320#\211\262\n)\262\203\353\331#\203rq\210\321\211)\203\344	\354\f$\206+\205+\353\331#\210rq\210\321)\344\345\f$)\266\216\207" [window-sides-slots window--sides-inhibit-check display-buffer-mark-dedicated window--sides-shown window-combination-resize side bottom slot 0 (left right) (top bottom left right) error "Invalid side %s specified" "Invalid slot %s specified" window-with-parameter window-side nil t window--sides-reverse-on-frame-p selected-frame window-live-p window-valid-p window-child window-next-sibling window-parameter window-slot 1 window-child-count #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (left 135 top 139 right 143 bottom 147)) 2 3 dedicated window--make-major-side-window found throw abs window--display-buffer reuse above left split-window-no-error below right set-window-parameter window] 24 (#$ . 34419)])
#@482 Toggle display of side windows on specified FRAME.
FRAME must be a live frame and defaults to the selected one.

If FRAME has at least one side window, delete all side
windows on FRAME after saving FRAME's state in the
FRAME's `window-state' frame parameter.  Otherwise,
restore any side windows recorded in FRAME's `window-state'
parameter, leaving FRAME's main window alone.  Signal an
error if FRAME has no side windows and no saved state for
it is found.

(fn &optional FRAME)
(defalias 'window-toggle-side-windows #[256 "\302!\303\304\305\306\304#\203$\307\310\311\312!!#\210\303\313\314!!)\202L\315\310\"\211\262\203I\311\312!!\316\312!\303#\210\316\314!\"\266\317!\202L\320\321!)\207" [window--sides-inhibit-check ignore-window-parameters window-normalize-frame t nil window-with-parameter window-side set-frame-parameter window-state window-state-get frame-root-window delete-other-windows window-main-window frame-parameter window-state-put window--sides-reverse-frame error "No side windows state found"] 9 (#$ . 38233) nil])
#@43 Maybe reverse side windows on all frames.
(defalias 'window--sides-reverse-all #[0 "?\205\301 \211\205\211@\302!\210A\266\202\202\262\207" [window--sides-inhibit-check frame-list window--sides-reverse-frame] 4 (#$ . 39296)])
#@50 Maybe reverse side windows on FRAME.

(fn FRAME)
(defalias 'window--sides-reverse-frame #[257 "\301=\203\302!\303\304\"\204\305!\204\306\307#\210\210\310\311\"\210\310\312\"\207" [window-sides-reversed bidi frame-selected-window window-parameter window-side window-minibuffer-p set-frame-parameter window-sides-main-selected-window window--sides-reverse-side top bottom] 6 (#$ . 39537)])
#@58 Maybe reverse windows on SIDE of FRAME.

(fn FRAME SIDE)
(defalias 'window--sides-reverse-side #[514 "\301\302\303$\303\211\205U\304!?\205U\305!\306\307\"\306\310!\307\"V\311!=?\205S\312!=?\205Q\310!=?\205Q\313\303#\210\310!\262\314!\262\202.\262\266\203)\207" [window--sides-inhibit-check window-with-parameter window-side t window-live-p window-child window-parameter window-slot window-next-sibling window--sides-reverse-on-frame-p window-last-child window-swap-states window-prev-sibling] 11 (#$ . 39945)])
#@77 Helper function for customizing `window-sides-reversed'.

(fn SYMBOL VALUE)
(defalias 'window--sides-reverse #[514 "\300\"\210\301\302\303\"\210\301\304\303\"\210\305 \211\203$\211@\306\307\310#\210A\266\202\202\210\211\311=\2035\312\302\303\"\210\312\304\303\"\210\303 \207" [set-default remove-hook buffer-list-update-hook window--sides-reverse-all window-configuration-change-hook frame-list set-frame-parameter window-sides-main-selected-window nil bidi add-hook] 8 (#$ . 40490)])
#@76 Maybe change side windows layout on specified FRAME.

(fn &optional FRAME)
(defalias 'window--sides-verticalize-frame #[256 "\303!\262\304\305!\306!\211=?\205\226\307!=?\205\226\310	\"\205\226\304\211\311!\211\205:\312\313\"\205:\314!\315!\211\205K\312\313\"\205K\314!\316\317!\320\321\216\203Z\322!\210\203b\322!\210\203{\323	\203p\324\202q\325\326#\262\327\304#\210\205\223\323	\203\211\330\202\212\331\326#\262\327\304#+\266\206)\207" [window--sides-inhibit-check window-sides-vertical ignore-window-parameters window-normalize-frame t frame-root-window window-main-window window-parent window-combined-p window-child window-parameter window-side window-state-get window-last-child get-buffer-create " *dummy*" nil #[0 "\300\301!\207" [kill-buffer " *dummy*"] 2] delete-window window--make-major-side-window top left 0 window-state-put bottom right] 15 (#$ . 40989)])
#@77 Helper function for customizing `window-sides-vertical'.

(fn SYMBOL VALUE)
(defalias 'window--sides-verticalize #[514 "\300\"\210\301 \211\205\211@\302!\210A\266\202\202\207" [set-default frame-list window--sides-verticalize-frame] 6 (#$ . 41914)])
#@56 Helper function for `window--sides-check'.

(fn FRAME)
(defalias 'window--sides-check-failed #[257 "\3002c\301!\204\302\303\"\210\304\300\305\"\210\306\211\205`\211@\307\310\305$\211\203X\311!\203C\312\313\314\315\316\317\"\320\"\321\322%\305\323$\210\202X\312\313\314\324\316\317\"\325\"\326\322%\305\323$\210\210A\266\202\202\2620\207" [failed window-main-window error "Frame %s has no main window" throw t (left top right bottom) window-with-parameter window-side window-live-p walk-window-tree make-byte-code 257 "\302\303\"\300=\205\211\301=?\205\304\305\300\301$\210\306\307\310\"\207" vconcat vector [window-parameter window-side error "Window %s has same side %s as window %s but no common parent" throw failed t] 6 "\n\n(fn THIS)" nomini "\302!\301=\203\303\304\"\300=?\205=\305\306\300\301$\210\307\310\311\"\207\303\304\"\300=\205=\211\301=?\205=\305\312\300\301\302!%\210\307\310\311\"\207" [window-parent window-parameter window-side error "Window %s has not same side %s as its parent %s" throw failed t "Window %s has same side %s as major side window %s but its parent is %s"] 8] 12 (#$ . 42178)])
#@519 Check side windows configuration of FRAME.
In a valid side windows configuration there can be at most one
internal side window on each side and all its children must be
live and have the same `window-side' parameter and no other
window with the same `window-side' parameter exists on FRAME.  If
there is no such internal window, there may be at most one window
with this side's `window-side' parameter on FRAME.

If the configuration is invalid, reset the `window-side'
parameters of all windows on FRAME.

(fn FRAME)
(defalias 'window--sides-check #[257 "?\205\301\302\303\304$\205\305!\205\306\307\304\310$\210\311\312\"\207" [window--sides-inhibit-check window-with-parameter window-side nil t window--sides-check-failed walk-window-tree #[257 "\300\301\302#\207" [set-window-parameter window-side nil] 5 "\n\n(fn WINDOW)"] nomini message "Side windows configuration reset for frame %s"] 6 (#$ . 43343)])
#@101 Check atomic and side windows on FRAME.
FRAME defaults to the selected frame.

(fn &optional FRAME)
(defalias 'window--check #[256 "\300!\210\301!\207" [window--sides-check window--atom-check] 3 (#$ . 44270)])
#@223 Dump WINDOW to buffer *window-frame-dump*.
WINDOW must be a valid window and defaults to the selected one.
Optional argument ERASE non-nil means erase *window-frame-dump*
before writing to it.

(fn &optional WINDOW ERASE)
(defalias 'window--dump-window #[512 "\300!\262r\301\302!q\210\211\203\303 \210\304\305\306!#\304\307\310!\311!\312\313\211#\312\314\313#\315	!&\304\316\317!\320!\321\313\"\321	!\322\n!&\304\323\324\313\"\324!\325	!$\261\210\326!\203\263\327!\330!\304\331\332\313\"\333\313\"\332!\333	!%\304\334@@\206\213\335A\206\221\335$\304\336A@\337	!\340\n!$\304\341\342	!\343\n!\344!$\261\266\345c)\207" [window-normalize-window get-buffer-create "*window-frame-dump*" erase-buffer format "%s   parent: %s\n" window-parent "pixel left: %s   top: %s   size: %s x %s   new: %s\n" window-pixel-left window-pixel-top window-size t nil window-new-pixel "char left: %s   top: %s   size: %s x %s   new: %s\n" window-left-column window-top-line window-total-size window-new-total "normal: %s x %s   new: %s\n" window-normal-size window-new-normal window-live-p window-fringes window-margins "body pixel: %s x %s   char: %s x %s\n" window-body-width window-body-height "width left fringe: %s  left margin: %s  right margin: %s\n" 0 "width right fringe: %s  scroll-bar: %s  divider: %s\n" window-scroll-bar-width window-right-divider-width "height header-line: %s  mode-line: %s  divider: %s\n" window-header-line-height window-mode-line-height window-bottom-divider-width "\n"] 13 (#$ . 44489)])
#@289 Dump WINDOW-OR-FRAME to buffer *window-frame-dump*.
WINDOW-OR-FRAME can be a frame or a window and defaults to the
selected frame.  When WINDOW-OR-FRAME is a window, dump that
window's frame.  The buffer *window-frame-dump* is erased before
dumping to it.

(fn &optional WINDOW-OR-FRAME)
(defalias 'window--dump-frame #[256 "\211\203\n\300!\203\301!\202\"\302!\204\303!\203 \211\202\"\301 \304!r\305\306!q\210\307 \210\310\311\312!\313!\314!\315!\316!\317!&\310\320\321!\322!\323!\324!%\310\325\326\327!\203g\327\330\"\202h\331\326\332!\203v\332\330\"\202w\331\333!\334!\335	!\336\n!\337!\340\f!&	\261\210\341\342\330\211$)\207" [frame-live-p frame-root-window window-live-p window-child window-frame get-buffer-create "*window-frame-dump*" erase-buffer format "frame pixel: %s x %s   cols/lines: %s x %s   units: %s x %s\n" frame-pixel-width frame-pixel-height frame-total-cols frame-total-lines frame-char-width frame-char-height "frame text pixel: %s x %s   cols/lines: %s x %s\n" frame-text-width frame-text-height frame-text-cols frame-text-lines "tab: %s  tool: %s  scroll: %s/%s  fringe: %s  border: %s  right: %s  bottom: %s\n\n" fboundp tab-bar-height t "0" tool-bar-height frame-scroll-bar-width frame-scroll-bar-height frame-fringe-width frame-border-width frame-right-divider-width frame-bottom-divider-width walk-window-tree window--dump-window] 16 (#$ . 46050)])
#@827 Return the total height or width of WINDOW.
WINDOW must be a valid window and defaults to the selected one.

If HORIZONTAL is omitted or nil, return the total height of
WINDOW, in lines.  If WINDOW is live, its total height includes,
in addition to the height of WINDOW's text, the heights of
WINDOW's mode and header line and a bottom divider, if any.

If HORIZONTAL is non-nil, return the total width of WINDOW, in
columns.  If WINDOW is live, its total width includes, in
addition to the width of WINDOW's text, the widths of WINDOW's
fringes, margins, scroll bars and its right divider, if any.

If WINDOW is internal, return the respective size of the screen
areas spanned by its children.

Optional argument ROUND is handled as for `window-total-height'
and `window-total-width'.

(fn &optional WINDOW HORIZONTAL ROUND)
(defalias 'window-total-size #[768 "\203	\300\"\207\301\"\207" [window-total-width window-total-height] 6 (#$ . 47481)])
#@591 Return the height or width of WINDOW.
WINDOW must be a valid window and defaults to the selected one.

If HORIZONTAL is omitted or nil, return the total height of
WINDOW, in lines, like `window-total-height'.  Otherwise return
the total width, in columns, like `window-total-width'.

Optional argument PIXELWISE means return the pixel size of WINDOW
like `window-pixel-height' and `window-pixel-width'.

Optional argument ROUND is ignored if PIXELWISE is non-nil and
handled as for `window-total-height' and `window-total-width'
otherwise.

(fn &optional WINDOW HORIZONTAL PIXELWISE ROUND)
(defalias 'window-size #[1024 "\203\203\f\300!\207\301\"\207\203\302!\207\303\"\207" [window-pixel-width window-total-width window-pixel-height window-total-height] 7 (#$ . 48441)])
#@404 Non-nil in a buffer means windows displaying the buffer are fixed-size.
If the value is `height', then only the window's height is fixed.
If the value is `width', then only the window's width is fixed.
Any other non-nil value fixes both the width and the height.

Emacs won't change the size of any window displaying that buffer,
unless it has no other choice (like when deleting a neighboring
window).
(defvar window-size-fixed nil (#$ . 49234))
(make-variable-buffer-local 'window-size-fixed)
#@222 Return height of WINDOW as `window-preserve-size' would preserve it.
Optional argument HORIZONTAL non-nil means to return the width of
WINDOW as `window-preserve-size' would preserve it.

(fn WINDOW &optional HORIZONTAL)
(defalias 'window--preservable-size #[513 "\211\203	\300\301\"\207\302\303\301\"\304!\305!#\207" [window-body-width t + window-body-height window-header-line-height window-mode-line-height] 7 (#$ . 49736)])
#@861 Preserve height of window WINDOW.
WINDOW must be a live window and defaults to the selected one.
Optional argument HORIZONTAL non-nil means preserve the width of
WINDOW.

PRESERVE t means to preserve the current height/width of WINDOW's
body in frame and window resizing operations whenever possible.
The height/width of WINDOW will change only if Emacs has no other
choice.  Resizing a window whose height/width is preserved never
throws an error.

PRESERVE nil means to stop preserving the height/width of WINDOW,
lifting the respective restraint induced by a previous call of
`window-preserve-size' for WINDOW.  Calling `enlarge-window',
`shrink-window', `split-window' or `fit-window-to-buffer' with
WINDOW as argument also removes the respective restraint.

Other values of PRESERVE are reserved for future use.

(fn &optional WINDOW HORIZONTAL PRESERVE)
(defalias 'window-preserve-size #[768 "\300\301\"\262\302\303\"\211A@\3048\203,\305\303\306	!\205&\307\n\301\"E#\202@\305\303\306	!\205>\307!E#\207" [window-normalize-window t window-parameter window-preserved-size 2 set-window-parameter window-buffer window--preservable-size] 13 (#$ . 50176)])
#@220 Return preserved height of window WINDOW.
WINDOW must be a live window and defaults to the selected one.
Optional argument HORIZONTAL non-nil means to return preserved
width of WINDOW.

(fn &optional WINDOW HORIZONTAL)
(defalias 'window-preserved-size #[512 "\300\301\"\262\302\303\"\211@A@\3048\305!=\205$\203#\202$\211\207" [window-normalize-window t window-parameter window-preserved-size 2 window-buffer] 9 (#$ . 51363)])
#@192 Return non-nil when the height of WINDOW shall be preserved.
Optional argument HORIZONTAL non-nil means to return non-nil when
the width of WINDOW shall be preserved.

(fn WINDOW HORIZONTAL)
(defalias 'window--preserve-size #[514 "\300\"\211\247\205\211\301\"U\207" [window-preserved-size window--preservable-size] 7 (#$ . 51809)])
#@375 Return safe minimum size of WINDOW.
WINDOW must be a valid window and defaults to the selected one.
Optional argument HORIZONTAL non-nil means return the minimum
number of columns of WINDOW; otherwise return the minimum number
of WINDOW's lines.

Optional argument PIXELWISE non-nil means return the minimum pixel-size
of WINDOW.

(fn &optional WINDOW HORIZONTAL PIXELWISE)
(defalias 'window-safe-min-size #[768 "\302!\262\211\203\203\303\304!!_\207	\305\304!!_\207\203#\207	\207" [window-safe-min-width window-safe-min-height window-normalize-window frame-char-width window-frame frame-char-height] 7 (#$ . 52154)])
#@459 Return the minimum size of WINDOW.
WINDOW must be a valid window and defaults to the selected one.
Optional argument HORIZONTAL non-nil means return the minimum
number of columns of WINDOW; otherwise return the minimum number
of WINDOW's lines.

The optional argument IGNORE has the same meaning as for
`window-resizable'.  Optional argument PIXELWISE non-nil means
return the minimum pixel-size of WINDOW.

(fn &optional WINDOW HORIZONTAL IGNORE PIXELWISE)
(defalias 'window-min-size #[1024 "\300\301!$\207" [window--min-size-1 window-normalize-window] 9 (#$ . 52791)])
#@91 Return non-nil if IGNORE says to ignore size restrictions for WINDOW.

(fn WINDOW IGNORE)
(defalias 'window--min-size-ignore-p #[514 "\300!\203\n=\207\211\301>?\207" [window-valid-p (nil preserved)] 4 (#$ . 53372)])
#@82 Internal function of `window-min-size'.

(fn WINDOW HORIZONTAL IGNORE PIXELWISE)
(defalias 'window--min-size-1 #[1028 "\303!\211\203H\304\305\"\203)\203B\211\306$\\\262\307!\262\202\203B\211\306$]\262\307!\262\202)\211\262\202gr\310!q\210\311#\203^\312#\202f\313=\203l\314#\202f\203\315\316\"\317!\320!\321\322\"\211\205\215\211@\247\205\215\211@\205\231A\247\205\231A\323\314\f\316\211#\206\252@\206\252\304_\206\270A\206\270\304	_@	A@\324!\325!&\203\366\203\331\211\202\341\326\"_\327
\f\"\203\356\304\202\362\330
!]\202\n\326\"\327
\f\"\203\304\202		]\266\207\202f\315!\323\314\331\316#\332!\333	!\334\n!\335!%\203Q\2036\211\202<\326\"_\327\"\203I\304\202M\336!]\202d\326\"\327\"\203b\304\202c\n]\266\202)\207" [window-resize-pixelwise window-min-width window-min-height window-child 0 window-combined-p window--min-size-1 window-right window-buffer window-size-fixed-p window-size safe window-safe-min-size frame-char-size t window-fringes window-margins window-parameter min-margins + window-scroll-bar-width window-right-divider-width ceiling window--min-size-ignore-p window-min-pixel-width nil window-header-line-height window-scroll-bar-height window-mode-line-height window-bottom-divider-width window-min-pixel-height] 20 (#$ . 53598)])
#@1055 Return DELTA if DELTA lines can be added to WINDOW.
WINDOW must be a valid window and defaults to the selected one.
Optional argument HORIZONTAL non-nil means return DELTA if DELTA
columns can be added to WINDOW.  A return value of zero means
that no lines (or columns) can be added to WINDOW.

This function looks only at WINDOW and, recursively, its child
windows.  The function `window-resizable' looks at other windows
as well.

DELTA positive means WINDOW shall be enlarged by DELTA lines or
columns.  If WINDOW cannot be enlarged by DELTA lines or columns
return the maximum value in the range 0..DELTA by which WINDOW
can be enlarged.

DELTA negative means WINDOW shall be shrunk by -DELTA lines or
columns.  If WINDOW cannot be shrunk by -DELTA lines or columns,
return the minimum value in the range DELTA..0 by which WINDOW
can be shrunk.

The optional argument IGNORE has the same meaning as for
`window-resizable'.  Optional argument PIXELWISE non-nil means
interpret DELTA as pixels.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE PIXELWISE)
(defalias 'window-sizable #[1282 "\300!\262\301W\203(\302$\303#\211X\203!\301\202'Z]\207\301V\203:\304#\2038\301\207\207\301\207" [window-normalize-window 0 window-min-size window-size window-size-fixed-p] 10 (#$ . 55002)])
#@262 Return t if WINDOW can be resized by DELTA lines.
WINDOW must be a valid window and defaults to the selected one.
For the meaning of the arguments of this function see the
doc-string of `window-sizable'.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE PIXELWISE)
(defalias 'window-sizable-p #[1282 "\300!\262\301V\203\302%Y\207\302%X\207" [window-normalize-window 0 window-sizable] 11 (#$ . 56313)])
#@77 Internal function for `window-size-fixed-p'.

(fn WINDOW HORIZONTAL IGNORE)
(defalias 'window--size-fixed-1 #[771 "\301!\3022z\211\203K\303\"\2032\211\203+\304#\204#\305\302\306\"\210\307!\262\202\305\302\310\"\202y\211\205y\304#\203C\305\302\310\"\210\307!\262\2022\311!\203X=?\205y\312=\204e\313\"\206yr\314!q\210\203u\315>\202x\316>)0\207" [window-size-fixed window-child fixed window-combined-p window--size-fixed-1 throw nil window-right t windowp preserved window--preserve-size window-buffer (width t) (height t)] 8 (#$ . 56734)])
#@477 Return non-nil if WINDOW's height is fixed.
WINDOW must be a valid window and defaults to the selected one.
Optional argument HORIZONTAL non-nil means return non-nil if
WINDOW's width is fixed.  The optional argument IGNORE has the
same meaning as for `window-resizable'.

If this function returns nil, this does not necessarily mean that
WINDOW can be resized in the desired direction.  The function
`window-resizable' can tell that.

(fn &optional WINDOW HORIZONTAL IGNORE)
(defalias 'window-size-fixed-p #[768 "\300!\204\f\211\301>\205\302\303!#\207" [windowp (nil preserved) window--size-fixed-1 window-normalize-window] 7 (#$ . 57319)])
#@111 Internal function for `window-min-delta'.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE TRAIL NOUP PIXELWISE)
(defalias 'window--min-delta-1 #[1794 "\300!\204	\301\207\300!\302!\3032\227\304\"\203R\305=\203N\n=\2032\306=\262\202F\211\204F\307		#\204F\310\303\n\"\210\311!\262\202\210\202~\211\203~\211	=\204v\312	\313$\314\n\n$Z\301]^\262\311!\262\202R\203\207\202\226\315				\316	&0\207" [window-parent 0 window-child done window-combined-p after before window-size-fixed-p throw window-right window-size ceiling window-min-size window--min-delta-1 nil] 17 (#$ . 57975)])
#@1062 Return number of lines by which WINDOW can be shrunk.
WINDOW must be a valid window and defaults to the selected one.
Return zero if WINDOW cannot be shrunk.

Optional argument HORIZONTAL non-nil means return number of
columns by which WINDOW can be shrunk.

The optional argument IGNORE has the same meaning as for
`window-resizable'.  Optional argument TRAIL restricts the
windows that can be enlarged.  If its value is `before', only
windows to the left of or above WINDOW can be enlarged.  If it is
`after', only windows to the right of or below WINDOW can be
enlarged.

Optional argument NOUP non-nil means don't go up in the window
tree, but try to enlarge windows within WINDOW's combination
only.  Optional argument NODOWN non-nil means don't check whether
WINDOW itself (and its child windows) can be shrunk; check only
whether at least one other window can be enlarged appropriately.

Optional argument PIXELWISE non-nil means return number of pixels
by which WINDOW can be shrunk.

(fn &optional WINDOW HORIZONTAL IGNORE TRAIL NOUP NODOWN PIXELWISE)
(defalias 'window-min-delta #[1792 "\300!\262\301\302$\303$\203.\304	\n\n\n\n	&\202JX\2038\305\202J\304	Z\n\n\n\n	&\207" [window-normalize-window window-size floor window-min-size window--min-delta-1 0] 17 (#$ . 58617)])
#@299 Return minimum number of lines of FRAME's windows.
HORIZONTAL non-nil means return number of columns of FRAME's
windows.  The optional argument IGNORE has the same meaning as
for `window-resizable'.  PIXELWISE non-nil means return sizes in
pixels.

(fn &optional FRAME HORIZONTAL IGNORE PIXELWISE)
(defalias 'frame-windows-min-size #[1024 "\300!\262\301!\302!\303$\203'\204'\303\304$\202(\305\\\207" [window-normalize-frame frame-root-window window-next-sibling window-min-size nil 0] 12 (#$ . 59945)])
#@110 Internal function of `window-max-delta'.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE TRAIL NOUP PIXELWISE)
(defalias 'window--max-delta-1 #[1794 "\300!\204	\207\300!\301!\3022\227\303\"\203[\304=\203W\n=\2032\305=\262\202O\211\204O\306\n\307$\310	$Z\311]\\\262	\312!\262\202\210\202~\211\203~\211	=\204v\313#\203v\314\302	\"\210\312!\262\202[\203\207\202\226\315				\316	&0\207" [window-parent window-child fixed window-combined-p after before window-size floor window-min-size 0 window-right window-size-fixed-p throw window--max-delta-1 nil] 17 (#$ . 60476)])
#@1103 Return maximum number of lines by which WINDOW can be enlarged.
WINDOW must be a valid window and defaults to the selected one.
The return value is zero if WINDOW cannot be enlarged.

Optional argument HORIZONTAL non-nil means return maximum number
of columns by which WINDOW can be enlarged.

The optional argument IGNORE has the same meaning as for
`window-resizable'.  Optional argument TRAIL restricts the
windows that can be enlarged.  If its value is `before', only
windows to the left of or above WINDOW can be enlarged.  If it is
`after', only windows to the right of or below WINDOW can be
enlarged.

Optional argument NOUP non-nil means don't go up in the window
tree but try to obtain the entire space from windows within
WINDOW's combination.  Optional argument NODOWN non-nil means do
not check whether WINDOW itself (and its child windows) can be
enlarged; check only whether other windows can be shrunk
appropriately.

Optional argument PIXELWISE non-nil means return number of
pixels by which WINDOW can be enlarged.

(fn &optional WINDOW HORIZONTAL IGNORE TRAIL NOUP NODOWN PIXELWISE)
(defalias 'window-max-delta #[1792 "\300!\262\204\301#\203\302\207\303\302&\207" [window-normalize-window window-size-fixed-p 0 window--max-delta-1] 15 (#$ . 61112)])
#@1491 Return DELTA if WINDOW can be resized vertically by DELTA lines.
WINDOW must be a valid window and defaults to the selected one.
Optional argument HORIZONTAL non-nil means return DELTA if WINDOW
can be resized horizontally by DELTA columns.  A return value of
zero means that WINDOW is not resizable.

DELTA positive means WINDOW shall be enlarged by DELTA lines or
columns.  If WINDOW cannot be enlarged by DELTA lines or columns,
return the maximum value in the range 0..DELTA by which WINDOW
can be enlarged.

DELTA negative means WINDOW shall be shrunk by -DELTA lines or
columns.  If WINDOW cannot be shrunk by -DELTA lines or columns,
return the minimum value in the range DELTA..0 that can be used
for shrinking WINDOW.

The optional argument IGNORE has the same meaning as for
`window-resizable'.  Optional argument TRAIL `before' means only
windows to the left of or below WINDOW can be shrunk.  Optional
argument TRAIL `after' means only windows to the right of or
above WINDOW can be shrunk.

Optional argument NOUP non-nil means don't go up in the window
tree but check only whether space can be obtained from (or given
to) WINDOW's siblings.  Optional argument NODOWN non-nil means
don't go down in the window tree.  This means do not check
whether resizing would violate size restrictions of WINDOW or its
child windows.

Optional argument PIXELWISE non-nil means interpret DELTA as
number of pixels.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE TRAIL NOUP NODOWN PIXELWISE)
(defalias 'window--resizable #[2050 "\300!\262\301W\203#\302&[]\207\301V\203?\303&^\207\301\207" [window-normalize-window 0 window-min-delta window-max-delta] 16 (#$ . 62416)])
#@364 Return t if WINDOW can be resized vertically by DELTA lines.
WINDOW must be a valid window and defaults to the selected one.
For the meaning of the arguments of this function see the
doc-string of `window--resizable'.

Optional argument PIXELWISE non-nil means interpret DELTA as
pixels.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE TRAIL NOUP NODOWN PIXELWISE)
(defalias 'window--resizable-p #[2050 "\300!\262\301V\203$\302&Y\207\302&X\207" [window-normalize-window 0 window--resizable] 17 (#$ . 64133)])
#@1365 Return DELTA if WINDOW can be resized vertically by DELTA lines.
WINDOW must be a valid window and defaults to the selected one.
Optional argument HORIZONTAL non-nil means return DELTA if WINDOW
can be resized horizontally by DELTA columns.  A return value of
zero means that WINDOW is not resizable.

DELTA positive means WINDOW shall be enlarged by DELTA lines or
columns.  If WINDOW cannot be enlarged by DELTA lines or columns
return the maximum value in the range 0..DELTA by which WINDOW
can be enlarged.

DELTA negative means WINDOW shall be shrunk by -DELTA lines or
columns.  If WINDOW cannot be shrunk by -DELTA lines or columns,
return the minimum value in the range DELTA..0 that can be used
for shrinking WINDOW.

Optional argument IGNORE, if non-nil, means to ignore restraints
induced by fixed size windows or the values of the variables
`window-min-height' and `window-min-width'.  The following values
have special meanings: `safe' means that in addition live windows
are allowed to get as small as `window-safe-min-height' lines and
`window-safe-min-width' columns.  `preserved' means to ignore
only restrictions induced by `window-preserve-size'.  If IGNORE
is a window, then ignore restrictions for that window only.

Optional argument PIXELWISE non-nil means interpret DELTA as
pixels.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE PIXELWISE)
(defalias 'window-resizable #[1282 "\300!\262\301\302\211\211&\207" [window-normalize-window window--resizable nil] 14 (#$ . 64692)])
#@275 Return t if WINDOW can be resized vertically by DELTA lines.
WINDOW must be a valid window and defaults to the selected one.
For the meaning of the arguments of this function see the
doc-string of `window-resizable'.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE PIXELWISE)
(defalias 'window-resizable-p #[1282 "\300!\262\301V\203\302\303\211\211&Y\207\302\303\211\211&X\207" [window-normalize-window 0 window--resizable nil] 14 (#$ . 66206)])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\310\"\207" [defalias window-height window-total-height window-width window-body-width window-pixel-width-before-size-change window-old-pixel-width window-pixel-height-before-size-change window-old-pixel-height] 3)
#@273 Return t if WINDOW is as high as its containing frame.
More precisely, return t if and only if the total height of
WINDOW equals the total height of the root window of WINDOW's
frame.  WINDOW must be a valid window and defaults to the
selected one.

(fn &optional WINDOW)
(defalias 'window-full-height-p #[256 "\300!\262\301!\203\211\302\303!!=\207\304!\304\302!!U\207" [window-normalize-window window-minibuffer-p frame-root-window window-frame window-pixel-height] 5 (#$ . 66967)])
#@270 Return t if WINDOW is as wide as its containing frame.
More precisely, return t if and only if the total width of WINDOW
equals the total width of the root window of WINDOW's frame.
WINDOW must be a valid window and defaults to the selected one.

(fn &optional WINDOW)
(defalias 'window-full-width-p #[256 "\300!\262\301!\301\302!!U\207" [window-normalize-window window-pixel-width frame-root-window] 5 (#$ . 67466)])
#@405 Return the height or width of WINDOW's text area.
WINDOW must be a live window and defaults to the selected one.

If HORIZONTAL is omitted or nil, return the height of the text
area, like `window-body-height'.  Otherwise, return the width of
the text area, like `window-body-width'.  In either case, the
optional argument PIXELWISE is passed to the functions.

(fn &optional WINDOW HORIZONTAL PIXELWISE)
(defalias 'window-body-size #[768 "\203	\300\"\207\301\"\207" [window-body-width window-body-height] 6 (#$ . 67895)])
#@325 Return average character width for the font of FACE used in WINDOW.
WINDOW must be a live window and defaults to the selected one.

If FACE is nil or omitted, the default face is used.  If FACE is
remapped (see `face-remapping-alist'), the function returns the
information for the remapped face.

(fn &optional WINDOW FACE)
(defalias 'window-font-width #[512 "\300\301\302\"!r\303\304\305\306\307!\310\"\311$\216\312@\313\"\210\314 \203A\203&\202'\315\316\317!!\211\320H\211\304V\2039\211\202<\321H\266\203\202C\322 *\207" [internal--before-with-selected-window window-normalize-window t make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord display-multi-font-p default font-info face-font 11 10 frame-char-width] 9 (#$ . 68430)])
#@318 Return character height for the font of FACE used in WINDOW.
WINDOW must be a live window and defaults to the selected one.

If FACE is nil or omitted, the default face is used.  If FACE is
remapped (see `face-remapping-alist'), the function returns the
information for the remapped face.

(fn &optional WINDOW FACE)
(defalias 'window-font-height #[512 "\300\301\302\"!r\303\304\305\306\307!\310\"\311$\216\312@\313\"\210\314 \2034\203&\202'\315\316\317!!\211\320H\266\202\2026\321 *\207" [internal--before-with-selected-window window-normalize-window t make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord display-multi-font-p default font-info face-font 3 frame-char-height] 9 (#$ . 69240)])
#@568 Return the number of characters that can be displayed on one line in WINDOW.
WINDOW must be a live window and defaults to the selected one.

The character width of FACE is used for the calculation.  If FACE
is nil or omitted, the default face is used.  If FACE is
remapped (see `face-remapping-alist'), the function uses the
remapped face.

This function is different from `window-body-width' in two
ways.  First, it accounts for the portions of the line reserved
for the continuation glyph.  Second, it accounts for the size of
the font.

(fn &optional WINDOW FACE)
(defalias 'window-max-chars-per-line #[512 "\303\304\305\"!r\306\307\310\311\312!\313\"\314$\216\315@\316\"\210\317\305\"\320\"\245\321 \203W\203W	\307=\204W	\204@\322\323\324\"\307U\204W\n\307=\204W\n\204S\322\323\325\"\307U\204W\211\202Y\211S\266\203*\207" [overflow-newline-into-fringe left-fringe-width right-fringe-width internal--before-with-selected-window window-normalize-window t make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord window-body-width window-font-width display-graphic-p frame-parameter nil left-fringe right-fringe] 9 (#$ . 70010)])
#@538 Return the current scroll bar types for WINDOW.
WINDOW must be a live window and defaults to the selected one.

The return value is a cons cell (VERTICAL . HORIZONTAL) where
VERTICAL specifies the current location of the vertical scroll
bar (`left', `right' or nil), and HORIZONTAL specifies the
current location of the horizontal scroll bar (`bottom' or nil).

Unlike `window-scroll-bars', this function reports the scroll bar
type actually used, once frame defaults and `scroll-bar-mode' are
taken into account.

(fn &optional WINDOW)
(defalias 'window-current-scroll-bars #[256 "\300\301\"\262\302\303!8\304\303!8\305\306!!\301=\203\211@\262\301=\203)\211A\262\205/\307B\207" [window-normalize-window t 2 window-scroll-bars 5 frame-current-scroll-bars window-frame bottom] 6 (#$ . 71221)])
#@1494 Cycle through all live windows, calling FUN for each one.
FUN must specify a function with a window as its sole argument.
The optional arguments MINIBUF and ALL-FRAMES specify the set of
windows to include in the walk.

MINIBUF t means include the minibuffer window even if the
minibuffer is not active.  MINIBUF nil or omitted means include
the minibuffer window only if the minibuffer is active.  Any
other value means do not include the minibuffer window even if
the minibuffer is active.

ALL-FRAMES nil or omitted means consider all windows on the
selected frame, plus the minibuffer window if specified by the
MINIBUF argument.  If the minibuffer counts, consider all windows
on all frames that share that minibuffer too.  The following
non-nil values of ALL-FRAMES have special meanings:

- t means consider all windows on all existing frames.

- `visible' means consider all windows on all visible frames on
  the current terminal.

- 0 (the number zero) means consider all windows on all visible
  and iconified frames on the current terminal.

- A frame means consider all windows on that frame only.

If ALL-FRAMES specifies a frame, the first window walked is the
first window on that frame (the one returned by `frame-first-window'),
not necessarily the selected window.

Anything else means consider all windows on the selected frame
and no others.

This function changes neither the order of recently selected
windows nor the buffer list.

(fn FUN &optional MINIBUF ALL-FRAMES)
(defalias 'walk-windows #[769 "\300 \203\301\262\302 r\303\304\305\306\307!\310\"\311$\216\312\313!\205!\314!#\211\2055\211@!\210A\266\202\202$\262*\207" [window-minibuffer-p t internal--before-save-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-save-selected-window] 2 window-list-1 framep frame-first-window] 10 (#$ . 72037)])
#@264 Return t if WINDOW is at SIDE of its containing frame.
WINDOW must be a valid window and defaults to the selected one.
SIDE can be any of the symbols `left', `top', `right' or
`bottom'.  The default value nil is handled like `bottom'.

(fn &optional WINDOW SIDE)
(defalias 'window-at-side-p #[512 "\300!\262\211\301\267\202\302\202\303\202\304\202\305\202\306\211\307!8\307\310!!8U\207" [window-normalize-window #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (left 11 top 15 right 19 bottom 23 nil 23)) 0 1 2 3 nil window-pixel-edges frame-root-window] 8 (#$ . 73915)])
#@252 Return list of all windows on SIDE of FRAME.
FRAME must be a live frame and defaults to the selected frame.
SIDE can be any of the symbols `left', `top', `right' or
`bottom'.  The default value nil is handled like `bottom'.

(fn &optional FRAME SIDE)
(defalias 'window-at-side-list #[512 "\300!\262\301C\302\303\304\305\306\307\"\310\"\311\312%\301\313$\210\211\242\237\207" [window-normalize-frame nil walk-window-tree make-byte-code 257 "\302\300\"\205
\301\301\242B\240\207" vconcat vector [window-at-side-p] 4 "\n\n(fn WINDOW)" nomini] 11 (#$ . 74546)])
#@84 Support function for `window-in-direction'.

(fn WINDOW POSN &optional HORIZONTAL)
(defalias 'window--in-direction-2 #[770 "\211\203\300!\211V\203\211Z\202\301\302!#\207\303!\211V\203+\211Z\2023\301\304!#\207" [window-pixel-top - window-pixel-height window-pixel-left window-pixel-width] 9 (#$ . 75120)])
#@1449 Return window in DIRECTION as seen from WINDOW.
More precisely, return the nearest window in direction DIRECTION
as seen from the position of `window-point' in window WINDOW.
DIRECTION should be one of `above', `below', `left' or `right'.
WINDOW must be a live window and defaults to the selected one.

Do not return a window whose `no-other-window' parameter is
non-nil.  If the nearest window's `no-other-window' parameter is
non-nil, try to find another window in the indicated direction.
If, however, the optional argument IGNORE is non-nil, return that
window even if its `no-other-window' parameter is non-nil.

Optional argument SIGN a negative number means to use the right
or bottom edge of WINDOW as reference position instead of
`window-point'.  SIGN a positive number means to use the left or
top edge of WINDOW as reference position.

Optional argument WRAP non-nil means to wrap DIRECTION around
frame borders.  This means to return for WINDOW at the top of the
frame and DIRECTION `above' the minibuffer window if the frame
has one, and a window at the bottom of the frame otherwise.

Optional argument MINI nil means to return the minibuffer window
if and only if it is currently active.  MINI non-nil means to
return the minibuffer window even when it's not active.  However,
if WRAP is non-nil, always act as if MINI were nil.

Return nil if no suitable window can be found.

(fn DIRECTION &optional WINDOW IGNORE SIGN WRAP MINI)
(defalias 'window-in-direction #[1537 "CC\300\242\301\"\240\210\211\242\302=\203\211\303\240\210\2026\211\242\304=\203)\211\305\240\210\2026\211\242\306>\2046\307\310\242\"\210\311\242!\242\312>\211\203I\313\242!\202M\314\242!\211\315\242\301#\\\247\203\205\316W\203\205\203v\314\242!\317\242!\\S\202\323\313\242!\320\242!\\S\202\323\247\203\246\316V\203\246\203\236\314\242!\202\323\313\242!\202\323\321\322\323\242!\242\"8\203\305\211A\206\274\324\314\242!\\\202\321\211@\206\313\324\313\242!\\\262\242\305=\203\340\325!\202\356\242\326=\203\355\327!\202\356\330C\211\242C\203\375\325!\202\327!C\331C\331C\331C\332\333\334\335\336\337&\340\"\341\342%\f\331\205:\301$\210\242\206C\242\266\213\207" [window-normalize-window t up above down below (above below left right) error "Wrong direction %s" window-frame (left right) window-pixel-left window-pixel-top window-size 0 window-pixel-height window-pixel-width 2 posn-at-point window-point 1 frame-pixel-height right frame-pixel-width -1 nil walk-window-tree make-byte-code 257 "\316!\317!\301\242=\206\271\320\321\"\203\302?\206\271\304\203\341\307X\203\205\307\322!\\W\203\205\300\242\323=\203T\211\305X\203A\211\310\242V\204{\303\203T\324\301\242\323\"\203T\324\325\"\204{\300\242\325=\205\271\211\306Y\203h\211\310\242W\204{\303\205\271\324\301\242\325\"\205\271\324\323\"\205\271\310\240\210\313\240\202\271\300\242\323=\203\226\211\326!\\\305X\204\243\300\242\325=\205\271\306X\205\271\315\327\307\304#\240\205\271\315\242\312\242W\204\322\315\242\312\242U\205\271\300\242\323=\203\313\211\311\242V\202\317\211\311\242W\205\271\311\240\210\312\315\242\240\210\314\240\202\271\211\307X\203`\307\326!\\W\203`\300\242\330=\203#\305X\203\310\242V\204V\303\203#\324\301\242\331\"\203#\332 \203\333!\202 \324\334\"\204V\300\242\335=\205\271\305Y\2037\310\242W\204V\303\205\271\332 \203G\333\301\242!\202L\324\301\242\334\"\205\271\324\331\"\205\271\310\240\210\313\240\202\271\300\242\330=\203q\322!\\\305X\204~\300\242\335=\205\271\306X\205\271\315\327\307\304#\240\205\271\315\242\312\242W\204\255\315\242\312\242U\205\271\300\242\330=\203\246\311\242V\202\252\311\242W\205\271\311\240\210\312\315\242\240\210\314\240\207" vconcat vector [window-pixel-top window-pixel-left window-parameter no-other-window window-pixel-height left window-at-side-p right window-pixel-width window--in-direction-2 above top active-minibuffer-window minibuffer-window-active-p bottom below] 8 "\n\n(fn W)"] 39 (#$ . 75455)])
#@1389 Return a live window satisfying PREDICATE.
More precisely, cycle through all windows calling the function
PREDICATE on each one of them with the window as its sole
argument.  Return the first window for which PREDICATE returns
non-nil.  Windows are scanned starting with the window following
the selected window.  If no window satisfies PREDICATE, return
DEFAULT.

MINIBUF t means include the minibuffer window even if the
minibuffer is not active.  MINIBUF nil or omitted means include
the minibuffer window only if the minibuffer is active.  Any
other value means do not include the minibuffer window even if
the minibuffer is active.

ALL-FRAMES nil or omitted means consider all windows on the selected
frame, plus the minibuffer window if specified by the MINIBUF
argument.  If the minibuffer counts, consider all windows on all
frames that share that minibuffer too.  The following non-nil
values of ALL-FRAMES have special meanings:

- t means consider all windows on all existing frames.

- `visible' means consider all windows on all visible frames on
  the current terminal.

- 0 (the number zero) means consider all windows on all visible
  and iconified frames on the current terminal.

- A frame means consider all windows on that frame only.

Anything else means consider all windows on the selected frame
and no others.

(fn PREDICATE &optional MINIBUF ALL-FRAMES DEFAULT)
(defalias 'get-window-with-predicate #[1025 "\3002(\301\302\303##\211\203%\211@!\203\304\300\"\210A\266\202\202
\210\2110\207" [found window-list-1 next-window nil throw] 9 (#$ . 79587)])
(defalias 'some-window 'get-window-with-predicate)
#@957 Return the least recently used window on frames specified by ALL-FRAMES.
Return a full-width window if possible.  A minibuffer window is
never a candidate.  A dedicated window is never a candidate
unless DEDICATED is non-nil, so if all windows are dedicated, the
value is nil.  Avoid returning the selected window if possible.
Optional argument NOT-SELECTED non-nil means never return the
selected window.

The following non-nil values of the optional argument ALL-FRAMES
have special meanings:

- t means consider all windows on all existing frames.

- `visible' means consider all windows on all visible frames on
  the current terminal.

- 0 (the number zero) means consider all windows on all visible
  and iconified frames on the current terminal.

- A frame means consider all windows on that frame only.

Any other value of ALL-FRAMES means consider all windows on the
selected frame and no others.

(fn &optional ALL-FRAMES DEDICATED NOT-SELECTED)
(defalias 'get-lru-window #[768 "\300\211\211\211\211\301\300\302\n#\211\203e\211@\204\303!\204^\203(\211\304 =\204^\305!\262\211\304 =\204:\306!\204M\203DW\203^\262\211\262\202^\203XW\203^\262\211\262A\266\202\202\210\206k\207" [nil window-list-1 nomini window-dedicated-p selected-window window-use-time window-full-width-p] 12 (#$ . 81234)])
#@866 Return the most recently used window on frames specified by ALL-FRAMES.
A minibuffer window is never a candidate.  A dedicated window is
never a candidate unless DEDICATED is non-nil, so if all windows
are dedicated, the value is nil.  Optional argument NOT-SELECTED
non-nil means never return the selected window.

The following non-nil values of the optional argument ALL-FRAMES
have special meanings:

- t means consider all windows on all existing frames.

- `visible' means consider all windows on all visible frames on
  the current terminal.

- 0 (the number zero) means consider all windows on all visible
  and iconified frames on the current terminal.

- A frame means consider all windows on that frame only.

Any other value of ALL-FRAMES means consider all windows on the
selected frame and no others.

(fn &optional ALL-FRAMES DEDICATED NOT-SELECTED)
(defalias 'get-mru-window #[768 "\300\211\211\301\300\302#\211\203A\211@\303!\262\204\304!\204:\203*\211\305 =\204:\2034V\203:\262\211\262A\266\202\202	\210\207" [nil window-list-1 nomini window-use-time window-dedicated-p selected-window] 10 (#$ . 82583)])
#@855 Return the largest window on frames specified by ALL-FRAMES.
A minibuffer window is never a candidate.  A dedicated window is
never a candidate unless DEDICATED is non-nil, so if all windows
are dedicated, the value is nil.  Optional argument NOT-SELECTED
non-nil means never return the selected window.

The following non-nil values of the optional argument ALL-FRAMES
have special meanings:

- t means consider all windows on all existing frames.

- `visible' means consider all windows on all visible frames on
  the current terminal.

- 0 (the number zero) means consider all windows on all visible
  and iconified frames on the current terminal.

- A frame means consider all windows on that frame only.

Any other value of ALL-FRAMES means consider all windows on the
selected frame and no others.

(fn &optional ALL-FRAMES DEDICATED NOT-SELECTED)
(defalias 'get-largest-window #[768 "\300\301\211\302\301\303#\211\203A\211@\204\304!\204:\203%\211\305 =\204:\306!\307!_\262V\203:\262\211\262A\266\202\202	\210\207" [0 nil window-list-1 nomini window-dedicated-p selected-window window-pixel-height window-pixel-width] 11 (#$ . 83738)])
#@1286 Return list of all windows displaying BUFFER-OR-NAME, or nil if none.
BUFFER-OR-NAME may be a buffer or the name of an existing buffer
and defaults to the current buffer.  If the selected window displays
BUFFER-OR-NAME, it will be the first in the resulting list.

MINIBUF t means include the minibuffer window even if the
minibuffer is not active.  MINIBUF nil or omitted means include
the minibuffer window only if the minibuffer is active.  Any
other value means do not include the minibuffer window even if
the minibuffer is active.

ALL-FRAMES nil or omitted means consider all windows on the
selected frame, plus the minibuffer window if specified by the
MINIBUF argument.  If the minibuffer counts, consider all windows
on all frames that share that minibuffer too.  The following
non-nil values of ALL-FRAMES have special meanings:

- t means consider all windows on all existing frames.

- `visible' means consider all windows on all visible frames on
  the current terminal.

- 0 (the number zero) means consider all windows on all visible
  and iconified frames on the current terminal.

- A frame means consider all windows on that frame only.

Anything else means consider all windows on the selected frame
and no others.

(fn &optional BUFFER-OR-NAME MINIBUF ALL-FRAMES)
(defalias 'get-buffer-window-list #[768 "\300!\301\302\303 #\211\203$\211@\304!=\203\211B\262A\266\202\202\n\210\211\237\207" [window-normalize-buffer nil window-list-1 selected-window window-buffer] 9 (#$ . 84912)])
#@76 Return t if WINDOW is the currently active minibuffer window.

(fn WINDOW)
(defalias 'minibuffer-window-active-p #[257 "\300!\205\n\211\301 =\207" [window-live-p active-minibuffer-window] 3 (#$ . 86432)])
#@232 Return the number of live windows on the selected frame.
The optional argument MINIBUF specifies whether the minibuffer
window shall be counted.  See `walk-windows' for the precise
meaning of this argument.

(fn &optional MINIBUF)
(defalias 'count-windows #[256 "\300\301\"G\207" [window-list-1 nil] 4 (#$ . 86646)])
#@667 For WINDOW convert SIZE lines to pixels.
SIZE is supposed to specify a height of WINDOW in terms of text
lines.  The return value is the number of pixels specifying that
height.

WINDOW must be a valid window.  Optional argument HORIZONTAL
non-nil means convert SIZE columns to pixels.

Optional argument PIXELWISE non-nil means SIZE already specifies
pixels but may have to be adjusted to a multiple of the character
size of WINDOW's frame.  Optional argument ROUND-MAYBE non-nil
means round to the nearest multiple of the character size of
WINDOW's frame if the option `window-resize-pixelwise' is nil.

(fn WINDOW SIZE &optional HORIZONTAL PIXELWISE ROUND-MAYBE)
(defalias 'window--size-to-pixel #[1282 "\301!\262\302\"\203\"\203\204\303\"_\202%\202%_\207" [window-resize-pixelwise window-normalize-window frame-char-size round] 9 (#$ . 86971)])
#@75 Subroutine of `window--pixel-to-total'.

(fn WINDOW HORIZONTAL CHAR-SIZE)
(defalias 'window--pixel-to-total-1 #[771 "\300!\301\"\203\256\302!\303\211\211\211\2037\304	\305#\245\306]\262\307\"\210Z\262\310!\262\202\311V\203\215\312	!\262\303\262\311\262\203\200\302!\304\n\305#\245X\203w\304	\305#\246\211\262V\203w\262\262\313!\262\202I\307\306\305#\210S\262\2027\300	!\262\205\251\314		#\210\310!\262\202\223\266\205\202\312\302!\205\310\307\"\210\314#\210\310!\262\202\261\262\207" [window-child window-combination-p window-new-total nil window-size t 1 set-window-new-total window-next-sibling 0 window-last-child window-prev-sibling window--pixel-to-total-1] 14 (#$ . 87846)])
#@252 On FRAME assign new total window heights from pixel heights.
FRAME must be a live frame and defaults to the selected frame.

Optional argument HORIZONTAL non-nil means assign new total
window widths from pixel widths.

(fn &optional FRAME HORIZONTAL)
(defalias 'window--pixel-to-total #[512 "\300!\262\301\"\302!\303\304#\305!\306!=\205%\211=?\205%\211\262\211\2051\303\304#\203\217\204\217\307\310\245\311]\"\210\310\245\311]\"\210\312\\\"\313!\313!\\Z\262\211\314V\203\213\313!\246\313!\246Y\203~\310\311\304#\210\202\204\310\311\304#\210\211S\262\202`\210\202\245\310\312\"\"\210\203\245\310\312\"\"\210\315!\204\263\316#\210\317\"\207" [window-normalize-frame frame-char-size frame-root-window window-size t minibuffer-window window-frame nil set-window-new-total 1 round window-new-total 0 window-buffer window--pixel-to-total-1 window-resize-apply-total] 12 (#$ . 88619)])
#@317 Reset resize values for all windows on FRAME.
FRAME defaults to the selected frame.

This function stores the current value of `window-size' applied
with argument HORIZONTAL in the new total size of all windows on
FRAME.  It also resets the new normal size of each of these
windows.

(fn &optional FRAME HORIZONTAL)
(defalias 'window--resize-reset #[512 "\300\301\302!!\"\207" [window--resize-reset-1 frame-root-window window-normalize-frame] 6 (#$ . 89578)])
#@70 Internal function of `window--resize-reset'.

(fn WINDOW HORIZONTAL)
(defalias 'window--resize-reset-1 #[514 "\300\301\302#\"\210\303\301\"\"\210\304!\210\305!\203\"\306\305!\"\210\307!\205.\306\307!\"\207" [set-window-new-pixel window-size t set-window-new-total set-window-new-normal window-child window--resize-reset-1 window-right] 8 (#$ . 90046)])
#@188 Change height of mini window WINDOW by DELTA pixels.
If WINDOW cannot be resized by DELTA pixels make it as large (or
as small) as possible, but don't signal an error.

(fn WINDOW DELTA)
(defalias 'window--resize-mini-window #[514 "\300!\205h\301!\302!\303!\304!\303!\305\306\"Z\\\303!\307\310\211\306$Z\\W\2035Z\262V\203>\211\262\311U?\205f\312!\210\313[\310\211\306%\210\314\\\"\210\315!\205f\316!\266\205\207" [window-minibuffer-p window-frame frame-root-window window-pixel-height frame-char-height window-body-height t window-min-size nil 0 window--resize-reset window--resize-this-window set-window-new-pixel resize-mini-window-internal window--pixel-to-total] 13 (#$ . 90421)])
#@192 Return t when a window on FRAME shall be resized vertically.
Optional argument HORIZONTAL non-nil means return t when a window
shall be resized horizontally.

(fn FRAME &optional HORIZONTAL)
(defalias 'window--resize-apply-p #[513 "\3002\301\302\303\304\305\306!\307\"\310\311%\312\211$\210\3130\207" [apply walk-window-tree make-byte-code 257 "\301!\302\300\303#U?\205\304\305\303\"\207" vconcat vector [window-new-pixel window-size t throw apply] 6 "\n\n(fn WINDOW)" t nil] 9 (#$ . 91152)])
#@1380 Resize WINDOW vertically by DELTA lines.
WINDOW can be an arbitrary window and defaults to the selected
one.  An attempt to resize the root window of a frame will raise
an error though.

DELTA a positive number means WINDOW shall be enlarged by DELTA
lines.  DELTA negative means WINDOW shall be shrunk by -DELTA
lines.

Optional argument HORIZONTAL non-nil means resize WINDOW
horizontally by DELTA columns.  In this case a positive DELTA
means enlarge WINDOW by DELTA columns.  DELTA negative means
WINDOW shall be shrunk by -DELTA columns.

Optional argument IGNORE, if non-nil, means to ignore restraints
induced by fixed size windows or the values of the variables
`window-min-height' and `window-min-width'.  The following values
have special meanings: `safe' means that in addition live windows
are allowed to get as small as `window-safe-min-height' lines and
`window-safe-min-width' columns.  `preserved' means to ignore
only restrictions induced by `window-preserve-size'.  If IGNORE
is a window, then ignore restrictions for that window only.

Optional argument PIXELWISE non-nil means resize WINDOW by DELTA
pixels.

This function resizes other windows proportionally and never
deletes any windows.  If you want to move only the low (right)
edge of WINDOW consider using `adjust-window-trailing-edge'
instead.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE PIXELWISE)
(defalias 'window-resize #[1282 "\302!\262\303!\304!\305\306\307%\262\310!=\203(\311\312!\202=\313!\203B\2039\311\314!\202=\315\"\202=\204i\316!\203i\303!=\203i\203`\317 =\203i\315[\"\202=\320\305\211\211\307&\204\230\2048\321\211\262\2038\320\305\211\211\307&\2038\322\"\210\323\307%\210	\307=\204
\324\"\203
\325!\206\304\326!\211\262\203
\327[\307%\203
\330!\331\332\n!\307#\245\323	[	\305\307%\210\333	\334\n\"\\\"\210\333\334\n\"Z\"\266\202\335$\210\336\"\205=\337\"\2030\340\"\202=\311\341	\"\202=\311\342	\"\207" [resize-mini-windows window-combination-resize window-normalize-window window-frame minibuffer-window nil window--size-to-pixel t frame-root-window error "Cannot resize the root window of a frame" window-minibuffer-p "Cannot resize minibuffer window horizontally" window--resize-mini-window window-full-height-p active-minibuffer-window window--resizable-p preserved window--resize-reset window--resize-this-window window-combined-p window-right window-left window-sizable-p float window-size window-parent set-window-new-normal window-normal-size window--resize-siblings window--resize-apply-p window-resize-apply window--pixel-to-total "Failed to apply resizing %s" "Cannot resize window %s"] 17 (#$ . 91662)])
#@301 Resize WINDOW vertically if it is resizable by DELTA lines.
This function is like `window-resize' but does not signal an
error when WINDOW cannot be resized.  For the meaning of the
optional arguments see the documentation of `window-resize'.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE PIXELWISE)
(defalias 'window-resize-no-error #[1282 "\300\301\211\211&\205\302%\207" [window--resizable-p nil window-resize] 14 (#$ . 94425)])
#@78 Return non-nil if WINDOW shall be skipped by resizing routines.

(fn WINDOW)
(defalias 'window--resize-child-windows-skip-p #[257 "\300!\301>\207" [window-new-normal (ignore stuck skip)] 3 (#$ . 94877)])
#@594 Recursively set new normal height of child windows of window PARENT.
HORIZONTAL non-nil means set the new normal width of these
windows.  WINDOW specifies a child window of PARENT that has been
resized by THIS-DELTA lines (columns).

Optional argument TRAIL either `before' or `after' means set values
only for windows before or after WINDOW.  Optional argument
OTHER-DELTA, a number, specifies that this many lines (columns)
have been obtained from (or returned to) an ancestor window of
PARENT in order to resize WINDOW.

(fn PARENT HORIZONTAL WINDOW THIS-DELTA &optional TRAIL OTHER-DELTA)
(defalias 'window--resize-child-windows-normal #[1540 "[\300\301#U\203\211\302U\203\303\"[\202&\304!\300\301#\245\305!\306\307=\203V=\203A\310=\262\202N\211\204N\303\"\\\262\311!\262\202.\305\n!\262\307=\262\203\227=\203t\310=\262\202\217\211\204\217\303\n\"\312\313\211\245	_Z\314]^\"\266\311!\262\202a\247\203\353\304\300\301#!\300\301#\\\245\262\305\n!\262\307=\262\203\353=\203\320\310=\262\202\343\211\204\343\312\315\316!_\317]^\"\210\311!\262\202\275\312\302\305
!\262\203&=\204\316!\247\204\211\303\"\\\262\202\211\316!\\\262\311!\262\202\365\320\321Z\322]^\262\"\207" [window-size t 0 window-normal-size float window-child 0.0 after before window-right set-window-new-normal 1.0 0.0 1.0 window-new-normal 0.0 1.0 1.0 0.0] 17 (#$ . 95089)])
#@1188 Resize child windows of window PARENT vertically by DELTA pixels.
PARENT must be a vertically combined internal window.

Optional argument HORIZONTAL non-nil means resize child windows
of PARENT horizontally by DELTA pixels.  In this case PARENT must
be a horizontally combined internal window.

WINDOW, if specified, must denote a child window of PARENT that
is resized by DELTA pixels.

The optional argument IGNORE has the same meaning as for
`window-resizable'.

Optional arguments TRAIL and EDGE, when non-nil, restrict the set
of windows that shall be resized.  If TRAIL equals `before',
resize only windows on the left or above EDGE.  If TRAIL equals
`after', resize only windows on the right or below EDGE.  Also,
preferably only resize windows adjacent to EDGE.

If the optional argument CHAR-SIZE is a positive integer, it specifies
the number of pixels by which windows are incrementally resized.
If CHAR-SIZE is nil, this means to use the value of
`frame-char-height' or `frame-char-width' of WINDOW's frame.

Return the symbol `normalized' if new normal sizes have been
already set by this routine.

(fn PARENT DELTA &optional HORIZONTAL WINDOW IGNORE TRAIL EDGE CHAR-SIZE)
(defalias 'window--resize-child-windows #[2050 "\301!\302	!\303\n	\304#	\\\206$\203\305\202$\306\n\"\307\211\211\211	\203\n\n\310>\203\n\262\311!\203b\n\312=\203M\313\311!!\203Z\n\314=\203b\313!\203b\311!\262\2028\203\n
\203\210\n\312=\203\315!\316!\\\nU\202\242\315!\nU\202\242\n\312=\203\234\317!\320!\\\nU\202\242\317!\nU\203\n\321\304%\203\n\322\304&\210\f\203\367\323!=\203\367\324\325\326!!\245\"\210\324
\327\"\330!\327\"ZZ\"\210\202\331\332&\210\333\202\343\262\203\204\313!\204|\204.\334#\203.\324\335\"\204|\332W\203^\324\336\304\307\304&\325\303\304#!	\245\327\"ZB\"\210\202|\332V\203|\324\325\303\304#!\245\327\"Z\"\210\337!\262\202\332W\203\304\262\203\220\332U\204\220\262\307\262\307\262\203\325\330!:\203\315\330!@\332X\204\315\203\304\330!AV\203\315\262\330!A\262\337!\262\202\243\203\216\330!@^[^\262\\\262\340[\304#\210\324\330!@U\203\341\202\330!@Z\325\326!!	\245\327\"ZB\"\210\202\216\332V\203\220\304\262\203\220\332U\204\220\262\307\262\307\262\203c\330!\247\203[\203S\330!W\203[\262\330!\262\337!\262\202<\203'^\262Z\262\340\304#\210\324\325\326!!\245\327\"Z\"\210\202'\205\343\262\205\343\330!:\204\252\330!\247\203\256\324!\210\330!\335=\204\333\326!\303\304#Z\211\332U\203\313\203\332\322\307&\210\210\337!\262\202\230\207" [window-resize-pixelwise window-child window-last-child window-size t 1 frame-char-size nil (before after) window-right before window--resize-child-windows-skip-p after window-pixel-left window-pixel-width window-pixel-top window-pixel-height window-sizable-p window--resize-this-window window-parent set-window-new-normal float window-new-pixel window-normal-size window-new-normal window--resize-child-windows-normal 0 normalized window-size-fixed-p ignore window-min-delta window-left set-window-new-pixel skip] 26 (#$ . 96568)])
#@687 Resize other windows when WINDOW is resized vertically by DELTA pixels.
Optional argument HORIZONTAL non-nil means resize other windows
when WINDOW is resized horizontally by DELTA pixels.  WINDOW
itself is not resized by this function.

The optional argument IGNORE has the same meaning as for
`window-resizable'.

Optional arguments TRAIL and EDGE, when non-nil, refine the set
of windows that shall be resized.  If TRAIL equals `before',
resize only windows on the left or above EDGE.  If TRAIL equals
`after', resize only windows on the right or below EDGE.  Also,
preferably only resize windows adjacent to EDGE.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE TRAIL EDGE CHAR-SIZE)
(defalias 'window--resize-siblings #[1794 "\300!\205\300!\301!\302\"\203\334\303=\304\211\203U\f=\2034\305\306\"\210\307=\262\202M\203@\305\306\"\210\202M\310#\204M\311\262\312!\262\202\n[\313
\f\311#U\203t\203n\n\262\202\206\314\262\202\206\315\f\f\f\f\f\311\304\311&\262\nZ\262\211\314U\204\230\316\317#\210\314U\203\257\320\f&\210\202\327\321[\f



&\322=\204\324\320\f&\210\211\262\266\202\316	\317#\210\211\203\211	=\204\371\323			\311%\210\312!\262\202\343\314U?\205\324						&\266\202\207" [window-parent window-child window-combined-p after nil set-window-new-normal ignore before window-size-fixed-p t window-right window-size 0 window--resizable set-window-new-pixel add window--resize-child-windows-normal window--resize-child-windows normalized window--resize-this-window window--resize-siblings] 21 (#$ . 99870)])
#@1254 Resize WINDOW vertically by DELTA pixels.
Optional argument HORIZONTAL non-nil means resize WINDOW
horizontally by DELTA pixels.

The optional argument IGNORE has the same meaning as for
`window-resizable'.  Optional argument ADD non-nil means add
DELTA to the new total size of WINDOW.

Optional arguments TRAIL and EDGE, when non-nil, refine the set
of windows that shall be resized.  If TRAIL equals `before',
resize only windows on the left or above EDGE.  If TRAIL equals
`after', resize only windows on the right or below EDGE.  Also,
preferably only resize windows adjacent to EDGE.

If the optional argument CHAR-SIZE is a positive integer, it specifies
the number of pixels by which windows are incrementally resized.
If CHAR-SIZE is nil, this means to use the value of
`frame-char-height' or `frame-char-width' of WINDOW's frame.

This function recursively resizes WINDOW's child windows to fit the
new size.  Make sure that WINDOW is `window--resizable' before
calling this function.  Note that this function does not resize
siblings of WINDOW or WINDOW's parent window.  You have to
eventually call `window-resize-apply' in order to make resizing
actually take effect.

(fn WINDOW DELTA &optional HORIZONTAL IGNORE ADD TRAIL EDGE CHAR-SIZE)
(defalias 'window--resize-this-window #[2050 "\203\f\300\301#\210\302!\211?\206P\303\"\2032\304			\305\n			&\202P\211\205P\306			\301			&\210\307!\262\2022\207" [set-window-new-pixel t window-child window-combined-p window--resize-child-windows nil window--resize-this-window window-right] 18 (#$ . 101515)])
#@440 Resize root window WINDOW vertically by DELTA lines.
HORIZONTAL non-nil means resize root window WINDOW horizontally
by DELTA columns.

IGNORE non-nil means ignore any restrictions imposed by fixed
size windows, `window-min-height' or `window-min-width' settings.

This function is only called by the frame resizing routines.  It
resizes windows proportionally and never deletes any windows.

(fn WINDOW DELTA HORIZONTAL IGNORE PIXELWISE)
(defalias 'window--resize-root-window #[1285 "\300!\2059\247\2059\211\203\202\301#\302\303%\2057\304\305!\"\210\306\303%\262\207" [windowp window--size-to-pixel window-sizable-p t window--resize-reset window-frame window--resize-this-window] 12 (#$ . 103118)])
#@541 Resize root window WINDOW vertically by DELTA lines.
If DELTA is less than zero and we can't shrink WINDOW by DELTA
lines, shrink it as much as possible.  If DELTA is greater than
zero, this function can resize fixed-size windows in order to
recover the necessary lines.  Return the number of lines that
were recovered.

Third argument PIXELWISE non-nil means to interpret DELTA as
pixels and return the number of pixels that were recovered.

This function is called by the minibuffer window resizing
routines.

(fn WINDOW DELTA PIXELWISE)
(defalias 'window--resize-root-window-vertically #[771 "\300!\203\202\247\203\301!_\202\302\303\302U\204t\302W\203R\304\303\211%\262\305!\210\306\303\307\310\311
!\312!\\&\210\313\314\307#\210\202t\302V\203t\305!\210\304\303\211%\204k\307\262\306\303\307%\210\203|\202\201\301!\245\207" [window-frame frame-char-height 0 nil window-sizable window--resize-reset window--resize-this-window t before window-pixel-top window-pixel-height walk-window-tree #[257 "\300\301\"\207" [set-window-new-normal ignore] 4 "\n\n(fn WINDOW)"]] 16 (#$ . 103856)])
#@49 Resize minibuffer-only frame FRAME.

(fn FRAME)
(defalias 'window--resize-mini-frame #[257 "\301!\203\n!\207\302!\207" [resize-mini-frames functionp fit-mini-frame-to-buffer] 3 (#$ . 105004)])
#@588 Assert that all windows on selected frame are large enough.
If necessary and possible, make sure that every window on frame
FRAME has its minimum height.  Optional argument HORIZONTAL
non-nil means to make sure that every window on frame FRAME has
its minimum width.  The minimum height/width of a window is the
respective value returned by `window-min-size' for that window.

Return t if all windows were resized appropriately.  Return nil
if at least one window could not be resized as requested, which
may happen when the FRAME is not large enough to accommodate it.

(fn HORIZONTAL)
(defalias 'window--sanitize-window-sizes #[257 "\300C\301\302\303\304\305\306\"\307\"\310\311%\312\211\313$\210\211\242\207" [t walk-window-tree make-byte-code 257 "\302\300\303\304$\305\300\304#Z\211\306V\205)\307\300\303\304%\203&\310\300\303\304%\202)\301\303\240\207" vconcat vector [window-min-size nil t window-size 0 window-resizable-p window-resize] 8 "\n\n(fn WINDOW)" nil nomini] 10 (#$ . 105209)])
#@572 Move WINDOW's bottom edge by DELTA lines.
Optional argument HORIZONTAL non-nil means move WINDOW's right
edge by DELTA columns.  WINDOW must be a valid window and
defaults to the selected one.

Optional argument PIXELWISE non-nil means interpret DELTA as
number of pixels.

If DELTA is greater than zero, move the edge downwards or to the
right.  If DELTA is less than zero, move the edge upwards or to
the left.  If the edge can't be moved by DELTA lines or columns,
move it as far as possible in the desired direction.

(fn WINDOW DELTA &optional HORIZONTAL PIXELWISE)
(defalias 'adjust-window-trailing-edge #[1026 "\301!\262\302!\303!\304\211\211\211\211\211\211\n\204&\305\262\f\306\"_\262
\307
\"\2036\310!\204@\311!\211\262	\204&\204z\204z\302	!\n=\203z\312	!A@\313\312!8U\203z\203p\314 =\203z\315	[\"\202\205\211\262\203\214\310!\211\262	\204\235\203\227\316\317!\202\205\316\320!\202\205\262\203\354\321
\"\204\311\f\322W\203\354\323
\305#\324\304\305$X\203\354\325!\206\347\311!\211\262\203\343\307
\"\203\320\325!\262\202\241\204X\326\262\262\203C\321
\326#\204 \f\322W\203C\323
\305#\324\326\305$X\203C\325!\206>\311!\211\262\203:\307
\"\203'\325!\262\202\367\204X\203T\316\327!\210\202X\316\330!\210\262\203\247\321
\"\204\204\f\322V\203\247\323
\305#\324	\326\305$X\203\247\310!\206\242\311!\211\262	\203\236\307
\"\203\213\310!\262\202\\\204\326\262\262\203\376\321
\326#\204\333\f\322V\203\376\323
\305#\324	\326\305$X\203\376\310!\206\371\311!\211\262	\203\365\307
\"\203\342\310!\262\202\262\204\203\316\331!\210\202\316\332!\210\f\322V\203\271\333\322\334\304&\262\335[\336\304&\262
W\204I
[V\203O[^\262
\f\322U\204]\337\n
\"\210\340\334\304\211&\262\322U\204\232\341\305\336\203\216\342!\343!\\\202\227\344!\345!\\&\210\346\334\203\257\342!\202\263\344!&\210\202]\f\322W\203]\333\322\336\304&\262\335\334\304&\262
[W\204\356
V\203\364[]\262
\f\322U\204]\337\n
\"\210\340[\336\304\211&\262\322U\2046\341\305\334\203/\342!\2023\344!&\210\346[\336\203Q\342
!\343!\\\202Z\344
!\345!\\&\210\f\322U?\205\205\347\n
\"\205\205\350\n
\"\203\200\351\n
\"\202\205\352\353\"\207" [resize-mini-windows window-normalize-window window-frame minibuffer-window nil t frame-char-size window-combined-p window-right window-parent window-pixel-edges 3 active-minibuffer-window window--resize-mini-window user-error "No window on the right of this one" "No window below this one" window-size-fixed-p 0 window-size window-min-size window-left preserved "No resizable window on the left of this one" "No resizable window above this one" "No resizable window on the right of this one" "No resizable window below this one" window--max-delta-1 after window--min-delta-1 before window--resize-reset window--resizable window--resize-this-window window-pixel-left window-pixel-width window-pixel-top window-pixel-height window--resize-siblings window--resize-apply-p window-resize-apply window--pixel-to-total error "Failed adjusting window %s"] 24 (#$ . 106225)])
#@325 Make the selected window DELTA lines taller.
Interactively, if no argument is given, make the selected window
one line taller.  If optional argument HORIZONTAL is non-nil,
make selected window wider by DELTA columns.  If DELTA is
negative, shrink selected window by -DELTA lines or columns.

(fn DELTA &optional HORIZONTAL)
(defalias 'enlarge-window #[513 "\302 \303\304\"\203\305\304\"\210\306U\206\250\307\304\"\203!\310\311!\202\250\312 \203;\2030\310\313!\202\250\314\315 \316 _\"\202\250\204\\\317 \203\\\320!\321 =\203\\\204\\\314[\316 _\"\202\250\322\304#\203l\323\304#\202\250\322\304\324$\203~\323\304\324$\202\250	\203\207\325\202\210\326=\203\222\310\327!\202\250\323\304\306V\203\241\330\304\"\202\246\331\304\"[#\207" [resize-mini-windows this-command minibuffer-window window-preserved-size nil window-preserve-size 0 window-size-fixed-p user-error "Selected window has fixed size" window-minibuffer-p "Cannot resize minibuffer window horizontally" window--resize-mini-window selected-window frame-char-height window-full-height-p window-frame selected-frame window--resizable-p window-resize preserved enlarge-window-horizontally enlarge-window "Cannot enlarge selected window" window-max-delta window-min-delta] 8 (#$ . 109580) "p"])
#@331 Make the selected window DELTA lines smaller.
Interactively, if no argument is given, make the selected window
one line smaller.  If optional argument HORIZONTAL is non-nil,
make selected window narrower by DELTA columns.  If DELTA is
negative, enlarge selected window by -DELTA lines or columns.

(fn DELTA &optional HORIZONTAL)
(defalias 'shrink-window #[513 "\302 \303\304\"\203\305\304\"\210\306U\206\254\307\304\"\203!\310\311!\202\254\312 \203<\2030\310\313!\202\254\314\315 [\316 _\"\202\254\204\\\317 \203\\\320!\321 =\203\\\204\\\314\316 _\"\202\254\322\304[#\203n\323\304[#\202\254\322\304[\324$\203\202\323\304[\324$\202\254	\203\213\325\202\214\326=\203\226\310\327!\202\254\323\304\306V\203\246\330\304\"[\202\252\331\304\"#\207" [resize-mini-windows this-command minibuffer-window window-preserved-size nil window-preserve-size 0 window-size-fixed-p user-error "Selected window has fixed size" window-minibuffer-p "Cannot resize minibuffer window horizontally" window--resize-mini-window selected-window frame-char-height window-full-height-p window-frame selected-frame window--resizable-p window-resize preserved shrink-window-horizontally shrink-window "Cannot shrink selected window" window-min-delta window-max-delta] 8 (#$ . 110885) "p"])
#@247 Maximize WINDOW.
Make WINDOW as large as possible without deleting any windows.
WINDOW must be a valid window and defaults to the selected one.

If the option `window-resize-pixelwise' is non-nil maximize
WINDOW pixelwise.

(fn &optional WINDOW)
(defalias 'maximize-window #[256 "\301!\262\302\303\304\211\211\211\211&\304\211%\210\302\303\305\304\211\211\211&\305\304%\207" [window-resize-pixelwise window-normalize-window window-resize window-max-delta nil t] 11 (#$ . 112199) nil])
#@247 Minimize WINDOW.
Make WINDOW as small as possible without deleting any windows.
WINDOW must be a valid window and defaults to the selected one.

If the option `window-resize-pixelwise' is non-nil minimize
WINDOW pixelwise.

(fn &optional WINDOW)
(defalias 'minimize-window #[256 "\203\302!\210\303!\262\304\305\306\211\211\211\211	&[\306\211	%\210\304\305\307\306\211\211\211	&[\307\306	%\207" [switch-to-buffer-preserve-window-point window-resize-pixelwise window--before-delete-windows window-normalize-window window-resize window-min-delta nil t] 11 (#$ . 112703) nil])
#@1112 Return a list of the edge distances of WINDOW.
WINDOW must be a valid window and defaults to the selected one.
The list returned has the form (LEFT TOP RIGHT BOTTOM).

If the optional argument BODY is nil, this means to return the
edges corresponding to the total size of WINDOW.  BODY non-nil
means to return the edges of WINDOW's body (aka text area).  If
BODY is non-nil, WINDOW must specify a live window.

Optional argument ABSOLUTE nil means to return edges relative to
the position of WINDOW's native frame.  ABSOLUTE non-nil means to
return coordinates relative to the origin - the position (0, 0) -
of FRAME's display.  On non-graphical systems this argument has
no effect.

Optional argument PIXELWISE nil means to return the coordinates
in terms of the canonical character width and height of WINDOW's
frame, rounded if necessary.  PIXELWISE non-nil means to return
the coordinates in pixels where the values for RIGHT and BOTTOM
are one more than the actual value of these edges.  Note that if
ABSOLUTE is non-nil, PIXELWISE is implicitly non-nil too.

(fn &optional WINDOW BODY ABSOLUTE PIXELWISE)
(defalias 'window-edges #[1024 "\300\"\301!\302!\303!\304!\203\305!\\\202#\306!\245\\\205R\307\305!\310	!@\311=\203?\312	!\202@\313\314\n!@\315!@\206N\313_%\203`\316!\\\202h\317!\245\\\n\205y\307\316	!\320!#\n\203\206\321\n!\202\212\322\n!\\\f\205\227\323\324\"\\\f\203\244\325\f!\202\250\326\f!\\\205\265\327
\324\"\\\203\363\330\f\331\"\211@A@\203\335	\\\\\\\\F\202\356\n\\	\\\\\\F\266\203\202,\203%
\203F\202,\n\245\n\245\307
\332#\f\245\307
\332#\f\245F\202,F\207" [window-normalize-window window-frame frame-internal-border-width frame-char-width frame-char-height window-pixel-left window-left-column + window-current-scroll-bars left window-scroll-bar-width 0 window-fringes window-margins window-pixel-top window-top-line window-header-line-height window-pixel-width window-total-width window-body-width t window-pixel-height window-total-height window-body-height frame-edges native-edges -1] 25 (#$ . 113296)])
#@158 Return a list of the edge coordinates of WINDOW's body.
The return value is that of `window-edges' called with argument
BODY non-nil.

(fn &optional WINDOW)
(defalias 'window-body-edges #[256 "\300\301\"\207" [window-edges t] 4 (#$ . 115467)])
(defalias 'window-inside-edges 'window-body-edges)
#@162 Return a list of the edge pixel coordinates of WINDOW.
The return value is that of `window-edges' called with argument
PIXELWISE non-nil.

(fn &optional WINDOW)
(defalias 'window-pixel-edges #[256 "\300\301\211\302$\207" [window-edges nil t] 6 (#$ . 115770)])
#@179 Return a list of the edge pixel coordinates of WINDOW's body.
The return value is that of `window-edges' called with arguments
BODY and PIXELWISE non-nil.

(fn &optional WINDOW)
(defalias 'window-body-pixel-edges #[256 "\300\301\302\301$\207" [window-edges t nil] 6 (#$ . 116038)])
(defalias 'window-inside-pixel-edges 'window-body-pixel-edges)
#@161 Return a list of the edge pixel coordinates of WINDOW.
The return value is that of `window-edges' called with argument
ABSOLUTE non-nil.

(fn &optional WINDOW)
(defalias 'window-absolute-pixel-edges #[256 "\300\301\302\211$\207" [window-edges nil t] 6 (#$ . 116391)])
#@183 Return a list of the edge pixel coordinates of WINDOW's text area.
The return value is that of `window-edges' called with arguments
BODY and ABSOLUTE non-nil.

(fn &optional WINDOW)
(defalias 'window-absolute-body-pixel-edges #[256 "\300\301\211\211$\207" [window-edges t] 6 (#$ . 116667)])
(defalias 'window-inside-absolute-pixel-edges 'window-absolute-body-pixel-edges)
#@528 Return display coordinates of POSITION in WINDOW.
If the buffer position POSITION is visible in window WINDOW,
return the display coordinates of the upper/left corner of the
glyph at POSITION.  The return value is a cons of the X- and
Y-coordinates of that corner, relative to an origin at (0, 0) of
WINDOW's display.  Return nil if POSITION is not visible in
WINDOW.

WINDOW must be a live window and defaults to the selected window.
POSITION defaults to the value of `window-point' of WINDOW.

(fn &optional POSITION WINDOW)
(defalias 'window-absolute-pixel-position #[512 "\300\301\"\302\206\f\303!\301#\211\205%\304!\211@@\\A@A@\\B\262\207" [window-normalize-window t pos-visible-in-window-p window-point window-absolute-body-pixel-edges] 8 (#$ . 117047)])
#@66 Return t if WINDOW is the root window of its frame.

(fn WINDOW)
(defalias 'frame-root-window-p #[257 "\211\300!=\207" [frame-root-window] 4 (#$ . 117825)])
#@238 Return window subtree rooted at WINDOW.
Optional argument NEXT non-nil means include WINDOW's right
siblings in the return value.

See the documentation of `window-tree' for a description of the
return value.

(fn WINDOW &optional NEXT)
(defalias 'window--subtree #[513 "\300\203B\301!\203\302\303!\304\301!\302\"BB\2022\305!\2031\300\303!\304\305!\302\"BB\2022B\262\205=\306!\262\202\211\237\207" [nil window-top-child t window-edges window--subtree window-left-child window-next-sibling] 8 (#$ . 117990)])
#@783 Return the window tree of frame FRAME.
FRAME must be a live frame and defaults to the selected frame.
The return value is a list of the form (ROOT MINI), where ROOT
represents the window tree of the frame's root window, and MINI
is the frame's minibuffer window.

If the root window is not split, ROOT is the root window itself.
Otherwise, ROOT is a list (DIR EDGES W1 W2 ...) where DIR is nil
for a horizontal split, and t for a vertical split.  EDGES gives
the combined size and position of the child windows in the split,
and the rest of the elements are the child windows in the split.
Each of the child windows may again be a window or a list
representing a window split, and so on.  EDGES is a list (LEFT
TOP RIGHT BOTTOM) as returned by `window-edges'.

(fn &optional FRAME)
(defalias 'window-tree #[256 "\300!\262\301\302!\303\"\207" [window-normalize-frame window--subtree frame-root-window t] 4 (#$ . 118529)])
#@919 Select another window in cyclic ordering of windows.
COUNT specifies the number of windows to skip, starting with the
selected window, before making the selection.  If COUNT is
positive, skip COUNT windows forwards.  If COUNT is negative,
skip -COUNT windows backwards.  COUNT zero means do not skip any
window, so select the selected window.  In an interactive call,
COUNT is the numeric prefix argument.  Return nil.

If the `other-window' parameter of the selected window is a
function and `ignore-window-parameters' is nil, call that
function with the arguments COUNT and ALL-FRAMES.

This function does not select a window whose `no-other-window'
window parameter is non-nil.

This function uses `next-window' for finding the window to
select.  The argument ALL-FRAMES has the same meaning as in
`next-window', but the MINIBUF argument of `next-window' is
always effectively nil.

(fn COUNT &optional ALL-FRAMES)
(defalias 'other-window #[513 "\301 \211?\205\f\302\303\"\304\211\305!\203\"\202\271\3062\271\307V\203b\310\304#\262=\203EU\203!\311\306\304\"\210\202!\302\312\"\203Z\204!\262\262\202!S\262\202!\307W\203\243\313\304#\262=\203\206U\203b\311\306\304\"\210\202b\302\312\"\203\233\204b\262\262\202bT\262\202b=\203\263\314\315!\203\263\316\317!\210\320!\210\3040\207" [ignore-window-parameters selected-window window-parameter other-window nil functionp exit 0 next-window throw no-other-window previous-window called-interactively-p interactive message "No other window to select" select-window] 11 (#$ . 119460) "p"])
#@1031 Return non-nil if the selected window is the only window.
Optional arg NOMINI non-nil means don't count the minibuffer
even if it is active.  Otherwise, the minibuffer is counted
when it is active.

Optional argument ALL-FRAMES specifies the set of frames to
consider, see also `next-window'.  ALL-FRAMES nil or omitted
means consider windows on the selected frame only, plus the
minibuffer window if specified by the NOMINI argument.  If the
minibuffer counts, consider all windows on all frames that share
that minibuffer too.  The remaining non-nil values of ALL-FRAMES
with a special meaning are:

- t means consider all windows on all existing frames.

- `visible' means consider all windows on all visible frames on
  the current terminal.

- 0 (the number zero) means consider all windows on all visible
  and iconified frames on the current terminal.

- A frame means consider all windows on that frame only.

Anything else means consider all windows on the selected frame
and no others.

(fn &optional NOMINI ALL-FRAMES)
(defalias 'one-window-p #[512 "\300 \203\211\301 =\203\302!\262\211\302\205\303#=\207" [selected-window minibuffer-window next-window arg] 8 (#$ . 121077)])
#@241 Return t if WINDOW can be safely deleted from its frame.
WINDOW must be a valid window and defaults to the selected one.

Return `frame' if WINDOW is the root window of its frame and that
frame can be safely deleted.

(fn &optional WINDOW)
(defalias 'window-deletable-p #[256 "\301!\262\204\302\303\"\304=\204\302\305\"\203\306!\262\307!\310!\203s\211\311\312\"=\206k\3132[\314 \211\205X\211@\211=\204Q\307\315!!=\203Q\316\313\304\"\210A\266\202\2026\2620\206k\317 \211\205i\307!=\262?\205\213\320\202\213\321!\203}\322\202\213\204\212\323!=?\205\213\304\207" [ignore-window-parameters window-normalize-window window-parameter delete-window t window-atom window-atom-root window-frame frame-root-window-p next-frame 0 other frame-list minibuffer-window throw active-minibuffer-window frame window-minibuffer-p nil window-main-window] 7 (#$ . 122283)])
#@84 Return t if WINDOW is either ROOT or a member of ROOT's subtree.

(fn WINDOW ROOT)
(defalias 'window--in-subtree-p #[514 "=\206*\300!\3012(\211\205'\211=\203\302\301\303\"\210\202
\300!\262\202
0\262\207" [window-parent done throw t] 6 (#$ . 123184)])
#@475 Update `window-prev-buffers' before delete a window.
Optional arg WINDOW, if non-nil, update WINDOW-START and POS
in `window-prev-buffers' for all windows displaying same
buffer as WINDOW.  Otherwise, update `window-prev-buffers' for
all windows.

The new values for WINDOW-START and POS are those
returned by `window-start' and `window-point' respectively.

This function is called only if `switch-to-buffer-preserve-window-point'
evaluates non-nil.

(fn &optional WINDOW)
(defalias 'window--before-delete-windows #[256 "\300 \211\205f\211@\301\206!\302!\303!\304!\236\211\2039\3058U\2045A@\223\210\211\223\210\210\202]\304!\306 \306 \223\210\211\223\210EB\262\307\"\266\266A\266\202\202\207" [window-list window-buffer window-start window-point window-prev-buffers 2 make-marker set-window-prev-buffers] 13 (#$ . 123457)])
#@719 Delete WINDOW.
WINDOW must be a valid window and defaults to the selected one.
Return nil.

If the variable `ignore-window-parameters' is non-nil or the
`delete-window' parameter of WINDOW equals t, do not process any
parameters of WINDOW.  Otherwise, if the `delete-window'
parameter of WINDOW specifies a function, call that function with
WINDOW as its sole argument and return the value returned by that
function.

Otherwise, if WINDOW is part of an atomic window, call
`delete-window' with the root of the atomic window as its
argument.  Signal an error if WINDOW is either the only window on
its frame, the last non-side window, or part of an atomic window
that is its frame's root window.

(fn &optional WINDOW)
(defalias 'delete-window #[256 "\203\303 \210\304!\262\305!\306\307\"\310!\311\312!\210\3132-	\204\201\314=\204\201\315!\203:\316\313!\"\210\202\201\306\317\"\203i\320!\211\262\203i\211=\204i\211\321!=\203_\322\323!\210\202\201\316\313\307!\"\210\202\201\204t\322\324!\210\202\201\325!=\203\201\322\326\"\210\327!\330\314#\n\206\222\306\331\"\332\333!\"\334!\206\246\335!\336\"\210\n\314=\204\335\211\203\335\337\311\314%\203\335\340\311\314%\210\341\342\"\342\f\"\\\"\210\202\343	[\311\211\211\314\211&\203\372\344	[#\210\202\344	[\314$\210\345	!\210\346\"\210\203#\306\333	!\347\"\203#\350\351	\"\210\312!\210)\311\266\2040\207" [switch-to-buffer-preserve-window-point ignore-window-parameters window-combination-resize window--before-delete-windows window-normalize-window window-frame window-parameter delete-window window-parent nil window--check done t functionp throw window-atom window-atom-root frame-root-window error "Root of atomic window is root window of its frame" "Attempt to delete minibuffer or sole ordinary window" window-main-window "Attempt to delete main window of frame %s" window-left-child window-size window-side window--in-subtree-p frame-selected-window window-left window-right window--resize-reset window-sizable-p window--resize-this-window set-window-new-normal window-normal-size window--resizable-p window--resize-siblings delete-window-internal window--pixel-to-total no-other-window other-window -1] 18 (#$ . 124334) nil])
#@804 Make WINDOW fill its frame.
WINDOW must be a valid window and defaults to the selected one.
Return nil.

If the variable `ignore-window-parameters' is non-nil or the
`delete-other-windows' parameter of WINDOW equals t, do not pay
attention to any other parameters of WINDOW.  Otherwise, if the
`delete-other-windows' parameter of WINDOW specifies a function,
call that function with WINDOW as its sole argument and return
the value returned by that function.

Else, if WINDOW is part of an atomic window, call this function
with the root of the atomic window as its argument.  Signal an
error if that root window is the root window of WINDOW's frame.
Also signal an error if WINDOW is a side window.  Do not delete
any window whose `no-delete-other-windows' parameter is non-nil.

(fn &optional WINDOW)
(defalias 'delete-other-windows #[256 "\301!\262\302!\303\304\"\305\211\306!\210\3072\204\201\310=\204\201\311!\2031\312\307!\"\210\202\201\303\313\"\203`\314!\211\262\203`=\204`\315!=\203V\316\317!\210\202\201\312\307\304!\"\210\202\201\303\320\"\203n\316\321!\210\202\201\322!\203\201\315!=\204\201\316\323!\210\204\216\324\325\305#\204\226\315!\262\202\364\3262\243\327\330\305\211\331$\210\3100\203\256\332!\262\202\364\333!\211\203\356\211@\334!\203\347\211=\204\347\303\325\"\204\347\203\327\314!=\204\347\3351\342\336!0\202\346\210\202\347\210A\266\202\202\261\210\312\307\305\"\210=\203\337\340!\203\341\342!\210\202\343\"\210\306!\210\3050\207" [ignore-window-parameters window-normalize-window window-frame window-parameter delete-other-windows nil window--check done t functionp throw window-atom window-atom-root frame-root-window error "Root of atomic window is root window of its frame" window-side "Cannot make side window the only window" window-minibuffer-p "Can't expand minibuffer to full frame" window-with-parameter no-delete-other-windows tag walk-window-tree #[257 "\300\301\"\203\300\302\"\203\300\301\"?\205!\300\302\"\205!\303\304\305\"\207" [window-parameter window-side no-delete-other-windows throw tag nil] 4 "\n\n(fn OTHER)"] nomini window-main-window window-list window-live-p (error) delete-window called-interactively-p interactive message "No other windows to delete" delete-other-windows-internal] 10 (#$ . 126623) nil])
#@209 Delete the windows in the same column with WINDOW, but not WINDOW itself.
This may be a useful alternative binding for \[delete-other-windows]
 if you often split windows horizontally.

(fn &optional WINDOW)
(defalias 'delete-other-windows-vertically #[256 "\211\206\300 \301!\302\303\304\"\211\262=\2045\301!\211@@U\2031\3058\3058U\2031B\262\210\202\306\307\"\207" [selected-window window-edges nil next-window 1 2 mapc delete-window] 9 (#$ . 128984) nil])
#@111 Record WINDOW's buffer.
WINDOW must be a live window and defaults to the selected one.

(fn &optional WINDOW)
(defalias 'record-window-buffer #[256 "\301\302\"\303!\211\304!\236\305\306\"\210\211\203 \307\310\304!\"\"\210\311!\312H\313=?\205drq\210\314!\315!\203JA@\306\223\3168\306\223D\202R\317!\317\"DB\262\307\304!B\"\266)\320\321!\207" [window-point-insertion-type window-normalize-window t window-buffer window-prev-buffers set-window-next-buffers nil set-window-prev-buffers assq-delete-all buffer-name 0 32 window-start window-point 2 copy-marker run-hooks buffer-list-update-hook] 11 (#$ . 129469)])
#@188 Unrecord BUFFER in WINDOW.
WINDOW must be a live window and defaults to the selected one.
BUFFER must be a live buffer and defaults to the buffer of
WINDOW.

(fn &optional WINDOW BUFFER)
(defalias 'unrecord-window-buffer #[512 "\300\301\"\206\302!\303\304\305!\"\"\210\306\307\310!\"\"\207" [window-normalize-window t window-buffer set-window-prev-buffers assq-delete-all window-prev-buffers set-window-next-buffers delq window-next-buffers] 10 (#$ . 130116)])
#@456 Set WINDOW's buffer to BUFFER.
WINDOW must be a live window and defaults to the selected one.
Optional argument START non-nil means set WINDOW's start position
to START.  Optional argument POINT non-nil means set WINDOW's
point to POINT.  If WINDOW is selected this also sets BUFFER's
`point' to POINT.  If WINDOW is selected and the buffer it showed
before was current this also makes BUFFER the current buffer.

(fn WINDOW BUFFER &optional START POINT)
(defalias 'set-window-buffer-start-and-point #[1026 "\300\301\"\262\302 =\303!p=\304\"\210\203!\211\203!q\210\203,\305\301#\210\2055\306\"\207" [window-normalize-window t selected-window window-buffer set-window-buffer set-window-start set-window-point] 10 (#$ . 130597)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\314\301\315\316#\210\300\315\302\303\317DD\320\306\321\310\316\312\313&	\207" [custom-declare-variable switch-to-visible-buffer funcall function #[0 "\300\207" [t] 1] "If non-nil, allow switching to an already visible buffer.\nIf this variable is non-nil, `switch-to-prev-buffer' and\n`switch-to-next-buffer' may switch to an already visible buffer.\nIf this variable is nil, `switch-to-prev-buffer' and\n`switch-to-next-buffer' always try to avoid switching to a buffer\nthat is already visible in another window on the same frame." :type boolean :version "24.1" :group windows make-obsolete-variable switch-to-prev-buffer-skip "27.1" #[0 "\300\207" [nil] 1] "Buffers `switch-to-prev-buffer' should skip.\nIf this variable is nil, `switch-to-prev-buffer' may switch to\nany buffer, including those already shown in other windows.\n\nIf this variable is non-nil, `switch-to-prev-buffer' will refrain\nfrom switching to certain buffers according to the value of this\nvariable:\n\n- `this' means do not switch to a buffer shown on the frame that\n  hosts the window `switch-to-prev-buffer' is acting upon.\n\n- `visible' means do not switch to a buffer shown on any visible\n  frame.\n\n- 0 (the number zero) means do not switch to a buffer shown on\n  any visible or iconified frame.\n\n- t means do not switch to a buffer shown on any live frame.\n\nIf this option specifies a function, that function is called with\nthree arguments - the WINDOW argument of `switch-to-prev-buffer',\na buffer `switch-to-prev-buffer' intends to switch to and the\nBURY-OR-KILL argument of `switch-to-prev-buffer'.  If that\nfunction returns non-nil, `switch-to-prev-buffer' will not switch\nto that buffer.\n\nSince `switch-to-prev-buffer' is called by `bury-buffer',\n`replace-buffer-in-windows' and `quit-restore-window' among\nothers, customizing this option may also affect the behavior of\nEmacs when a window is quit or a buffer gets buried or killed.\n\nThe value of this option is consulted by `switch-to-next-buffer'\nas well.  In that case, if this option specifies a function, it\nwill be called with the third argument nil.\n\nUnder certain circumstances `switch-to-prev-buffer' may ignore\nthis option, for example, when there is only one buffer left." (choice (const :tag "Never" nil) (const :tag "This frame" this) (const :tag "Visible frames" visible) (const :tag "Visible and iconified frames" 0) (const :tag "Any frame" t) (function :tag "Function"))] 10)
#@353 Return non-nil if `switch-to-prev-buffer' should skip BUFFER.
SKIP is a value derived from `switch-to-prev-buffer-skip', WINDOW
the window `switch-to-prev-buffer' acts upon.  Optional argument
BURY-OR-KILL is passed unchanged by `switch-to-prev-buffer' and
omitted in calls from `switch-to-next-buffer'.

(fn SKIP WINDOW BUFFER &optional BURY-OR-KILL)
(defalias 'switch-to-prev-buffer-skip-p #[1027 "\205\300!\203#\207\301\"\207" [functionp get-buffer-window] 8 (#$ . 133881)])
#@915 In WINDOW switch to previous buffer.
WINDOW must be a live window and defaults to the selected one.
Return the buffer switched to, nil if no suitable buffer could be
found.

Optional argument BURY-OR-KILL non-nil means the buffer currently
shown in WINDOW is about to be buried or killed and consequently
shall not be switched to in future invocations of this command.

As a special case, if BURY-OR-KILL equals `append', this means to
move the buffer to the end of WINDOW's previous buffers list so a
future invocation of `switch-to-prev-buffer' less likely switches
to it.

The option `switch-to-prev-buffer-skip' can be used to not switch
to certain buffers, for example, to those already shown in
another window.  Also, if WINDOW's frame has a `buffer-predicate'
parameter, that predicate may inhibit switching to certain
buffers.

This function is called by `prev-buffer'.

(fn &optional WINDOW BURY-OR-KILL)
(defalias 'switch-to-prev-buffer #[512 "\302\303\"\304!\305\306\"\307!\310!\311\312\"\313!\204!\314>\203%\202/\204.	?\205/\315\211\211\211\316!\203H\317 \211\262\f\204H\320\321\f\"\210\322!\323>\204Y\320\324\f\n#\210\3252\310\326!\211\203\311\211@\211@\211\262\203\302\327!\204~B\211\262\204\302\n=\204\302\203\221!\203\302
\204\235	>\204\302\330$\203\260\262\202\302\331
A@\3328$\210\333\325\303\"\210A\266\202\202a\210\204I\203\333\334\n!\202\340\334\n!\237\211\203H\211@\327!\203A\211\n=\204A\203\377!\203A\335!\336H\337=\204A\340\341\"\204A
\204\211	>\204A\330$\2032\206-\211\262\202A\211\262\331
\"\210\333\325\303\"\210A\266\202\202\340\210\204\273\342!\211\203\272\211@\327!\204g\211B\211\262\204\263\211\n=\204\263\203z!\203\263\211\326!\236\211\262\203\263\330$\203\234\206\227\211\262\202\263\211\262\331
A@\332\n8$\210\333\325\303\"\210A\266\202\202R\210\211\205\307\211\262\331\"0\210\203	\343=\205\334\326\f!\236\344\f\345\326!\"\"\210\346\f\347\"\"\210\211\203\344\f\343\326!C\"\"\210\210\202\346	\347\"B\"\210\203B\211\203A\211@\344
\345\326!\"\"\210\346
\347\310!\"\"\210A\266\202\202\210\207" [switch-to-prev-buffer-skip switch-to-visible-buffer window-normalize-window t window-frame window-parameter window-side window-buffer window-next-buffers frame-parameter buffer-predicate functionp (t visible 0) nil window-minibuffer-p minibuffer-selected-window error "Window %s is a minibuffer window" window-dedicated-p (nil side) "Window %s is dedicated to buffer %s" found window-prev-buffers buffer-live-p switch-to-prev-buffer-skip-p set-window-buffer-start-and-point 2 throw buffer-list buffer-name 0 32 buffer-local-value window--sides-shown reverse append set-window-prev-buffers assq-delete-all set-window-next-buffers delq] 21 (#$ . 134378) nil])
#@496 In WINDOW switch to next buffer.
WINDOW must be a live window and defaults to the selected one.
Return the buffer switched to, nil if no suitable buffer could be
found.

The option `switch-to-prev-buffer-skip' can be used to not switch
to certain buffers, for example, to those already shown in
another window.  Also, if WINDOW's frame has a `buffer-predicate'
parameter, that predicate may inhibit switching to certain
buffers.

This function is called by `next-buffer'.

(fn &optional WINDOW)
(defalias 'switch-to-next-buffer #[256 "\302\303\"\304!\305\306\"\307!\310!\311\312\"\313!\204!\314>\203%\202/\204.	?\205/\315\211\211\211\316!\203H\317 \211\262\f\204H\320\321\f\"\210\322!\323>\204Y\320\324\f\n#\210\3252\243\211\203\301\211@\326!\204t\211B\211\262\204\272\211\n=\204\272\203\207!\203\272\211\327!\236\211\262\203\272\330#\203\243\211\262\202\272\211\262\331
A@\332	8$\210\333\325\303\"\210A\266\202\202_\210\204/\334\n!\211\203.\211@\326!\203'\211\n=\204'\203\352!\203'\335!\336H\337=\204'\340\341\"\204'\211\327!\236\204'\330#\203\206\211\262\202'\211\262\331
\"\210\333\325\303\"\210A\266\202\202\313\210\342\327\f!!\211\203\225\211@\211@\211\262\203\216\326!\204SB\211\262\204\216\n=\204\216\203g!\203\216\330#\203|\206w\262\202\216\331
A@\3328$\210\333\325\303\"\210A\266\202\2025\210\211\205\242\211\262\331\"0\210\343\344\n\"\"\210\203\332\211\203\331\211@\345
\346\327!\"\"\210\343
\344\310!\"\"\210A\266\202\202\264\210\207" [switch-to-prev-buffer-skip switch-to-visible-buffer window-normalize-window t window-frame window-parameter window-side window-buffer window-next-buffers frame-parameter buffer-predicate functionp (t visible 0) nil window-minibuffer-p minibuffer-selected-window error "Window %s is a minibuffer window" window-dedicated-p (nil side) "Window %s is dedicated to buffer %s" found buffer-live-p window-prev-buffers switch-to-prev-buffer-skip-p set-window-buffer-start-and-point 2 throw buffer-list buffer-name 0 32 buffer-local-value window--sides-shown reverse set-window-next-buffers delq set-window-prev-buffers assq-delete-all] 20 (#$ . 137288) nil])
#@450 Search LIST for a valid buffer to display in FRAME.
Return nil when all buffers in LIST are undesirable for display,
otherwise return the first suitable buffer in LIST.

Buffers not visible in windows are preferred to visible buffers,
unless VISIBLE-OK is non-nil.
If the optional argument FRAME is nil, it defaults to the selected frame.
If BUFFER is non-nil, ignore occurrences of that buffer in LIST.

(fn LIST &optional BUFFER VISIBLE-OK FRAME)
(defalias 'get-next-valid-buffer #[1025 "\211\206\300 \262\301\302\"\303\211\204U\203U@\262=\204M\304!\203M\2032!\203M\305!\306H\307=\204M\204G\310\311\"\204M\211\262\202A\262\202@\207" [selected-frame frame-parameter buffer-predicate nil buffer-live-p buffer-name 0 32 get-buffer-window visible] 10 (#$ . 139565)])
#@442 Return the last buffer in FRAME's buffer list.
If BUFFER is the last buffer, return the preceding buffer
instead.  Buffers not visible in windows are preferred to visible
buffers, unless optional argument VISIBLE-OK is non-nil.
Optional third argument FRAME nil or omitted means use the
selected frame's buffer list.  If no such buffer exists, return
the buffer `*scratch*', creating it if necessary.

(fn &optional BUFFER VISIBLE-OK FRAME)
(defalias 'last-buffer #[768 "\211\206\300 \262\301\302!\237$\206$\303\304!\206$\305\304!\306!\210\211\262\207" [selected-frame get-next-valid-buffer buffer-list get-buffer "*scratch*" get-buffer-create set-buffer-major-mode] 8 (#$ . 140375)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\310\312\313\314&\207" [custom-declare-variable frame-auto-hide-function funcall function #[0 "\300\207" [iconify-frame] 1] "Function called to automatically hide frames.\nThe function is called with one argument - a frame.\n\nFunctions affected by this option are those that bury a buffer\nshown in a separate frame like `quit-window' and `bury-buffer'." :type (choice (const :tag "Iconify" iconify-frame) (const :tag "Make invisible" make-frame-invisible) (const :tag "Delete" delete-frame) (const :tag "Do nothing" ignore) function) :group windows frames :version "26.1"] 12)
#@377 Delete WINDOW if possible.
WINDOW must be a live window and defaults to the selected one.
Optional argument DEDICATED-ONLY non-nil means to delete WINDOW
only if it's dedicated to its buffer.  Optional argument KILL
means the buffer shown in window will be killed.  Return non-nil
if WINDOW gets deleted or its frame is auto-hidden.

(fn &optional WINDOW DEDICATED-ONLY KILL)
(defalias 'window--delete #[768 "\301\302\"\262\205\303!??\205U\304!\211\305=\203J\306!\203)\307!\210\202E\310\311\312\"!\203;\311\312\" \210\202E\310!\203E!\210\210\305\202S\211\205S\313!\210\302\262\207" [frame-auto-hide-function window-normalize-window t window-dedicated-p window-deletable-p frame window-frame delete-frame functionp frame-parameter auto-hide-function delete-window] 9 (#$ . 141712)])
#@497 Put BUFFER-OR-NAME at the end of the list of all buffers.
There it is the least likely candidate for `other-buffer' to
return; thus, the least likely buffer for \[switch-to-buffer] to
select by default.

You can specify a buffer name as BUFFER-OR-NAME, or an actual
buffer object.  If BUFFER-OR-NAME is nil or omitted, bury the
current buffer.  Also, if BUFFER-OR-NAME is nil or omitted,
remove the current buffer from the selected window if it is
displayed there.

(fn &optional BUFFER-OR-NAME)
(defalias 'bury-buffer #[256 "\300!\301!\210\204(\211\302 =\203(\303 \204(\304\305\306\"\204(\307\305\211\"\210\310\305\311\"\210\305\207" [window-normalize-buffer bury-buffer-internal window-buffer window-minibuffer-p window--delete nil t set-window-dedicated-p switch-to-prev-buffer bury] 5 (#$ . 142527) nil])
#@47 Switch to the last buffer in the buffer list.
(defalias 'unbury-buffer #[0 "\300\301 !\207" [switch-to-buffer last-buffer] 2 (#$ . 143349) nil])
#@181 In selected window switch to ARGth next buffer.
Call `switch-to-next-buffer' unless the selected window is the
minibuffer window or is dedicated to its buffer.

(fn &optional ARG)
(defalias 'next-buffer #[256 "\300 \203	\301\302!\207\303 \304=\203\301\305!\207\211\206\306\307\211W\2058\211\310 \2040\311\312!\2030\301\313!\210\210\211T\262\202\207" [window-minibuffer-p user-error "Cannot switch buffers in minibuffer window" window-dedicated-p t "Window is strongly dedicated to its buffer" 1 0 switch-to-next-buffer called-interactively-p interactive "No next buffer"] 6 (#$ . 143501) "p"])
#@185 In selected window switch to ARGth previous buffer.
Call `switch-to-prev-buffer' unless the selected window is the
minibuffer window or is dedicated to its buffer.

(fn &optional ARG)
(defalias 'previous-buffer #[256 "\300 \203	\301\302!\207\303 \304=\203\301\305!\207\211\206\306\307\211W\2058\211\310 \2040\311\312!\2030\301\313!\210\210\211T\262\202\207" [window-minibuffer-p user-error "Cannot switch buffers in minibuffer window" window-dedicated-p t "Window is strongly dedicated to its buffer" 1 0 switch-to-prev-buffer called-interactively-p interactive "No previous buffer"] 6 (#$ . 144114) "p"])
#@1632 Delete all windows showing BUFFER-OR-NAME.
BUFFER-OR-NAME may be a buffer or the name of an existing buffer
and defaults to the current buffer.

Interactively, prompt for the buffer.

The following non-nil values of the optional argument FRAME
have special meanings:

- t means consider all windows on the selected frame only.

- `visible' means consider all windows on all visible frames on
  the current terminal.

- 0 (the number zero) means consider all windows on all visible
  and iconified frames on the current terminal.

- A frame means consider all windows on that frame only.

Any other value of FRAME means consider all windows on all
frames.

Interactively, FRAME is the prefix argument, so you can
use \[universal-argument] 0 to specify all windows only on
the current terminal's frames.

If a frame's root window shows the buffer specified by
BUFFER-OR-NAME and is dedicated to that buffer and that frame
does not host the active minibuffer window and there is at least
one other frame on that frame's terminal, delete that frame.
Otherwise, do not delete a frame's root window if it shows the
buffer specified by BUFFER-OR-NAME and do not delete any frame's
main window showing that buffer either.  Rather, in any such
case, call `switch-to-prev-buffer' to show another buffer in that
window and make sure the window is no more dedicated to its
buffer.

If the buffer specified by BUFFER-OR-NAME is shown in a
minibuffer window, do nothing for that window.  For any window
that does not show that buffer, remove the buffer from that
window's lists of previous and next buffers.

(fn &optional BUFFER-OR-NAME FRAME)
(defalias 'delete-windows-on #[512 "\300!\204\301\202\301=\203\302\202\303\302\211#\211\205h\211@\304!=\203\\\305!\211\306=\203A\307!\203A\310\311!!\210\202X\211\301=\203N\312!\210\202X\313\302\"\210\314\315\"\210\210\202a\316\"\210A\266\202\202\262\207" [window-normalize-buffer t nil window-list-1 window-buffer window-deletable-p frame window-dedicated-p delete-frame window-frame delete-window set-window-dedicated-p switch-to-prev-buffer bury unrecord-window-buffer] 10 (#$ . 144740) "bDelete windows on (buffer):\nP"])
#@569 Replace BUFFER-OR-NAME with some other buffer in all windows showing it.
BUFFER-OR-NAME may be a buffer or the name of an existing buffer
and defaults to the current buffer.

When a window showing BUFFER-OR-NAME is dedicated, that window is
deleted.  If that window is the only window on its frame, the
frame is deleted too when there are other frames left.  If there
are no other frames left, some other buffer is displayed in that
window.

This function removes the buffer denoted by BUFFER-OR-NAME from
all window-local buffer lists.

(fn &optional BUFFER-OR-NAME)
(defalias 'replace-buffer-in-windows #[256 "\300!\301\302\211\303#\211\2057\211@\304!=\203+\305\303\211#\2040\306\302\"\210\307\310\"\210\2020\311\"\210A\266\202\202\262\207" [window-normalize-buffer window-list-1 nil t window-buffer window--delete set-window-dedicated-p switch-to-prev-buffer kill unrecord-window-buffer] 8 (#$ . 146938) "bBuffer to replace: "])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable quit-window-hook funcall function #[0 "\300\207" [nil] 1] "Hook run before performing any other actions in the `quit-window' command." :type hook :version "27.1" :group windows] 10)
#@1450 Quit WINDOW and deal with its buffer.
WINDOW must be a live window and defaults to the selected one.

According to information stored in WINDOW's `quit-restore' window
parameter either (1) delete WINDOW and its frame, (2) delete
WINDOW but leave its frame alone, (3) restore the buffer
previously shown in WINDOW, or (4) make WINDOW display some other
buffer.  If WINDOW is not deleted, reset its `quit-restore'
parameter to nil.  See Info node `(elisp) Quitting Windows' for
more details.

Optional second argument BURY-OR-KILL tells how to proceed with
the buffer of WINDOW.  The following values are handled:

nil means to not handle the buffer in a particular way.  This
  means that if WINDOW is not deleted by this function, invoking
  `switch-to-prev-buffer' will usually show the buffer again.

`append' means that if WINDOW is not deleted, move its buffer to
  the end of WINDOW's previous buffers so it's less likely that a
  future invocation of `switch-to-prev-buffer' will switch to it.
  Also, move the buffer to the end of the frame's buffer list.

`bury' means that if WINDOW is not deleted, remove its buffer
  from WINDOW'S list of previous buffers.  Also, move the buffer
  to the end of the frame's buffer list.  This value provides the
  most reliable remedy to not have `switch-to-prev-buffer' switch
  to this buffer again without killing the buffer.

`kill' means to kill WINDOW's buffer.

(fn &optional WINDOW BURY-OR-KILL)
(defalias 'quit-restore-window #[512 "\300\301\"\262\302!\303\304\"\305!\211@@\211=\203*A\205+A@\211\262=?\205+\211\266\202\306\211\204rA@\307=\204MA@\310=\203r\311!=\204r\3128=\203r\313\306\314=#\203r\315\3168!\203Z\317\3168!\210\202ZA@\211\262<\203F\320@!\203F\3128=\203F\3128\250\203\335\321!\203\245\3128\322!U?\202\256\3128\323!U?\203\335\3241\330\325\3128\321\n!\203\311\322\n!\202\315\323\n!Z\321\n\301\"#0\202\334\210\202\335\210\326\306\"\210\327@A@\3168$\210\330=\205\375\305!\236\262\203\331\332\305!\"\"\210\333\334\335!\"\"\210\211\203.\331\330\305\n!C\"\"\210\336\304\306#\210\315\3168!\203Z\317\3168!\210\202Z\336\304\306#\210\326\306\"\210\337\"\210\320!?\206t\314=\203m\340!\202t\205t\341!\207" [window-normalize-window t window-buffer window-parameter quit-restore window-prev-buffers nil frame window frame-root-window 3 window--delete kill window-live-p 2 select-window buffer-live-p window-combined-p window-total-height window-total-width (error) window-resize set-window-dedicated-p set-window-buffer-start-and-point append set-window-prev-buffers assq-delete-all set-window-next-buffers delq window-next-buffers set-window-parameter switch-to-prev-buffer kill-buffer bury-buffer-internal] 13 (#$ . 148171)])
#@433 Quit WINDOW and bury its buffer.
WINDOW must be a live window and defaults to the selected one.
With prefix argument KILL non-nil, kill the buffer instead of
burying it.

This calls the function `quit-restore-window' to delete WINDOW or
show some other buffer in it.  See Info node `(elisp) Quitting
Windows' for more details.

The functions in `quit-window-hook' will be run before doing
anything else.

(fn &optional KILL WINDOW)
(defalias 'quit-window #[512 "r\300\301!!q\210\302\303!\210)\304\203\305\202\306\"\207" [window-buffer window-normalize-window run-hooks quit-window-hook quit-restore-window kill bury] 5 (#$ . 150985) "P"])
#@434 Quit all windows showing BUFFER-OR-NAME.
BUFFER-OR-NAME may be a buffer or the name of an existing buffer
and defaults to the current buffer.  Optional argument KILL
non-nil means to kill BUFFER-OR-NAME.  KILL nil means to bury
BUFFER-OR-NAME.  Optional argument FRAME is handled as by
`delete-windows-on'.

This function calls `quit-window' on all candidate windows
showing BUFFER-OR-NAME.

(fn &optional BUFFER-OR-NAME KILL FRAME)
(defalias 'quit-windows-on #[768 "\300!\204\301\202\301=\203\302\202\303\302\211#\211\205>\211@\304!=\2032\305\"\210\2027\306\"\210A\266\202\202\262\207" [window-normalize-buffer t nil window-list-1 window-buffer quit-window unrecord-window-buffer] 10 (#$ . 151638) "bQuit windows on (buffer):\nP"])
#@456 Return number of pixels recoverable from height of window PARENT.
PARENT must be a vertical (horizontal if HORIZONTAL is non-nil)
window combination.  The return value is the sum of the pixel
heights of all non-fixed height child windows of PARENT divided
by their number plus 1.  If HORIZONTAL is non-nil, return the sum
of the pixel widths of all non-fixed width child windows of
PARENT divided by their number plus 1.

(fn PARENT &optional HORIZONTAL)
(defalias 'window--combination-resizable #[513 "\300!\301\211\203%\302\"\204T\262\303\304#\\\262\305!\262\202\211T\245\207" [window-child 0 window-size-fixed-p window-size t window-next-sibling] 9 (#$ . 152405)])
#@2295 Make a new window adjacent to WINDOW.
WINDOW must be a valid window and defaults to the selected one.
Return the new window which is always a live window.

Optional argument SIZE a positive number means make WINDOW SIZE
lines or columns tall.  If SIZE is negative, make the new window
-SIZE lines or columns tall.  If and only if SIZE is non-nil, its
absolute value can be less than `window-min-height' or
`window-min-width'; so this command can make a new window as
small as one line or two columns.  SIZE defaults to half of
WINDOW's size.

Optional third argument SIDE nil (or `below') specifies that the
new window shall be located below WINDOW.  SIDE `above' means the
new window shall be located above WINDOW.  In both cases SIZE
specifies the new number of lines for WINDOW (or the new window
if SIZE is negative) including space reserved for the mode and/or
header line.

SIDE t (or `right') specifies that the new window shall be
located on the right side of WINDOW.  SIDE `left' means the new
window shall be located on the left of WINDOW.  In both cases
SIZE specifies the new number of columns for WINDOW (or the new
window provided SIZE is negative) including space reserved for
fringes and the scrollbar or a divider column.

For compatibility reasons, SIDE `up' and `down' are interpreted
as `above' and `below'.  Any other non-nil value for SIDE is
currently handled like t (or `right').

PIXELWISE, if non-nil, means to interpret SIZE pixelwise.

If the variable `ignore-window-parameters' is non-nil or the
`split-window' parameter of WINDOW equals t, do not process any
parameters of WINDOW.  Otherwise, if the `split-window' parameter
of WINDOW specifies a function, call that function with all three
arguments and return the value returned by that function.

Otherwise, if WINDOW is part of an atomic window, "split" the
root of that atomic window.  The new window does not become a
member of that atomic window.

If WINDOW is live, properties of the new window like margins and
scrollbars are inherited from WINDOW.  If WINDOW is an internal
window, these properties as well as the buffer displayed in the
new window are inherited from the window selected on WINDOW's
frame.  The selected window is not changed by this function.

(fn &optional WINDOW SIZE SIDE PIXELWISE)
(defalias 'split-window #[1024 "\304!\262\204
\305\202 \306\267\202\307\202 \305\202 \202 \310\211\311>?\312!\313!\314\315\"\314	\316\"	\317\n\"	\247\205Q\320\321%\203]\322!\202a\323!\324\211\325	!\210\3262\270\n\204\366\321=\204\366\327!\203\216\330\326#\"\210\202\366\314\331\"\203\267\332!\211\262\203\267=\204\267\330\326\315$\"\210\202\366	\333=\204\314\314\316\"\203\314\334\335!\210\202\366	\333=\204\366\336!\203\343\314\336!\316\"\204\364\337!\203\366\314\337!\316\"\203\366\321	\321=\203\203\340V\203\321\205\341\321#	\2054\314\316\"\204'	\333=?\2054\321=?\2054\342\f\"\341
\321#\324\211\211	\204t\203^\343\324\321$Z\344\"^\345 ]\202a\346\245\262\204\211\n\347
\"_\262\202\211	\340Y\203\204\nZ\262\202\211	[\262	\204\356\203\276\350\\[\324\321%\204^\350\\[\351\211\262\f\321%\204^\334\352\"\210\202^\353\n\343\324\321$#V\203^\353\n\343\351\211\262\321$#V\203^\334\352\"\210\202^	\340Y\203	Y\204\354\"W\203\334\352\"\210\202^\203@\350\\[\324\321%\204^\350\\[\351\211\262\f\321%\204^\334\352\"\210\202^\354\"W\204XZ\354\"W\203^\334\352\"\210\355\"\210\321=\206r\342\"?\262	\203\212\356!\203\204\202\206\245\202\253\203\222\357\202\253\203\243\360\361\321#T\245\202\253\362\"\363\245\262\203\340\364[\324%\210\365Z\366!\211\203\333\367\362\"_\"\210\370!\262\202\304\266\202\371Z\"\210\372[\n$\210\367\203\376\373\202\362\"Z\"\210\374$\375\"\210	\376\267\202\205\f\203'\f\202<\377\267\202:\201@\202<\201A\202<\201B\316#\210\203Z\314\316\"\203Z\201B\313!\316#\210\210\202\205\314\331\"\204o\201B\331\321#\210\203}\201B\313!\331\321#\210\201B\331\321#\210\314\201C\"\211\203\232\201B\201C#\210\210\204\247\201D!\210\201E!\210\325!\210\211\262\266\2060*\207" [window-combination-limit window-combination-resize ignore-window-parameters window-resize-pixelwise window-normalize-window below #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (up 19 down 23 below 27 above 27 right 27 left 27)) above right (below above) window-frame window-parent window-parameter split-window window-side frame-char-size window--size-to-pixel t frame-right-divider-width frame-bottom-divider-width nil window--check done functionp throw window-atom window-atom-root side error "Cannot split side window or parent of side window" window-prev-sibling window-next-sibling 0 window-size window-combined-p window-min-size window--combination-resizable window-min-pixel-size 2 round window-sizable-p preserved "Window %s too small for splitting" + window-safe-min-pixel-size window--resize-reset float 0.5 1.0 window-combinations window-normal-size 2.0 window--resize-child-windows 1.0 window-child set-window-new-normal window-right set-window-new-pixel window--resize-this-window 1.0 split-window-internal window--pixel-to-total #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (side 797 atom 862)) #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (above 814 below 820)) top bottom set-window-parameter min-margins window--sanitize-window-sizes run-window-scroll-functions] 29 (#$ . 153099)])
#@252 Make a new window adjacent to WINDOW.
This function is like `split-window' but does not signal an error
when WINDOW cannot be split.

For the meaning of all arguments see the documentation of
`split-window'.

(fn &optional WINDOW SIZE SIDE PIXELWISE)
(defalias 'split-window-no-error #[1024 "\3001\f\301$0\207\210\302\207" [(error) split-window nil] 9 (#$ . 158885)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable split-window-keep-point funcall function #[0 "\300\207" [t] 1] "If non-nil, \\[split-window-below] preserves point in the new window.\nIf nil, adjust point in the two windows to minimize redisplay.\nThis option applies only to `split-window-below' and functions\nthat call it.  The low-level `split-window' function always keeps\nthe original point in both windows." :type boolean :group windows] 8)
#@675 Split the selected window into two windows, one above the other.
The selected window is above.  The newly split-off window is
below and displays the same buffer.  Return the new window.

If optional argument SIZE is omitted or nil, both windows get the
same height, or close to it.  If SIZE is positive, the upper
(selected) window gets SIZE lines.  If SIZE is negative, the
lower (new) window gets -SIZE lines.

If the variable `split-window-keep-point' is non-nil, both
windows get the same value of point as the selected window.
Otherwise, the window starts are chosen so as to minimize the
amount of redisplay; this is convenient on slow terminals.

(fn &optional SIZE)
(defalias 'split-window-below #[256 "\302 \303 \205\304!\305\211\211\211\203$\306W\203$[W\203$\307\310!\210\311\305\"\262	\204\216r\312 q\210\212\313 b\210\314\315 !\262\316`\"\210`\303!V\203Q\317`\"\210\315 U\203_\320\262\314\321!\210`\262)\203t\211`X\203t\317S\"\210\203\215\313!X\203\215\317\"\203\215\322!\210)\323\324\"\211\203\235\325\324#\210\210\207" [window-min-height split-window-keep-point selected-window window-point prefix-numeric-value nil 0 error "Size of new window too small" split-window window-buffer window-start vertical-motion window-height set-window-start set-window-point t -1 select-window window-parameter quit-restore set-window-parameter] 13 (#$ . 159752) "P"])
(defalias 'split-window-vertically 'split-window-below)
#@614 Split the selected window into two side-by-side windows.
The selected window is on the left.  The newly split-off window
is on the right and displays the same buffer.  Return the new
window.

If optional argument SIZE is omitted or nil, both windows get the
same width, or close to it.  If SIZE is positive, the left-hand
(selected) window gets SIZE columns.  If SIZE is negative, the
right-hand (new) window gets -SIZE columns.  Here, SIZE includes
the width of the window's scroll bar; if there are no scroll
bars, it includes the width of the divider column to the window's
right, if any.

(fn &optional SIZE)
(defalias 'split-window-right #[256 "\301 \205	\302!\303\203\304W\203[W\203\305\306!\210\307\303\310#\262\311\312\"\211\2034\313\312#\210\210\207" [window-min-width selected-window prefix-numeric-value nil 0 error "Size of new window too small" split-window t window-parameter quit-restore set-window-parameter] 9 (#$ . 161229) "P"])
(defalias 'split-window-horizontally 'split-window-right)
#@137 Subroutine of `balance-windows-1'.
WINDOW must be a vertical combination (horizontal if HORIZONTAL
is non-nil).

(fn WINDOW HORIZONTAL)
(defalias 'balance-windows-2 #[514 "\203\301\202\f\302\"\303!\211\304\305!\211\306\211\211\211\211\211	\203M\307\n\"\203?\310\311#Z\262\312\n\313\"\210\202DT\262	\314\n!\262\n\202\311\262\203\277\304V\203\277	\245\262\306\262\n\262\n	\203P\204P\315\n!\204\266\310\n\311#\262Z\262\316\n\306\311%\262\317\n\\\"\210U\204\266\320#\262S\262	\311\262\312\n\321\"\210\314\n!\262\n\202i\304V\203\374	\246\262\n\262\n	\203\374\211\304V\203\374\315!\204\363\317\n^\311#\210\211\fZ\262\314\n!\262\n\202\321\n\262\n	\203-\211\304V\203-\322\n!\313=\204$\317\n^\311#\210\211\fZ\262\314\n!\262\n\202\n\262\n	\205g\312\n\322\f!\313=\203L\310\f\311#\202P\305\f!\323!\245\"\210\324\n\"\210\314\n!\262\n\2021\207" [window-resize-pixelwise 1 frame-char-size window-child 0 window-new-pixel nil window-size-fixed-p window-size t set-window-new-normal ignore window-right window--resize-child-windows-skip-p window-sizable set-window-new-pixel - skip window-new-normal float balance-windows-1] 20 (#$ . 162260)])
#@68 Subroutine of `balance-windows'.

(fn WINDOW &optional HORIZONTAL)
(defalias 'balance-windows-1 #[513 "\300!\2054\300!\301\"\203\302\"\2022\303!\2050\304\"\210\305\"\210\306!\262\202\262\262\207" [window-child window-combined-p balance-windows-2 window-new-pixel set-window-new-pixel balance-windows-1 window-right] 7 (#$ . 163524)])
#@335 Balance the sizes of windows of WINDOW-OR-FRAME.
WINDOW-OR-FRAME is optional and defaults to the selected frame.
If WINDOW-OR-FRAME denotes a frame, balance the sizes of all
windows of that frame.  If WINDOW-OR-FRAME denotes a window,
recursively balance the sizes of all child windows of that
window.

(fn &optional WINDOW-OR-FRAME)
(defalias 'balance-windows #[256 "\211\203\n\300!\203\301!\202$\302!\204\303!\203 \211\202$\304\305\"\306!\307\306!!\210\310!\210\311!\203?\312!\210\313!\210\307\306!\314\"\210\310\314\"\210\311\314\"\205[\312\314\"\210\313\314\"\207" [frame-live-p frame-root-window window-live-p window-child error "Not a window or frame %s" window-frame window--resize-reset balance-windows-1 window--resize-apply-p window-resize-apply window--pixel-to-total t] 6 (#$ . 163888) nil])
#@180 Return t if WINDOW cannot be resized in DIRECTION.
WINDOW defaults to the selected window.  DIRECTION can be
nil (i.e. any), `height' or `width'.

(fn &optional WINDOW DIRECTION)
(defalias 'window-fixed-size-p #[512 "r\301!q\210\302\300!\205\205\211\205\211B\303\235?)\207" [window-size-fixed window-buffer boundp ((height . width) (width . height))] 4 (#$ . 164725)])
#@137 Factor by which the window area should be over-estimated.
This is used by `balance-windows-area'.
Changing this globally has no effect.
(defvar window-area-factor 1 (#$ . 165110))
(make-variable-buffer-local 'window-area-factor)
#@164 Wrapper around `window-resize' with error checking.
Arguments WINDOW, DELTA and HORIZONTAL are passed on to that function.

(fn WINDOW DELTA HORIZONTAL PIXELWISE)
(defalias 'balance-windows-area-adjust #[1028 "\300!\301Y\205&\3021\303$\210\304\211\2620\202\"\210\305\245\211\262\210\202\207" [abs 1 (error) adjust-window-trailing-edge 0 2] 9 (#$ . 165346)])
#@136 Make all visible windows the same area (approximately).
See also `window-area-factor' to change the relative size of
specific buffers.
(defalias 'balance-windows-area #[0 "\301\211\211\302\303\304\305\306\303\307\"\"\"\303\303\310W\205T\262T\262\211\203\211@\211\262\311!\262\312!\204*\313!@\313!@W\314\315\303#\315\316	#\317\320\321	!\"#\314\315\303	#\315\316\n#\317\320\321!\"#Z\317\320\321!\"\317\320\321!\"]\245\203\216\315\303#\315\303	#\\\202\234\315\316#\315\316	#\\\245\211\301U\203\256\322_\310_\245\262\211\301U\203\323\301U\204\323\f\\\245\262\211\323V\204\316\211\324W\203\323\211\310\245\262\211\301U\203\342\\\262\f\202\325$\210\313!B\211\n\235\204\211\nB\262\n\301\262\301\262
\210\266A\266\202\202!\210\202\207" [window-resize-pixelwise 0 delq nil mapcar #[257 "\300!?\205\211\207" [window-fixed-size-p] 3 "\n\n(fn WIN)"] window-list nomini 2 next-window window-fixed-size-p window-pixel-edges * window-size t buffer-local-value window-area-factor window-buffer 3 1 -1 balance-windows-area-adjust] 18 (#$ . 165725) nil])
#@73 Helper function for `window-state-get'.

(fn WINDOW &optional WRITABLE)
(defalias 'window--state-get-1 #[513 "\301!\203\n\302\202\303!\203\304\202\305\306!\307 =\310!\205,\311\312\313\314\315	!\"\"\310!\205=\311\312\313\316\317\n!\"\"\320\321	!?\205H\322\323\324!B\325\326\f!B\327\330
!B\331\332!B\333\334!B\335\334\336\"B\257\310!?\205~\337\340\f!BC\341\f!\312\211\203\257\211@\211@\236A\211\203\247\203\236\211\342=\203\247@ABB\262\210A\266\202\202\204\210\343\236A\211\203\321
\203\303\211\342=\203\321\343\236\204\321\343BB\262\210\211\205\332\344BC\266\202	\205V\345
!\346!\347\203\366\350
!\202\370\f\351
B\352\353!B\354\355!B\356\357!B\360\361!B\362\363!B\364\365!B\366\203+\202:rq\210\367\f\370\371\"\")B\372\203F\202Prq\210\367\f!)B\257C\266\202\205m\373
\203i\313\374\"\202k	BC\205\204\375\203\200\313\376\"\202\202	BC&B\377>\205\266\312\201@	!\262	\203\262\201A		\"B\262\201B	!\262	\202\226\211\237\262\320\"\207" [window-persistent-parameters window-top-child vc window-left-child hc leaf window-buffer selected-window window-live-p delq nil mapcar #[257 "\300!\205\211\207" [buffer-live-p] 3 "\n\n(fn BUFFER)"] window-next-buffers #[257 "\300@!\205\211\207" [buffer-live-p] 3 "\n\n(fn ENTRY)"] window-prev-buffers append window-next-sibling ((last . t)) pixel-width window-pixel-width pixel-height window-pixel-height total-width window-total-width total-height window-total-height normal-height window-normal-size normal-width t combination-limit window-combination-limit window-parameters writable clone-of parameters window-point window-start buffer buffer-name selected hscroll window-hscroll fringes window-fringes margins window-margins scroll-bars window-scroll-bars vscroll window-vscroll dedicated window-dedicated-p point copy-marker buffer-local-value window-point-insertion-type start next-buffers #[257 "\300!\207" [buffer-name] 3 "\n\n(fn BUFFER)"] prev-buffers #[257 "\300@!\301A@!\301\3028!E\207" [buffer-name marker-position 2] 6 "\n\n(fn ENTRY)"] (vc hc) window-child window--state-get-1 window-right] 30 (#$ . 166863)])
#@816 Return state of WINDOW as a Lisp object.
WINDOW can be any window and defaults to the root window of the
selected frame.

Optional argument WRITABLE non-nil means do not use markers for
sampling `window-point' and `window-start'.  Together, WRITABLE
and the variable `window-persistent-parameters' specify which
window parameters are saved by this function.  WRITABLE should be
non-nil when the return value shall be written to a file and read
back in another session.  Otherwise, an application may run into
an `invalid-read-syntax' error while attempting to read back the
value from file.

The return value can be used as argument for `window-state-put'
to put the state recorded here into an arbitrary window.  The
value can be also stored on disk and read back in a new session.

(fn &optional WINDOW WRITABLE)
(defalias 'window-state-get #[512 "\203\300!\203\202\301\302\"\202\303 \262\304\305!B\306\305\307\"B\310\305\311\307#B\312\305\307\211#B\313\305\311\314#B\315\305\307\314#B\316\305	\311\211\307$B\317\305\n\307\311\307$B\320\305\311\307\211$B\321\305\f\307\211\211$B\322\305
\311\314\307$B\323\305\307\314\307$B\257\f\324\"B\207" [window-valid-p error "%s is not a live or internal window" frame-root-window min-height window-min-size min-width t min-height-ignore nil min-width-ignore min-height-safe safe min-width-safe min-pixel-height min-pixel-width min-pixel-height-ignore min-pixel-width-ignore min-pixel-height-safe min-pixel-width-safe window--state-get-1] 19 (#$ . 169079)])
#@41 Helper variable for `window-state-put'.
(defvar window-state-put-list nil (#$ . 170616))
#@41 Helper variable for `window-state-put'.
(defvar window-state-put-stale-windows nil (#$ . 170711))
#@94 Helper function for `window-state-put'.

(fn STATE &optional WINDOW IGNORE TOTALS PIXELWISE)
(defalias 'window--state-put-1 #[1281 "@A\262\211\304\267\202BB\211\202\211\305=\306#\307\310	\236A\311\211\n\211\205\371\211@\211@\312>\203\362\313\236\203D\311\262\202\345	\203n\203^\203W\314\202X\315\236A\202\200\203g\316\202h\317\236A\202\200\320\203z\321\202{\322\236A_!\262\203\234\n\n\203\227\323\324!!\202\230\325_\202\255\n\203\253\326\324!!\202\254\325_]\262\327\f[	\330
%\203\316\331\f	\f$\262\311\202\324\332\333
\"\210\203\345\311\262\334\f!
BB\335


$\210\262\fA\266\202\202+\262)\266\205\202\311\207" [window-state-put-list window-combination-limit window-safe-min-width window-safe-min-height #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (leaf 12 vc 23 hc 23)) hc window-size t combination-limit nil (leaf vc hc) last pixel-width pixel-height total-width total-height round normal-width normal-height frame-char-width window-frame 1 frame-char-height window-sizable-p safe split-window-no-error error "Cannot resize window %s" window-parent window--state-put-1] 19 (#$ . 170815)])
#@64 Helper function for `window-state-put'.

(fn IGNORE PIXELWISE)
(defalias 'window--state-put-2 #[514 "\211\205!\211@\211@\303\236A\304\236A\305\236A\306\236A\307\236A\203)\310\"\210\311!\211\203B\211@\312@\313#\210A\266\202\202-\210\203_\211\203^\211@\312@A#\210A\266\202\202H\210\203\314@!A\203\frq\210\315\"\210\316\317\236A\"\210\320\321	\322\236AB\"\210\323\236A\324	@A#\266\325\236A\326	@\3278\3308\3318\3328&\266\333\334\236A\"\210	\335>\204\312\336!\203\n\203\323\337\202\324\340	\236A\341	\313#Z\313\342	\313\211\211\211\211&\203\374\343	\313\211%\210)\210\2027\344\313$\211\341\n\313#Z\211\345V\2035\342\n\313\313\211\211&\2035\343\n\313%\210\266	\346>\204E\336\347\"\203|\n\203N\350\202O\351	\236A\341	\347#Z\313\342	\347\313\211\211\211&\203w\343	\347\313%\210)\210\202\262\344\347$\211\341\n\347#Z\211\345V\203\260\342\n\347\313\211\211&\203\260\343\n\347%\210\266\352\353\236A\"\210\3541\325\355\356\236A\357#\210\360\361\236A\"0\202\331\210\202\332\210\362\236A\203\346\363!\210\203\367\364\365\313\366\367	\"\"\"\210\203\370\365\313\366\371\"\"\"\210)\202\372!\210\nB\266\266A\266\202\202\207" [window-state-put-list window-size-fixed window-state-put-stale-windows combination-limit parameters buffer next-buffers prev-buffers set-window-combination-limit window-parameters set-window-parameter nil get-buffer set-window-buffer set-window-hscroll hscroll apply set-window-fringes fringes margins set-window-margins scroll-bars set-window-scroll-bars 2 3 5 6 set-window-vscroll vscroll (t height) window-preserved-size pixel-height total-height window-size window--resizable-p window-resize window-min-size 0 (t width) t pixel-width total-width set-window-dedicated-p dedicated (error) set-window-start start noforce set-window-point point selected select-window set-window-next-buffers delq mapcar #[257 "\300!\262\301!\205\f\211\207" [get-buffer buffer-live-p] 3 "\n\n(fn BUFFER)"] set-window-prev-buffers #[257 "\300@!A@\3018\302!\2051\303!\203\202 \304 \223\303!\203*\2020\304 \223E\207" [get-buffer 2 buffer-live-p markerp make-marker] 9 "\n\n(fn ENTRY)"] switch-to-prev-buffer] 23 (#$ . 172048)])
#@593 Put window state STATE into WINDOW.
STATE should be the state of a window returned by an earlier
invocation of `window-state-get'.  Optional argument WINDOW must
specify a valid window.  If WINDOW is not a live window,
replace WINDOW by a new live window created on the same frame.
If WINDOW is nil, create a new window before putting STATE into it.

Optional argument IGNORE non-nil means ignore minimum window
sizes and fixed size restrictions.  IGNORE equal `safe' means
windows can get as small as `window-safe-min-height' and
`window-safe-min-width'.

(fn STATE &optional WINDOW IGNORE)
(defalias 'window-state-put #[769 "\302\303!\204,\211\203\3042\305\306\"0\202\307 \262\310\"\210\311!\312!\210\262\210\313\302\"\210\314!@\315\236A\205A\316\236A\211\203]\317!\315\236AU\203]\320!\316\236AU\206r\321!\322\236AU\205r\323!\324\236AU\203z\325\202{\326\236A\203\206\327\202\207\330\236A\2042\331	\302#V\204\246\211\331	\332#V\2032\203*\203\263\333\202\264\334\236A\211\262\2032\203\305\335\202\306\336\236A\211\262\2032\331	\302#V\204\347\211\331	\332#V\2032\337=\203*\203\366\340\202\367\341\236A\211\262\2032\203\342\202	\343\236A\211\262\2032\331	\302#V\204*\211\331	\332#V\2032\344\345	\"\202\204A\262	\302\346\347!r\211q\210\350\351\352\353\354!\355\"\356$\216\357	p\"\210\360\n\n\302	%\210\361\"\210*\210\203\200\211A\242\362!\332=\203|\312!\210\210\202g\363!\207" [window-state-put-stale-windows window-state-put-list nil window-live-p live walk-window-subtree #[257 "\300!\205\301\302\"?\205\303\304\"\207" [window-live-p window-parameter window-side throw live] 4 "\n\n(fn WINDOW)"] selected-window delete-other-windows-internal split-window delete-window set-window-dedicated-p window-frame pixel-width pixel-height window-pixel-width window-pixel-height window-total-width total-width window-total-height total-height min-pixel-height min-height min-pixel-width min-weight window-size t min-pixel-height-ignore min-height-ignore min-pixel-width-ignore min-width-ignore safe min-pixel-height-safe min-height-safe min-pixel-width-safe min-width-safe error "Window %s too small to accommodate state" generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-window-buffer window--state-put-1 window--state-put-2 window-deletable-p window--check] 16 (#$ . 174400)])
#@71 Return all buffers saved to the given window state STATE.

(fn STATE)
(defalias 'window-state-buffers #[257 "\300\236A@\301\302@:\203AC\202A\"\203 B\202!\211\207" [buffer mapcan #[257 "\211@\300>\205\n\301!\207" [(leaf vc hc) window-state-buffers] 3 "\n\n(fn ITEM)"]] 5 (#$ . 176889)])
#@657 Swap the states of live windows WINDOW-1 and WINDOW-2.
WINDOW-1 must specify a live window and defaults to the selected
one.  WINDOW-2 must specify a live window and defaults to the
window following WINDOW-1 in the cyclic ordering of windows,
excluding minibuffer windows and including live windows on all
visible frames.

Optional argument SIZE non-nil means to try swapping the sizes of
WINDOW-1 and WINDOW-2 as well.  A value of `height' means to swap
heights only, a value of `width' means to swap widths only, while
t means to swap both widths and heights, if possible.  Frames are
not resized by this function.

(fn &optional WINDOW-1 WINDOW-2 SIZE)
(defalias 'window-swap-states #[768 "\300\301\"\262\203\302!\204\303\304\"\210\202\305\306\307#\262=?\205\215\211\310>\311>\312!\2058\313\301\"\205A\314\301\"\312!\205N\313\301\"\205X\314	\301\"\315\211\316
\301#\210\316\301#\210r\317
!q\210\320ed\"\211\203\251\211@\321\322\"\211\203\241\211=\203\223\323\322#\210\202\241\211=\203\241\323\322#\210\210A\266\202\202t\210)\317
!\317
!=\204\371r\317\f!q\210\320ed\"\211\203\367\211@\321\322\"\211\203\357\211=\203\341\323\322#\210\202\357\211=\203\357\323\322#\210\210A\266\202\202\302\210)\n\205\213\313
\301\"\211\262U\204\324
Z\301\211\211%\210\313\f\301\"\211\262U\204E\325
\301\"\262\326
\301\211#\210\324\fZ\301\211\211%\210\326
\301#\210\314
\301\"\211\262U\204]\324
Z\315\301\211%\210\314\f\301\"\211\262U?\205\213\325
!\262\326
\315\301#\210\324\fZ\315\301\211%\210\326
\315#\266\212\207" [window-normalize-window t window-live-p error "%s is not a live window" next-window nomini visible (t height) (t width) window-state-get window-text-width window-text-height nil window-state-put window-buffer overlays-in overlay-get window overlay-put window-resize-no-error window-preserved-size window-preserve-size] 20 (#$ . 177197) nil])
#@1133 Record information for window used by `display-buffer'.
WINDOW is the window used for or created by a buffer display
action function.  BUFFER is the buffer to display.  Note that
this function must be called before BUFFER is explicitly made
WINDOW's buffer (although WINDOW may show BUFFER already).

TYPE specifies the type of the calling operation and must be one
of the symbols `reuse' (meaning that WINDOW exists already and
will be used for displaying BUFFER), `window' (WINDOW was created
on an already existing frame) or `frame' (WINDOW was created on a
new frame).

This function installs or updates the `quit-restore' parameter of
WINDOW.  The `quit-restore' parameter is a list of four elements:
The first element is one of the symbols `window', `frame', `same'
or `other'.  The second element is either one of the symbols
`window' or `frame' or a list whose elements are the buffer
previously shown in the window, that buffer's window start and
window point, and the window's height.  The third element is the
window selected at the time the parameter was created.  The
fourth element is BUFFER.

(fn TYPE WINDOW BUFFER)
(defalias 'display-buffer-record-window #[771 "\301\267\202{\302!=\2032\303\304\"\211:\2051\211\305\240\210\306 =\206'\3078=?\2051\211AA\306 \240\207r\302!q\210\310\304\311p\312!\313\314	!\"\315	!\203V\316	!\202Z\317	!F\306 F#)\207\310\304\320\211\306 F#\207\310\304\321\211\306 F#\207\322\207" [window-point-insertion-type #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (reuse 6 window 99 frame 111)) window-buffer window-parameter quit-restore same selected-window 2 set-window-parameter other window-start copy-marker window-point window-combined-p window-total-height window-total-width window frame nil] 12 (#$ . 179178)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\301\313\314#\210\300\315\302\303\316DD\317\306\320\310\321&\210\300\322\302\303\323DD\324\306\303\310\321&\210\300\325\302\303\326DD\327\306\330\310\311\310\321&	\210\312\325\313\314#\210\331\325\332\333#\210\300\334\302\303\335DD\336\306\337\310\311\310\321&	\210\312\334\313\314#\210\331\334\332\333#\207" [custom-declare-variable display-buffer-function funcall function #[0 "\300\207" [nil] 1] "If non-nil, function to call to handle `display-buffer'.\nIt will receive two args, the buffer and a flag which if non-nil\nmeans that the currently selected window is not acceptable.  It\nshould choose or create a window, display the specified buffer in\nit, and return the window.\n\nThe specified function should call `display-buffer-record-window'\nwith corresponding arguments to set up the quit-restore parameter\nof the window used." :type (choice (const nil) (function :tag "function")) :group windows make-obsolete-variable display-buffer-alist "24.3" pop-up-frame-alist #[0 "\300\207" [nil] 1] "Alist of parameters for automatically generated new frames.\nIf non-nil, the value you specify here is used by the default\n`pop-up-frame-function' for the creation of new frames.\n\nSince `pop-up-frame-function' is used by `display-buffer' for\nmaking new frames, any value specified here by default affects\nthe automatic generation of new frames via `display-buffer' and\nall functions based on it.  The behavior of `make-frame' is not\naffected by this variable." (repeat (cons :format "%v" (symbol :tag "Parameter") (sexp :tag "Value"))) frames pop-up-frame-function #[0 "\300\207" [#[0 "\301!\207" [pop-up-frame-alist make-frame] 2]] 1] "Function used by `display-buffer' for creating a new frame.\nThis function is called with no arguments and should return a new\nframe.  The default value calls `make-frame' with the argument\n`pop-up-frame-alist'." special-display-buffer-names #[0 "\300\207" [nil] 1] "List of names of buffers that should be displayed specially.\nDisplaying a buffer with `display-buffer' or `pop-to-buffer', if\nits name is in this list, displays the buffer in a way specified\nby `special-display-function'.  `special-display-popup-frame'\n(the default for `special-display-function') usually displays\nthe buffer in a separate frame made with the parameters specified\nby `special-display-frame-alist'.  If `special-display-function'\nhas been set to some other function, that function is called with\nthe buffer as first, and nil as second argument.\n\nAlternatively, an element of this list can be specified as\n(BUFFER-NAME FRAME-PARAMETERS), where BUFFER-NAME is a buffer\nname and FRAME-PARAMETERS an alist of (PARAMETER . VALUE) pairs.\n`special-display-popup-frame' will interpret such pairs as frame\nparameters when it creates a special frame, overriding the\ncorresponding values from `special-display-frame-alist'.\n\nAs a special case, if FRAME-PARAMETERS contains (same-window . t)\n`special-display-popup-frame' displays that buffer in the\nselected window.  If FRAME-PARAMETERS contains (same-frame . t),\nit displays that buffer in a window on the selected frame.\n\nIf `special-display-function' specifies some other function than\n`special-display-popup-frame', that function is called with the\nbuffer named BUFFER-NAME as first, and FRAME-PARAMETERS as second\nargument.\n\nFinally, an element of this list can be also specified as\n(BUFFER-NAME FUNCTION OTHER-ARGS).  In that case,\n`special-display-popup-frame' will call FUNCTION with the buffer\nnamed BUFFER-NAME as first argument, and OTHER-ARGS as the\nsecond.\n\nAny alternative function specified here is responsible for\nsetting up the quit-restore parameter of the window used.\n\nIf this variable appears \"not to work\", because you added a\nname to it but the corresponding buffer is displayed in the\nselected window, look at the values of `same-window-buffer-names'\nand `same-window-regexps'.  Those variables take precedence over\nthis one.\n\nSee also `special-display-regexps'." (repeat (choice :tag "Buffer" :value #1="" (string :format "%v") (cons :tag "With parameters" :format "%v" :value (#1#) (string :format "%v") (repeat :tag "Parameters" (cons :format "%v" (symbol :tag "Parameter") (sexp :tag "Value")))) (list :tag "With function" :format "%v" :value (#1#) (string :format "%v") (function :tag "Function") (repeat :tag "Arguments" (sexp))))) put risky-local-variable t special-display-regexps #[0 "\300\207" [nil] 1] "List of regexps saying which buffers should be displayed specially.\nDisplaying a buffer with `display-buffer' or `pop-to-buffer', if\nany regexp in this list matches its name, displays it specially\nusing `special-display-function'.  `special-display-popup-frame'\n(the default for `special-display-function') usually displays\nthe buffer in a separate frame made with the parameters specified\nby `special-display-frame-alist'.  If `special-display-function'\nhas been set to some other function, that function is called with\nthe buffer as first, and nil as second argument.\n\nAlternatively, an element of this list can be specified as\n(REGEXP FRAME-PARAMETERS), where REGEXP is a regexp as above and\nFRAME-PARAMETERS an alist of (PARAMETER . VALUE) pairs.\n`special-display-popup-frame' will then interpret these pairs as\nframe parameters when creating a special frame for a buffer whose\nname matches REGEXP, overriding the corresponding values from\n`special-display-frame-alist'.\n\nAs a special case, if FRAME-PARAMETERS contains (same-window . t)\n`special-display-popup-frame' displays buffers matching REGEXP in\nthe selected window.  (same-frame . t) in FRAME-PARAMETERS means\nto display such buffers in a window on the selected frame.\n\nIf `special-display-function' specifies some other function than\n`special-display-popup-frame', that function is called with the\nbuffer whose name matched REGEXP as first, and FRAME-PARAMETERS\nas second argument.\n\nFinally, an element of this list can be also specified as\n(REGEXP FUNCTION OTHER-ARGS).  `special-display-popup-frame'\nwill then call FUNCTION with the buffer whose name matched\nREGEXP as first, and OTHER-ARGS as second argument.\n\nAny alternative function specified here is responsible for\nsetting up the quit-restore parameter of the window used.\n\nIf this variable appears \"not to work\", because you added a\nname to it but the corresponding buffer is displayed in the\nselected window, look at the values of `same-window-buffer-names'\nand `same-window-regexps'.  Those variables take precedence over\nthis one.\n\nSee also `special-display-buffer-names'." (repeat (choice :tag "Buffer" :value #1# (regexp :format "%v") (cons :tag "With parameters" :format "%v" :value (#1#) (regexp :format "%v") (repeat :tag "Parameters" (cons :format "%v" (symbol :tag "Parameter") (sexp :tag "Value")))) (list :tag "With function" :format "%v" :value (#1#) (regexp :format "%v") (function :tag "Function") (repeat :tag "Arguments" (sexp)))))] 10)
#@400 Return non-nil if a buffer named BUFFER-NAME gets a special frame.
More precisely, return t if `special-display-buffer-names' or
`special-display-regexps' contain a string entry equaling or
matching BUFFER-NAME.  If `special-display-buffer-names' or
`special-display-regexps' contain a list entry whose car equals
or matches BUFFER-NAME, the return value is the cdr of that
entry.

(fn BUFFER-NAME)
(defalias 'special-display-p #[257 "\303\235\203\304\202n\305\"\211\262\203\211A\202n\3062n	\211\205k\211@\211;\203B\211\303\304\307#)\266\203\203d\310\306\304\"\210\202d\211:\203d\211@;\203d\211@\303\304\307#)\266\203\203d\310\306A\"\210A\266\202\202\2620\207" [special-display-buffer-names special-display-regexps inhibit-changing-match-data nil t assoc found string-match throw] 11 (#$ . 188057)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\312\301\313\314#\207" [custom-declare-variable special-display-frame-alist funcall function #[0 "\300\207" [((height . 14) (width . 80) (unsplittable . t))] 1] "Alist of parameters for special frames.\nSpecial frames are used for buffers whose names are listed in\n`special-display-buffer-names' and for buffers whose names match\none of the regular expressions in `special-display-regexps'.\n\nThis variable can be set in your init file, like this:\n\n  (setq special-display-frame-alist \\='((width . 80) (height . 20)))\n\nThese supersede the values given in `default-frame-alist'." :type (repeat (cons :format "%v" (symbol :tag "Parameter") (sexp :tag "Value"))) :group frames make-obsolete-variable display-buffer-alist "24.3"] 8)
#@697 Pop up a frame displaying BUFFER and return its window.
If BUFFER is already displayed in a visible or iconified frame,
raise that frame.  Otherwise, display BUFFER in a new frame.

Optional argument ARGS is a list specifying additional
information.

If ARGS is an alist, use it as a list of frame parameters.  If
these parameters contain (same-window . t), display BUFFER in
the selected window.  If they contain (same-frame . t), display
BUFFER in a window of the selected frame.

If ARGS is a list whose car is a symbol, use (car ARGS) as a
function to do the work.  Pass it BUFFER as first argument, and
pass the elements of (cdr ARGS) as the remaining arguments.

(fn BUFFER &optional ARGS)
(defalias 'special-display-popup-frame #[513 "\211\203\211@9\203\305@A#\207\306\307\"\211\2032\310!\311!\210\312!\210\313\314#\210\262\206\232\315\236A\203N\3161I\317\320\321#\210\322 0\202K\210\320\206\232\323\236A\204\\\315\236A\203k\321\320\211\320\324!,\206\232rq\210\325\326\f\"!)\327!\313\330#\210\331!=\204\223\332\"\210\333\320\"\210\334\321\"\210\262\207" [pop-up-windows pop-up-frames special-display-buffer-names special-display-regexps special-display-frame-alist apply get-buffer-window 0 window-frame make-frame-visible raise-frame display-buffer-record-window reuse same-window (error) switch-to-buffer nil t selected-window same-frame display-buffer make-frame append frame-selected-window frame window-buffer set-window-buffer set-window-prev-buffers set-window-dedicated-p] 10 (#$ . 189695)])
(byte-code "\300\301\302\303\304DD\305\306\303\307\310&\210\311\301\312\313#\210\300\314\302\303\315DD\316\306\317\307\320&\210\300\321\302\303\322DD\323\306\324\307\320&\207" [custom-declare-variable special-display-function funcall function #[0 "\300\207" [special-display-popup-frame] 1] "Function to call for displaying special buffers.\nThis function is called with two arguments - the buffer and,\noptionally, a list - and should return a window displaying that\nbuffer.  The default value usually makes a separate frame for the\nbuffer using `special-display-frame-alist' to specify the frame\nparameters.  See the definition of `special-display-popup-frame'\nfor how to specify such a function.\n\nA buffer is special when its name is either listed in\n`special-display-buffer-names' or matches a regexp in\n`special-display-regexps'.\n\nThe specified function should call `display-buffer-record-window'\nwith corresponding arguments to set up the quit-restore parameter\nof the window used." :type :group frames make-obsolete-variable display-buffer-alist "24.3" same-window-buffer-names #[0 "\300\207" [nil] 1] "List of names of buffers that should appear in the \"same\" window.\n`display-buffer' and `pop-to-buffer' show a buffer whose name is\non this list in the selected rather than some other window.\n\nAn element of this list can be a cons cell instead of just a\nstring.  In that case, the cell's car must be a string specifying\nthe buffer name.  This is for compatibility with\n`special-display-buffer-names'; the cdr of the cons cell is\nignored.\n\nSee also `same-window-regexps'." (repeat (string :format "%v")) windows same-window-regexps #[0 "\300\207" [nil] 1] "List of regexps saying which buffers should appear in the \"same\" window.\n`display-buffer' and `pop-to-buffer' show a buffer whose name\nmatches a regexp on this list in the selected rather than some\nother window.\n\nAn element of this list can be a cons cell instead of just a\nstring.  In that case, the cell's car must be a regexp matching\nthe buffer name.  This is for compatibility with\n`special-display-regexps'; the cdr of the cons cell is ignored.\n\nSee also `same-window-buffer-names'." (repeat (regexp :format "%v"))] 8)
#@317 Return non-nil if buffer BUFFER-NAME would be shown in the "same" window.
This function returns non-nil if `display-buffer' or
`pop-to-buffer' would show a buffer named BUFFER-NAME in the
selected rather than (as usual) some other window.  See
`same-window-buffer-names' and `same-window-regexps'.

(fn BUFFER-NAME)
(defalias 'same-window-p #[257 "\211;?\206b\211\235\206b\303\"\206b\3042^	\211\205[\211@\211;\2033\211\305\306\307#)\266\203\204O\211:\203T\211@;\203T\211@\305\306\307#)\266\203\203T\310\304\306\"\210A\266\202\202\2620\206b\305\207" [same-window-buffer-names same-window-regexps inhibit-changing-match-data assoc found nil t string-match throw] 10 (#$ . 193487)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311&\210\300\312\302\303\313DD\314\306\315\316\317\310\311&	\210\320\312\321\322#\210\300\323\302\303\324DD\325\306\315\310\311&\210\300\326\302\303\327DD\330\306\303\316\331\310\311&	\210\300\332\302\303\333DD\334\306\335\316\331\310\311&	\210\300\336\302\303\337DD\340\306\341\316\331\310\311&	\207" [custom-declare-variable pop-up-frames funcall function #[0 "\300\207" [nil] 1] "Whether `display-buffer' should make a separate frame.\nIf nil, never make a separate frame.\nIf the value is `graphic-only', make a separate frame\non graphic displays only.\nAny other non-nil value means always make a separate frame." :type (choice (const :tag "Never" nil) (const :tag "On graphic displays only" graphic-only) (const :tag "Always" t)) :group windows display-buffer-reuse-frames #[0 "\300\207" [nil] 1] "Non-nil means `display-buffer' should reuse frames.\nIf the buffer in question is already displayed in a frame, raise\nthat frame." boolean :version "21.1" make-obsolete-variable "use a `reusable-frames' alist entry in `display-buffer-alist'." "24.3" pop-up-windows #[0 "\300\207" [t] 1] "Non-nil means `display-buffer' should make a new window." split-window-preferred-function #[0 "\300\207" [split-window-sensibly] 1] "Function called by `display-buffer' routines to split a window.\nThis function is called with a window as single argument and is\nsupposed to split that window and return the new window.  If the\nwindow can (or shall) not be split, it is supposed to return nil.\nThe default is to call the function `split-window-sensibly' which\ntries to split the window in a way which seems most suitable.\nYou can customize the options `split-height-threshold' and/or\n`split-width-threshold' in order to have `split-window-sensibly'\nprefer either vertical or horizontal splitting.\n\nIf you set this to any other function, bear in mind that the\n`display-buffer' routines may call this function two times.  The\nargument of the first call is the largest window on its frame.\nIf that call fails to return a live window, the function is\ncalled again with the least recently used window as argument.  If\nthat call fails too, `display-buffer' will use an existing window\nto display its buffer.\n\nThe window selected at the time `display-buffer' was invoked is\nstill selected when this function is called.  Hence you can\ncompare the window argument with the value of `selected-window'\nif you intend to split the selected window instead or if you do\nnot want to split the selected window." "23.1" split-height-threshold #[0 "\300\207" [80] 1] "Minimum height for splitting windows sensibly.\nIf this is an integer, `split-window-sensibly' may split a window\nvertically only if it has at least this many lines.  If this is\nnil, `split-window-sensibly' is not allowed to split a window\nvertically.  If, however, a window is the only window on its\nframe, or all the other ones are dedicated,\n`split-window-sensibly' may split it vertically disregarding the\nvalue of this variable." (choice (const nil) (integer :tag "lines")) split-width-threshold #[0 "\300\207" [160] 1] "Minimum width for splitting windows sensibly.\nIf this is an integer, `split-window-sensibly' may split a window\nhorizontally only if it has at least this many columns.  If this\nis nil, `split-window-sensibly' is not allowed to split a window\nhorizontally." (choice (const nil) (integer :tag "columns"))] 10)
#@1102 Return non-nil if `split-window-sensibly' may split WINDOW.
Optional argument HORIZONTAL nil or omitted means check whether
`split-window-sensibly' may split WINDOW vertically.  HORIZONTAL
non-nil means check whether WINDOW may be split horizontally.

WINDOW may be split vertically when the following conditions
hold:
- `window-size-fixed' is either nil or equals `width' for the
  buffer of WINDOW.
- `split-height-threshold' is an integer and WINDOW is at least as
  high as `split-height-threshold'.
- When WINDOW is split evenly, the emanating windows are at least
  `window-min-height' lines tall and can accommodate at least one
  line plus - if WINDOW has one - a mode line.

WINDOW may be split horizontally when the following conditions
hold:
- `window-size-fixed' is either nil or equals `height' for the
  buffer of WINDOW.
- `split-width-threshold' is an integer and WINDOW is at least as
  wide as `split-width-threshold'.
- When WINDOW is split evenly, the emanating windows are at least
  `window-min-width' or two (whichever is larger) columns wide.

(fn WINDOW &optional HORIZONTAL)
(defalias 'window-splittable-p #[513 "\306!\205P\307\310\"?\205Pr\311!q\210\211\2031\312>\205O	\247\205O\313!	\314\n\314]_]Y\202O\315>\205O\247\205O\316!\314\f
\203J\314\202K\317]_]Y)\207" [window-size-fixed split-width-threshold window-min-width split-height-threshold window-min-height mode-line-format window-live-p window-parameter window-side window-buffer (nil height) window-width 2 (nil width) window-height 1] 7 (#$ . 197663)])
#@1598 Split WINDOW in a way suitable for `display-buffer'.
WINDOW defaults to the currently selected window.
If `split-height-threshold' specifies an integer, WINDOW is at
least `split-height-threshold' lines tall and can be split
vertically, split WINDOW into two windows one above the other and
return the lower window.  Otherwise, if `split-width-threshold'
specifies an integer, WINDOW is at least `split-width-threshold'
columns wide and can be split horizontally, split WINDOW into two
windows side by side and return the window on the right.  If this
can't be done either and WINDOW is the only window on its frame,
try to split WINDOW vertically disregarding any value specified
by `split-height-threshold'.  If that succeeds, return the lower
window.  Return nil otherwise.

By default `display-buffer' routines call this function to split
the largest or least recently used window.  To change the default
customize the option `split-window-preferred-function'.

You can enforce this function to not split WINDOW horizontally,
by setting (or binding) the variable `split-width-threshold' to
nil.  If, in addition, you set `split-height-threshold' to zero,
chances increase that this function does split WINDOW vertically.

In order to not split WINDOW vertically, set (or bind) the
variable `split-height-threshold' to nil.  Additionally, you can
set `split-width-threshold' to zero to make a horizontal split
more likely to occur.

Have a look at the function `window-splittable-p' if you want to
know how `split-window-sensibly' determines whether WINDOW can be
split.

(fn &optional WINDOW)
(defalias 'split-window-sensibly #[256 "\211\206\301 \302!\203*\303!r\304\305\306\307\310!\311\"\312$\216\313@\314\"\210\315 *\262\206\243\302\316\"\203O\303!r\304\305\306\307\310!\317\"\312$\216\313@\314\"\210\320 *\262\206\243\321!\322!=\206s\3232s\324\304\325\326\307\310!\327\"\330\331%\332\333$\210\3160\262\205\243\334!?\205\243\305\302!\205\242\303!r\304\305\306\307\310!\335\"\312$\216\313@\314\"\210\315 *\262)\207" [split-height-threshold selected-window window-splittable-p internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord split-window-below t [internal--after-with-selected-window] split-window-right window-frame frame-root-window done walk-window-tree 257 "\211\300=\206	\301!?\205\302\303\304\"\207" [window-dedicated-p throw done nil] 4 "\n\n(fn W)" nil nomini window-minibuffer-p [internal--after-with-selected-window]] 10 (#$ . 199228)])
#@157 Try to split WINDOW.
Return value returned by `split-window-preferred-function' if it
represents a live window, nil otherwise.

(fn WINDOW &optional ALIST)
(defalias 'window--try-to-split-window #[513 "\302!\205G\303\304!\305\"?\205G\306=\204*\307=\203.\310\236A\204*\311\236A\203.\312\202/\3131;	!0\202=\210\314\302!\205D\211)\262\207" [window-combination-limit split-window-preferred-function window-live-p frame-parameter window-frame unsplittable display-buffer window-size window-height window-width t (error) nil] 5 (#$ . 201828)])
#@65 Return FRAME if it can be used to display a buffer.

(fn FRAME)
(defalias 'window--frame-usable-p #[257 "\300!\205\301!\302!\205\303!?\205\262\207" [frame-live-p frame-root-window window-live-p window-minibuffer-p] 4 (#$ . 202393)])
(byte-code "\300\301\302\"\210\303\302\304\305\306DD\307\310\311\312\313\314\315&	\207" [defvaralias even-window-heights even-window-sizes custom-declare-variable funcall function #[0 "\300\207" [t] 1] "If non-nil `display-buffer' will try to even window sizes.\nOtherwise `display-buffer' will leave the window configuration\nalone.  Special values are `height-only' to even heights only and\n`width-only' to even widths only.  Any other value means to even\nany of them." :type (choice (const :tag "Never" nil) (const :tag "Side-by-side windows only" width-only) (const :tag "Windows above or below only" height-only) (const :tag "Always" t)) :version "25.1" :group windows] 10)
#@215 Even sizes of WINDOW and selected window.
Even only if these windows are the only children of their parent,
`even-window-sizes' has the appropriate value and the selected
window is larger than WINDOW.

(fn WINDOW)
(defalias 'window--even-window-sizes #[257 "\301\302!!\303U\205e\302 \302!=\205e\304>\204=\305\306\"\203=\307 \307!V\203=\3101:\311\307!\307 Z\303\245\306\"0\207\210\312\207\313>?\205e\305!\205e\314 \314!V\205e\3151c\311\314!\314 Z\303\245!0\207\210\312\207" [even-window-sizes window-child-count window-parent 2 (nil height-only) window-combined-p t window-total-width (error) enlarge-window nil (nil width-only) window-total-height (error)] 4 (#$ . 203326)])
#@1169 Display BUFFER in WINDOW.
WINDOW must be a live window chosen by a buffer display action
function for showing BUFFER.  TYPE tells whether WINDOW existed
already before that action function was called or is a new window
created by that function.  ALIST is a buffer display action alist
as compiled by `display-buffer'.

TYPE must be one of the following symbols: `reuse' (which means
WINDOW existed before the call of `display-buffer' and may
already show BUFFER or not), `window' (WINDOW was created on an
existing frame) or `frame' (WINDOW was created on a new frame).
TYPE is passed unaltered to `display-buffer-record-window'.

Handle WINDOW's dedicated flag as follows: If WINDOW already
shows BUFFER, leave it alone.  Otherwise, if ALIST contains a
`dedicated' entry and WINDOW is either new or that entry's value
equals `side', set WINDOW's dedicated flag to the value of that
entry.  Otherwise, if WINDOW is new and the value of
`display-buffer-mark-dedicated' is non-nil, set WINDOW's
dedicated flag to that value.  In any other case, reset WINDOW's
dedicated flag to nil.

Return WINDOW if BUFFER and WINDOW are live.

(fn BUFFER WINDOW TYPE &optional ALIST)
(defalias 'window--display-buffer #[1027 "\301!\205\326\302!\205\326\303#\210\304!=\204%\305\306\"\210\307\"\210\310\236\311!\204Q\312=\203;\211A\313=\203Q\211\203H\305A\"\210\202Q\203Q\305\"\210\210\314>\203]\315\306\"\210\316\317\"\320\236A\321\236A\322\236A\323\236A\324=\204\207@\325=\203\335A@\324=\203\335\203\267:\203\303@A\326\n!\247\203\276\247\203\276\327\330!\331!Z\\\"\210\332\333!\334!Z\\\"\210\266\202\267\335!\203\267\3361\325!0\202\331\210\202\267\210\202\267\337=\204\363@\325=\203\267A@\337=\203\267\203J\247\2033\250\203\202\340\331\341\n!!_!\211\331\n!Z\342\n\306\343$\203.\344\n!\203.\345\n\306\343$\210\266\202J\335!\203J\3461E!0\202I\210\202J\210\203\242\247\203\213\250\203\\\202f\340\334\341\n!!_!\211\334\n!Z\342\n\347\343$\203\206\344\n\347\"\203\206\345\n\347\343$\210\266\202\242\335!\203\242\3501\235!0\202\241\210\202\242\210\211:\203\267\351\347@#\210\351\306A#\210\352\236A\211\211\203\323\211@\353@A#\210A\266\202\202\275\266\207" [display-buffer-mark-dedicated buffer-live-p window-live-p display-buffer-record-window window-buffer set-window-dedicated-p nil set-window-buffer dedicated window-dedicated-p reuse side (window frame) set-window-prev-buffers window-parameter quit-restore window-height window-width window-size preserve-size frame same window-frame set-frame-height frame-height window-total-height set-frame-width frame-width window-total-width functionp (error) window round frame-root-window window--resizable-p safe window-combined-p window-resize (error) t (error) window-preserve-size window-parameters set-window-parameter] 18 (#$ . 204029)])
#@14 

(fn FRAME)
(defalias 'window--maybe-raise-frame #[257 "\300!\210\301\302\"\206&\301\303\"\206&\211\304 =\206&\305\306 !\205&\211\307\310 !=?\205-\311!\207" [make-frame-visible frame-parameter no-focus-on-map no-accept-focus selected-frame minibuffer-window-active-p selected-window window-frame minibuffer-selected-window raise-frame] 4 (#$ . 206960)])
#@164 If non-nil, `display-buffer' marks the windows it creates as dedicated.
The actual non-nil value of this variable will be copied to the
`window-dedicated-p' flag.
(defvar display-buffer-mark-dedicated nil (#$ . 207331))
#@52 Custom type for `display-buffer' action functions.
(defconst display-buffer--action-function-custom-type '(choice :tag "Function" (const :tag "--" ignore) (const display-buffer-reuse-window) (const display-buffer-pop-up-window) (const display-buffer-same-window) (const display-buffer-pop-up-frame) (const display-buffer-in-child-frame) (const display-buffer-below-selected) (const display-buffer-at-bottom) (const display-buffer-in-previous-window) (const display-buffer-use-some-window) (const display-buffer-use-some-frame) (function :tag "Other function")) (#$ . 207557))
#@43 Custom type for `display-buffer' actions.
(defconst display-buffer--action-custom-type (byte-code "\301\302\303\304\302\305\306\302\307F\257\310BBBB\207" [display-buffer--action-function-custom-type cons :tag "Action" choice "Action functions" repeat "List of functions" ((alist :tag "Action arguments" :key-type symbol :value-type (sexp :tag "Value")))] 11) (#$ . 208139))
#@715 Overriding action for buffer display.
This action overrides all the other actions in the action
variables and arguments passed to `display-buffer'.  The value
should be a cons cell (FUNCTIONS . ALIST), where FUNCTIONS is a
function or a list of functions.  Each function should accept two
arguments: a buffer to display and an alist similar to ALIST.
See `display-buffer' for details.

This variable is not intended for user customization.  Lisp
programs should never set this variable permanently but may bind
it around calls of buffer display functions like `display-buffer'
or `pop-to-buffer'.  Since such a binding will affect any nested
buffer display requests, this variable should be used with utmost
care.
(defvar display-buffer-overriding-action '(nil) (#$ . 208523))
(byte-code "\301\302\303\304#\210\305\306\307\310\311DD\312\313\314\315\316\317\257\320\304\321\322\323\324&\210\305\325\307\310\326DD\327\313\320\304\321\322\323\324&\207" [display-buffer--action-custom-type put display-buffer-overriding-action risky-local-variable t custom-declare-variable display-buffer-alist funcall function #[0 "\300\207" [nil] 1] "Alist of user-defined conditional actions for `display-buffer'.\nIts value takes effect before processing the ACTION argument of\n`display-buffer' and before `display-buffer-base-action' and\n`display-buffer-fallback-action', but after\n`display-buffer-overriding-action', which see.\n\nIf non-nil, this is an alist of elements (CONDITION . ACTION),\nwhere:\n\n CONDITION is either a regexp matching buffer names, or a\n  function that takes two arguments - a buffer name and the\n  ACTION argument of `display-buffer' - and returns a boolean.\n\n ACTION is a cons cell (FUNCTIONS . ALIST), where FUNCTIONS is an\n  action function or a list of action functions and ALIST is an\n  action alist.  Each such action function should accept two\n  arguments: a buffer to display and an alist of the same form as\n  ALIST.  See `display-buffer' for details.\n\n`display-buffer' scans this alist until it either finds a\nmatching regular expression or the function specified by a\ncondition returns non-nil.  In any of these cases, it adds the\nassociated action to the list of actions it will try." :type alist :key-type (choice :tag "Condition" regexp (function :tag "Matcher function")) :value-type :risky :version "24.1" :group windows display-buffer-base-action #[0 "\300\207" [(nil)] 1] "User-specified default action for `display-buffer'.\nThis is the default action used by `display-buffer' if no other\nactions are specified or all fail, before falling back on\n`display-buffer-fallback-action'.\n\nIt should be a cons cell (FUNCTIONS . ALIST), where FUNCTIONS is\nan action function or a list of action functions and ALIST is an\naction alist.  Each such action function should accept two\narguments: a buffer to display and an alist of the same form as\nALIST.  See `display-buffer' for details."] 12)
#@308 Default fallback action for `display-buffer'.
This is the action used by `display-buffer' if no other actions
have been specified, for example, by the user options
`display-buffer-alist' or `display-buffer-base-action', or they
all fail.  It should never be set by programs or users.  See
`display-buffer'.
(defconst display-buffer-fallback-action '((display-buffer--maybe-same-window display-buffer-reuse-window display-buffer--maybe-pop-up-frame-or-window display-buffer-in-previous-window display-buffer-use-some-window display-buffer-pop-up-frame)) (#$ . 211474))
(put 'display-buffer-fallback-action 'risky-local-variable t)
#@420 Retrieve ALIST entry corresponding to BUFFER-NAME.
This returns the cdr of the alist entry ALIST if either its key
is a string that matches BUFFER-NAME, as reported by
`string-match-p'; or if the key is a function that returns
non-nil when called with three arguments: the ALIST key,
BUFFER-NAME and ACTION.  ACTION should have the form of the
action argument passed to `display-buffer'.

(fn BUFFER-NAME ALIST ACTION)
(defalias 'display-buffer-assq-regexp #[771 "\3012B\211\205?\211@\211@\211;\203#\211\302\303\304#)\266\203\2041\305!\2037\211\"\2037\306\301A\"\210\210A\266\202\202\2620\207" [inhibit-changing-match-data match nil t string-match functionp throw] 13 (#$ . 212111)])
#@110 A `display-buffer' action for displaying in the same window.
Specifies to call `display-buffer-same-window'.
(defvar display-buffer--same-window-action '(display-buffer-same-window (inhibit-same-window)) (#$ . 212824))
(put 'display-buffer--same-window-action 'risky-local-variable t)
#@164 A `display-buffer' action for displaying in another frame.
Specifies to call `display-buffer-reuse-window', and if that
fails, call `display-buffer-pop-up-frame'.
(defvar display-buffer--other-frame-action '((display-buffer-reuse-window display-buffer-pop-up-frame) (reusable-frames . 0) (inhibit-same-window . t)) (#$ . 213116))
(put 'display-buffer--other-frame-action 'risky-local-variable t)
#@4923 Display BUFFER-OR-NAME in some window, without selecting it.
BUFFER-OR-NAME must be a buffer or a string naming a live buffer.
Return the window chosen for displaying that buffer, or nil if no
such window is found.

Optional argument ACTION, if non-nil, should specify a buffer
display action of the form (FUNCTIONS . ALIST).  FUNCTIONS is
either an "action function" or a possibly empty list of action
functions.  ALIST is a possibly empty "action alist".

An action function is a function that accepts two arguments: the
buffer to display and an action alist.  Based on those arguments,
it should try to display the buffer in a window and return that
window.  An action alist is an association list mapping symbols
to values.  Action functions use the action alist passed to them
to fine-tune their behaviors.

`display-buffer' builds a list of action functions and an action
alist by combining any action functions and alists specified by
`display-buffer-overriding-action', `display-buffer-alist', the
ACTION argument, `display-buffer-base-action', and
`display-buffer-fallback-action' (in order).  Then it calls each
function in the combined function list in turn, passing the
buffer as the first argument and the combined action alist as the
second argument, until one of the functions returns non-nil.

Action functions and the action they try to perform are:
 `display-buffer-same-window' -- Use the selected window.
 `display-buffer-reuse-window' -- Use a window already showing
    the buffer.
 `display-buffer-in-previous-window' -- Use a window that did
    show the buffer before.
 `display-buffer-use-some-window' -- Use some existing window.
 `display-buffer-pop-up-window' -- Pop up a new window.
 `display-buffer-below-selected' -- Use or pop up a window below
    the selected one.
 `display-buffer-at-bottom' -- Use or pop up a window at the
    bottom of the selected frame.
 `display-buffer-pop-up-frame' -- Show the buffer on a new frame.
 `display-buffer-in-child-frame' -- Show the buffer in a
    child frame.
 `display-buffer-no-window' -- Do not display the buffer and
    have `display-buffer' return nil immediately.

Action alist entries are:
 `inhibit-same-window' -- A non-nil value prevents the same
    window from being used for display.
 `inhibit-switch-frame' -- A non-nil value prevents any frame
    used for showing the buffer from being raised or selected.
 `reusable-frames' -- The value specifies the set of frames to
    search for a window that already displays the buffer.
    Possible values are nil (the selected frame), t (any live
    frame), visible (any visible frame), 0 (any visible or
    iconified frame) or an existing live frame.
 `pop-up-frame-parameters' -- The value specifies an alist of
    frame parameters to give a new frame, if one is created.
 `window-height' -- The value specifies the desired height of the
    window chosen and is either an integer (the total height of
    the window), a floating point number (the fraction of its
    total height with respect to the total height of the frame's
    root window) or a function to be called with one argument -
    the chosen window.  The function is supposed to adjust the
    height of the window; its return value is ignored.  Suitable
    functions are `shrink-window-if-larger-than-buffer' and
    `fit-window-to-buffer'.
 `window-width' -- The value specifies the desired width of the
    window chosen and is either an integer (the total width of
    the window), a floating point number (the fraction of its
    total width with respect to the width of the frame's root
    window) or a function to be called with one argument - the
    chosen window.  The function is supposed to adjust the width
    of the window; its return value is ignored.
 `preserve-size' -- The value should be either (t . nil) to
    preserve the width of the chosen window, (nil . t) to
    preserve its height or (t . t) to preserve its height and
    width in future changes of the window configuration.
 `window-parameters' -- The value specifies an alist of window
    parameters to give the chosen window.
 `allow-no-window' -- A non-nil value means that `display-buffer'
    may not display the buffer and return nil immediately.

The entries `window-height', `window-width' and `preserve-size'
are applied only when the window used for displaying the buffer
never showed another buffer before.

The ACTION argument can also have a non-nil and non-list value.
This means to display the buffer in a window other than the
selected one, even if it is already displayed in the selected
window.  If called interactively with a prefix argument, ACTION
is t.  Non-interactive calls should always supply a list or nil.

The optional third argument FRAME, if non-nil, acts like a
(reusable-frames . FRAME) entry appended to the action alist
specified by the ACTION argument.

(fn BUFFER-OR-NAME &optional ACTION FRAME)
(defalias 'display-buffer #[769 "\306!\203\n\202
\307!\310\205<?<\204\311\262	\203*	\"\202\214\312\313!\n#\314!\311\315\205<\316\205F\317	BC\"B\n\f
\257\320\315\321\322\"\"\320\315\321\323\"\"\311\324\n!\204l\325\326!\210\203\203\211\204\203@\n\"\262A\262\202l\327!\205\212\211\266\207)\207" [split-window-keep-point display-buffer-function display-buffer-alist display-buffer-overriding-action display-buffer-base-action display-buffer-fallback-action bufferp get-buffer t nil display-buffer-assq-regexp buffer-name display-buffer--special-action append ((inhibit-same-window . t)) reusable-frames apply mapcar #[257 "\211@\262\300!\203
\211C\207\207" [functionp] 3 "\n\n(fn X)"] cdr buffer-live-p error "Invalid buffer" windowp] 16 (#$ . 213520) (byte-code "\301\302\303 \"\205\n\304D\207" [current-prefix-arg read-buffer "Display buffer: " other-buffer t] 3)])
#@361 Display buffer BUFFER preferably in another frame.
This function attempts to look for a window displaying BUFFER,
on all the frames on the current terminal, skipping the selected
window; if that fails, it pops up a new frame.
This uses the function `display-buffer' as a subroutine; see
its documentation for additional customization information.

(fn BUFFER)
(defalias 'display-buffer-other-frame #[257 "\301\302#\207" [display-buffer--other-frame-action display-buffer t] 5 (#$ . 219369) "bDisplay buffer in other frame: "])
#@1010 Display BUFFER in an existing frame that meets a predicate.
The default predicate is to use any frame other than the selected
frame.  If successful, return the window used; otherwise return
nil.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST has a non-nil `inhibit-switch-frame' entry, avoid
raising the frame.  If it has a non-nil `frame-predicate' entry,
its value is a function taking one argument (a frame), returning
non-nil if the frame is a candidate; this function replaces the
default predicate.  If ALIST has a non-nil `inhibit-same-window'
entry, avoid using the currently selected window (only useful
with a frame-predicate that allows using the selected frame).

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-use-some-frame #[514 "\300\236A\206\301\302!@\211\205\303\304\305\236A#\211\205/\306\307$\310\236A\204/\311!\210\207" [frame-predicate #[257 "\211\300 =?\205\301!\207" [selected-frame get-lru-window] 3 "\n\n(fn FRAME)"] filtered-frame-list get-lru-window nil inhibit-same-window window--display-buffer reuse inhibit-switch-frame window--maybe-raise-frame] 10 (#$ . 219906)])
#@651 Display BUFFER in the selected window.
ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

This function fails if ALIST has an `inhibit-same-window'
element whose value is non-nil, or if the selected window is a
minibuffer window or is dedicated to another buffer; in that case,
return nil.  Otherwise, return the selected window.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-same-window #[514 "\300\236A\206\301 \206\302 ?\205\303\304 \305$\207" [inhibit-same-window window-minibuffer-p window-dedicated-p window--display-buffer selected-window reuse] 7 (#$ . 221343)])
#@349 Conditionally display BUFFER in the selected window.
ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If `same-window-p' returns non-nil for BUFFER's name, call
`display-buffer-same-window' and return its value.  Otherwise,
return nil.

(fn BUFFER ALIST)
(defalias 'display-buffer--maybe-same-window #[514 "\300\301!!\205\f\302\"\207" [same-window-p buffer-name display-buffer-same-window] 5 (#$ . 222230)])
#@1316 Return a window that is already displaying BUFFER.
Preferably use a window on the selected frame if such a window
exists.  Return nil if no usable window is found.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST has a non-nil `inhibit-same-window' entry, the selected
window is not eligible for reuse.

If ALIST contains a `reusable-frames' entry, its value determines
which frames to search for a reusable window:
  nil -- the selected frame (actually the last non-minibuffer frame)
  A frame   -- just that frame
  `visible' -- all visible frames
  0   -- all frames on the current terminal
  t   -- all frames.

If ALIST contains no `reusable-frames' entry, search just the
selected frame if `display-buffer-reuse-frames' and
`pop-up-frames' are both nil; search all frames on the current
terminal if either of those variables is non-nil.

If ALIST has a non-nil `inhibit-switch-frame' entry, then in the
event that a window on another frame is chosen, avoid raising
that frame.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-reuse-window #[514 "\302\236\211\203\f\211A\202)\303=\203\304 \202\203\305\202)	\203'\305\202)\306 \307 =\203<\310\236A\204<\311 \202\312\311 \313\314#\"\211@\315 \316!=\203V\202}\3172yA\211\205v\211@\316!=\203o\320\317\"\210A\266\202\202\\\2620\206}\266\203\321!\205\231\322\323$\324\236A\204\231\325\316!!\210\207" [pop-up-frames display-buffer-reuse-frames reusable-frames graphic-only display-graphic-p 0 last-nonminibuffer-frame window-buffer inhibit-same-window selected-window delq get-buffer-window-list nomini selected-frame window-frame found throw window-live-p window--display-buffer reuse inhibit-switch-frame window--maybe-raise-frame] 12 (#$ . 222743)])
#@951 Return a window based on the mode of the buffer it displays.
Display BUFFER in the returned window.  Return nil if no usable
window is found.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST contains a `mode' entry, its value is a major mode (a
symbol) or a list of modes.  A window is a candidate if it
displays a buffer that derives from one of the given modes.  When
ALIST contains no `mode' entry, the current major mode of BUFFER
is used.

The behavior is also controlled by entries for
`inhibit-same-window', `reusable-frames' and
`inhibit-switch-frame' as is done in the function
`display-buffer-reuse-window'.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-reuse-mode-window #[514 "\303\236\304\236\203A\202,\305=\203\306 \202\203\"\307\202,	\203*\307\202,\310 \311\236A\312\313\314#rq\210\n)\203EA\202F\211\315 \316 <\204SC\262\313\211\211\211\211\203\305\211@r\317!q\210\n	>\203p\320\202x\321	!\205x\322)\211\203\275\f\203\211	=\204\275\323!=\203\251\211\320=\203\241B\262\202\275B\262\202\275\211\320=\203\270B\262\202\275B\262\210A\266\202\202Y\210\244\244\244@\324!\205\352\325\326$\327\236A\204\352\330\323!!\210\262\266\204\207" [pop-up-frames display-buffer-reuse-frames major-mode reusable-frames mode graphic-only display-graphic-p 0 last-nonminibuffer-frame inhibit-same-window window-list-1 nil nomini selected-window selected-frame window-buffer same derived-mode-p derived window-frame window-live-p window--display-buffer reuse inhibit-switch-frame window--maybe-raise-frame] 21 (#$ . 224809)])
#@246 Return special display action for BUFFER, if any.
If `special-display-p' returns non-nil for BUFFER, return an
appropriate display action involving `special-display-function'.
See `display-buffer' for the format of display actions.

(fn BUFFER)
(defalias 'display-buffer--special-action #[257 "\205\301\302!!\211\205\303\304\305\306\307\310!\311\"\312\313%DC\262\207" [special-display-function special-display-p buffer-name display-buffer-reuse-window make-byte-code 514 "	\300<\205\300\"\207" vconcat vector [special-display-function] 5 "\n\n(fn BUFFER ALIST)"] 9 (#$ . 226730)])
#@700 Display BUFFER in a new frame.
This works by calling `pop-up-frame-function'.  If successful,
return the window used; otherwise return nil.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST has a non-nil `inhibit-switch-frame' entry, avoid
raising the new frame.  A non-nil `pop-up-frame-parameters' entry
specifies an alist of frame parameters to give the new frame.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-pop-up-frame #[514 "\302\236A\303\"	\304\211\205:rq\210 \211\262)\205:\305!\211\262\205:\306\307$\310\236A\204:\311!\210)\207" [pop-up-frame-alist pop-up-frame-function pop-up-frame-parameters append nil frame-selected-window window--display-buffer frame inhibit-switch-frame window--maybe-raise-frame] 11 (#$ . 227330)])
#@739 Display BUFFER by popping up a new window.
The new window is created on the selected frame, or in
`last-nonminibuffer-frame' if no windows can be created there.
If successful, return the new window; otherwise return nil.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST has a non-nil `inhibit-switch-frame' entry, then in the
event that the new window is created on another frame, avoid
raising the frame.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-pop-up-window #[514 "\300\301 !\206\300\302 !\303\304\305\"\2030\301 =\205[\302 \211\262\205[\300!\205[\304\305\"?\205[\306\307\310\"\"\206A\306\311\310\"\"\211\262\205[\312\313$\314\236A\204[\315\316!!\210\207" [window--frame-usable-p selected-frame last-nonminibuffer-frame nil frame-parameter unsplittable window--try-to-split-window get-largest-window t get-lru-window window--display-buffer window inhibit-switch-frame window--maybe-raise-frame window-frame] 9 (#$ . 228406)])
#@455 Try displaying BUFFER based on `pop-up-frames' or `pop-up-windows'.
ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If `pop-up-frames' is non-nil (and not `graphic-only' on a
text-only terminal), try with `display-buffer-pop-up-frame'.  If
that cannot be done, and `pop-up-windows' is non-nil, try again
with `display-buffer-pop-up-window'.

(fn BUFFER ALIST)
(defalias 'display-buffer--maybe-pop-up-frame-or-window #[514 "\300\"\206\301\"\207" [display-buffer--maybe-pop-up-frame display-buffer--maybe-pop-up-window] 5 (#$ . 229685)])
#@330 Try displaying BUFFER based on `pop-up-frames'.
If `pop-up-frames' is non-nil (and not `graphic-only' on a
text-only terminal), try with `display-buffer-pop-up-frame'.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

(fn BUFFER ALIST)
(defalias 'display-buffer--maybe-pop-up-frame #[514 "\301=\203\302 \202\f\205\303\"\207" [pop-up-frames graphic-only display-graphic-p display-buffer-pop-up-frame] 5 (#$ . 230328)])
#@142 Try displaying BUFFER based on `pop-up-windows'.
If `pop-up-windows' is non-nil, try with `display-buffer-pop-up-window'.

(fn BUFFER ALIST)
(defalias 'display-buffer--maybe-pop-up-window #[514 "\205\301\"\207" [pop-up-windows display-buffer-pop-up-window] 5 (#$ . 230855)])
#@916 Display BUFFER in a child frame.
By default, this either reuses a child frame of the selected
frame or makes a new child frame of the selected frame.  If
successful, return the window used; otherwise return nil.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST has a non-nil `child-frame-parameters' entry, the
corresponding value is an alist of frame parameters to give the
new frame.  A `parent-frame' parameter specifying the selected
frame is provided by default.  If the child frame shall be or
become the child of any other frame, a corresponding entry must
be added to ALIST.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-in-child-frame #[514 "\300\301\236A\302\303 BC\"\302\236\206\303 \304\236\305\211\211\211rq\210\306!\203]\3072\\\310 \211\205Y\211@\311!=\203R\304\312!\236\262=\203R\211\262\313\307\314\"\210A\266\202\202,\2620\210\203l\315!\262\316\262\202z\317!\262\315!\262\307\262)\320	$\321	\236A\204\217\322!\210\207" [append child-frame-parameters parent-frame selected-frame share-child-frame nil frame-live-p frame frame-list frame-parent frame-parameters throw t frame-selected-window reuse make-frame window--display-buffer inhibit-switch-frame window--maybe-raise-frame] 14 (#$ . 231142)])
#@715 Return list of live windows sharing the same edge with WINDOW.
WINDOW must be a valid window and defaults to the selected one.
EDGE stands for the edge to share and must be either `left',
`above', `right' or `below'.  Omitted or nil, EDGE defaults to
`left'.

WITHIN nil means to find a live window that shares the opposite
EDGE with WINDOW.  For example, if EDGE equals `left', WINDOW has
to share (part of) the right edge of any window returned.  WITHIN
non-nil means to find all live windows that share the same EDGE
with WINDOW (Window must be internal in this case).  So if EDGE
equals `left', WINDOW's left edge has to fully encompass the left
edge of any window returned.

(fn &optional WINDOW EDGE WITHIN)
(defalias 'windows-sharing-edge #[768 "C\211\300\242!\240\210\206\301\262\203!\302\242!\203!\303\304\242\"\210\305\242\306\211\307$\310>\311\267\202A\312\202B\313\202B\314\202B\315\202B\306\211\247\204M\303\316\"\210\317\314\\\320\"\203[\313\202\\\312\203d\315\202e\314\306C\321\322\323\324\325\326





&\327\"\330\331%\332\n\242!\306\333$\210\334\242!\266\204\266\203\207" [window-normalize-window left window-live-p error "Cannot share edge from within live window %s" window-edges nil t (left right) #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (left 49 above 53 right 57 below 61)) 0 1 2 3 "Invalid EDGE %s" mod 4 walk-window-tree make-byte-code 257 "\310\311\211\312$\300\242=?\205N\303\3028\301\203\303\202\3048U\205N\305\3028\3058U\204H\305\3028\3058W\203>\3058\306\3028W\202E\305\3028\3068W\205N\307\307\242B\240\207" vconcat vector [window-edges nil t] 6 "\n\n(fn OTHER)" window-frame nomini reverse] 25 (#$ . 232722)])
#@162 Try to split WINDOW in DIRECTION.
DIRECTION is passed as SIDE argument to `split-window-no-error'.
ALIST is a buffer display alist.

(fn WINDOW DIRECTION ALIST)
(defalias 'window--try-to-split-window-in-direction #[771 "\301\302!\303\"?\2059\304=\204$\305=\203(\306\236A\204$\307\236A\203(\310\202)\311\312#\313!\2056\211)\262\207" [window-combination-limit frame-parameter window-frame unsplittable display-buffer window-size window-height window-width t split-window-no-error nil window-live-p] 7 (#$ . 234473)])
#@1421 Try to display BUFFER in a direction specified by ALIST.
ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

ALIST has to contain a `direction' entry whose value should be
one of `left', `above' (or `up'), `right' and `below' (or
'down').  Other values are usually interpreted as `below'.

If ALIST also contains a `window' entry, its value specifies a
reference window.  That value can be a special symbol like
'main' (which stands for the selected frame's main window) or
'root' (standings for the selected frame's root window) or an
arbitrary valid window.  Any other value (or omitting the
'window' entry) means to use the selected window as reference
window.

This function tries to reuse or split a window such that the
window produced this way is on the side of the reference window
specified by the `direction' entry.

Four special values for `direction' entries allow to implicitly
specify the selected frame's main window as reference window:
`leftmost', `top', `rightmost' and `bottom'.  Hence, instead of
`(direction . left) (window . main)' one can simply write
`(direction . leftmost)'.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-in-direction #[514 "\301\236A\211\205\367\302\236A\303\211\211\211\304=\204\305>\203#\306 \262\202:\307=\2030\310 \262\202:\311!\204:\312 \262\313!?\262\314>\204g\315\267\202d\316\262\202g\317\262\202g\320\262\202g\321\262\202g\321\262\322\203r\323\202s\324\205x\325D\"\262\326#\262\211\203\260\211@\204\242	\327!=\203\242\330\262\211\262\202\251\204\251\211\262A\266\202\202\206\210\203\300\331\332\n$\206\365\333	#\211\262\203\330\331\302\n$\206\365\211\211\262\205\365\334!?\205\365\335!?\205\365\331\332\n$\266\205\207" [temp-buffer-resize-mode direction window nil main (top bottom leftmost rightmost) window-main-window root frame-root-window window-valid-p selected-window window-live-p (left above right below) #s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (leftmost 76 top 82 up 82 rightmost 88 bottom 94 down 94)) left above right below append (window-height . resize-temp-buffer-window) (window-height . fit-window-to-buffer) (preserve-size nil . t) windows-sharing-edge window-buffer t window--display-buffer reuse window--try-to-split-window-in-direction window-dedicated-p window-minibuffer-p] 13 (#$ . 235014)])
#@1045 Try displaying BUFFER in a window below the selected window.
If there is a window below the selected one and that window
already displays BUFFER, use that window.  Otherwise, try to
create a new window below the selected one and show BUFFER there.
If that attempt fails as well and there is a non-dedicated window
below the selected one, use that window.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST contains a `window-min-height' entry, this function
ensures that the window used is or can become at least as high as
specified by that entry's value.  Note that such an entry alone
will not resize the window per se.  In order to do that, ALIST
must also contain a `window-height' entry with the same value.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-below-selected #[514 "\302\236A\303\304\305!\211\262\203K\306!=\203K\247\203A\307!Y\204A\307!\310\311\"\211\205<\211A@\312=\205<\313Z\"\266\202\203K\314\315$\206\235\316\303\317\"\204y\247\203_\320\303[\"\203y\321\303\322\323 \"\211\262*\203y\314\312$\206\235\304\305!\211\262\205\235\324!?\205\235\247\203\226\307!Y\205\235\314\315$\207" [split-width-threshold split-height-threshold window-min-height nil window-in-direction below window-buffer window-height window-parameter quit-restore window window-resizable-p window--display-buffer reuse frame-parameter unsplittable window-sizable-p 0 window--try-to-split-window selected-window window-dedicated-p] 10 (#$ . 237723)])
#@21 

(fn BUFFER ALIST)
(defalias 'display-buffer--maybe-at-bottom #[514 "\301\203\n\302\202\303\205\304D\"\305\"\206+\306\"\206+\307\"\206+\310\"\207" [temp-buffer-resize-mode append (window-height . resize-temp-buffer-window) (window-height . fit-window-to-buffer) (preserve-size nil . t) display-buffer--maybe-same-window display-buffer-reuse-window display-buffer--maybe-pop-up-frame display-buffer-at-bottom] 6 (#$ . 239528)])
#@640 Try displaying BUFFER in a window at the bottom of the selected frame.
This either reuses such a window provided it shows BUFFER
already, splits a window at the bottom of the frame or the
frame's root window, or reuses some window at the bottom of the
selected frame.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-at-bottom #[514 "\300C\300C\300\301\302\303\304\305\306\n		#\307\"\310\311%\300\211\312$\210\242\203,\313\242\314$\206]\315\300\316\"\204G\317\320 !\211\262\203G\313\321$\206]\242\211\262\205]\322!?\205]\313\314$\207" [nil walk-window-tree make-byte-code 257 "\303\304\"\206%\302\242\204\300\305!=\203\302\306\240\210\301\240\207\301\242?\205%\301\240\207" vconcat vector [window-in-direction below window-buffer t] 4 "\n\n(fn WINDOW)" nomini window--display-buffer reuse frame-parameter unsplittable split-window-no-error window-main-window window window-dedicated-p] 14 (#$ . 239982)])
#@1650 Display BUFFER in a window previously showing it.
ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST has a non-nil `inhibit-same-window' entry, the selected
window is not usable.  A dedicated window is usable only if it
already shows BUFFER.  If ALIST contains a `previous-window'
entry, the window specified by that entry is usable even if it
never showed BUFFER before.

If ALIST contains a `reusable-frames' entry, its value determines
which frames to search for a usable window:
  nil -- the selected frame (actually the last non-minibuffer frame)
  A frame   -- just that frame
  `visible' -- all visible frames
  0   -- all frames on the current terminal
  t   -- all frames.

If ALIST contains no `reusable-frames' entry, search just the
selected frame if `display-buffer-reuse-frames' and
`pop-up-frames' are both nil; search all frames on the current
terminal if either of those variables is non-nil.

If more than one window is usable according to these rules,
apply the following order of preference:

- Use the window specified by any `previous-window' ALIST entry,
  provided it is not the selected window.

- Use a window that showed BUFFER before, provided it is not the
  selected window.

- Use the selected window if it is either specified by a
  `previous-window' ALIST entry or showed BUFFER before.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-in-previous-window #[514 "\302\236\303\236A\203A\202-\304=\203\305 \202\203#\306\202-	\203+\306\202-\307 \310\211\211\3112t\312\313 \314#\211\205q\211@	\315!\236\203j\316!\204j\211\317 =\203b\204j\211\262\202j\211\262\320\311\321\"\210A\266\202\202;\2620\210\322\236A\211\262\203\251\323!\203\251\324!=\204\225\316!\204\251\211\317 =\203\246\204\251\211\262\202\251\211\262\206\256\211\262\205\274\325\326\n$\207" [pop-up-frames display-buffer-reuse-frames reusable-frames inhibit-same-window graphic-only display-graphic-p 0 last-nonminibuffer-frame nil best window-list-1 frame-first-window nomini window-prev-buffers window-dedicated-p selected-window throw t previous-window window-live-p window-buffer window--display-buffer reuse] 13 (#$ . 241280)])
#@677 Display BUFFER in an existing window.
Search for a usable window, set that window to the buffer, and
return the window.  If no suitable window is found, return nil.

ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST has a non-nil `inhibit-switch-frame' entry, then in the
event that a window on another frame is chosen, avoid raising
that frame.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-use-some-window #[514 "\300\236A\301\302 !\206\301\303 !\304\305#\206P\306\307\"\205#\211\310 =?\205(\211\262\206P\311\307\305#\206P\306\312\"\205A\211\310 =?\205F\211\262\206P\311\312\305#\313!\205Z\314\315\"\211A@\313!\205\253\211<\203\221\3168\250\203\221\3168\317!V\203\221\3201\214\321\3168\317!Z\"0\202\220\210\202\221\210\322\323	$\324!\210\325\236A\204\253\326\327!!\210\207" [inhibit-same-window window--frame-usable-p selected-frame last-nonminibuffer-frame get-lru-window nil get-buffer-window visible selected-window get-largest-window 0 window-live-p window-parameter quit-restore 3 window-total-height (error) window-resize window--display-buffer reuse window--even-window-sizes inhibit-switch-frame window--maybe-raise-frame window-frame] 12 (#$ . 243781)])
#@721 Display BUFFER in no window.
ALIST is an association list of action symbols and values.  See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.

If ALIST contains a non-nil `allow-no-window' entry, do nothing
and return `fail'.  This allows `display-buffer' to override the
default action and avoid displaying the buffer.  It is assumed
that when the caller specifies a non-nil `allow-no-window' ALIST
entry, it can handle a nil value returned by `display-buffer'.

This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'.  It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter.

(fn BUFFER ALIST)
(defalias 'display-buffer-no-window #[514 "\300\236A\205\301\207" [allow-no-window fail] 4 (#$ . 245311)])
#@985 Display buffer specified by BUFFER-OR-NAME and select its window.
BUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.
If it is a string not naming an existent buffer, create a buffer
with that name.  If BUFFER-OR-NAME is nil, choose some other
buffer.  In either case, make that buffer current and return it.

This uses `display-buffer' as a subroutine.  The optional ACTION
argument is passed to `display-buffer' as its ACTION argument.
See `display-buffer' for more information.  ACTION is t if called
interactively with a prefix argument, which means to pop to a
window other than the selected one even if the buffer is already
displayed in the selected window.

If a suitable window is found, select that window.  If it is not
on the selected frame, raise that window's frame and give it
input focus.

Optional third arg NORECORD non-nil means do not put this buffer
at the front of the list of recently selected ones.

(fn BUFFER-OR-NAME &optional ACTION NORECORD)
(defalias 'pop-to-buffer #[769 "\300!\301 \302\"\211\203&\303!\211=\204\304\"\210\305\"\266\202)q\210\207" [window-normalize-buffer-to-switch-to selected-frame display-buffer window-frame select-frame-set-input-focus select-window] 10 (#$ . 246148) (byte-code "\301\302\303 \"\205\n\304D\207" [current-prefix-arg read-buffer "Pop to buffer: " other-buffer t] 3)])
#@814 Select buffer BUFFER in some window, preferably the same one.
BUFFER may be a buffer, a string (a buffer name), or nil.  If it
is a string not naming an existent buffer, create a buffer with
that name.  If BUFFER is nil, choose some other buffer.  Return
the buffer.

Optional argument NORECORD, if non-nil means do not put this
buffer at the front of the list of recently selected ones.

Unlike `pop-to-buffer', this function prefers using the selected
window over popping up a new window or frame.  Specifically, if
the selected window is neither a minibuffer window (as reported
by `window-minibuffer-p'), nor is dedicated to another buffer
(see `window-dedicated-p'), BUFFER will be displayed in the
currently selected window; otherwise it will be displayed in
another window.

(fn BUFFER &optional NORECORD)
(defalias 'pop-to-buffer-same-window #[513 "\301#\207" [display-buffer--same-window-action pop-to-buffer] 6 (#$ . 247523)])
#@298 Read the name of a buffer to switch to, prompting with PROMPT.
Return the name of the buffer as a string.

This function is intended for the `switch-to-buffer' family of
commands since these need to omit the name of the current buffer
from the list of completions and default values.

(fn PROMPT)
(defalias 'read-buffer-to-switch #[257 "\300 \301\302\303\304\305!\306\"\307$\310C\211\301\302\311\304\305\"\312\"\313$\240\210\301\302\314\304\305!\315\"\313$\216\316\317\242\"\210\320\321p!\322 #)\266\202\207" [internal-complete-buffer-except make-byte-code 0 "\300\303\302!\205\n<\205\304\302!\210\300\nB\211\207" vconcat vector [minibuffer-completion-table icomplete-with-completion-tables boundp make-local-variable] 2 nil "\302\303\301\242\"\210\300 \207" [remove-hook minibuffer-setup-hook] 3 "\301\302\300\242\"\207" [remove-hook minibuffer-setup-hook] add-hook minibuffer-setup-hook read-buffer other-buffer confirm-nonexistent-file-or-buffer] 12 (#$ . 248470)])
#@330 Normalize BUFFER-OR-NAME argument of buffer switching functions.
If BUFFER-OR-NAME is nil, return the buffer returned by
`other-buffer'.  Else, if a buffer specified by BUFFER-OR-NAME
exists, return that buffer.  If no such buffer exists, create a
buffer with the name BUFFER-OR-NAME and return that buffer.

(fn BUFFER-OR-NAME)
(defalias 'window-normalize-buffer-to-switch-to #[257 "\211\203\300!\206\301!\302!\210\211\207\303 \207" [get-buffer get-buffer-create set-buffer-major-mode other-buffer] 4 (#$ . 249460)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\300\314\302\303\315DD\316\306\317\310\311\312\320&	\210\300\321\302\303\322DD\323\306\324\310\311\312\325&	\207" [custom-declare-variable switch-to-buffer-preserve-window-point funcall function #[0 "\300\207" [t] 1] "If non-nil, `switch-to-buffer' tries to preserve `window-point'.\nIf this is nil, `switch-to-buffer' displays the buffer at that\nbuffer's `point'.  If this is `already-displayed', it tries to\ndisplay the buffer at its previous position in the selected\nwindow, provided the buffer is currently displayed in some other\nwindow on any visible or iconified frame.  If this is t, it\nunconditionally tries to display the buffer at its previous\nposition in the selected window.\n\nThis variable is ignored if the buffer is already displayed in\nthe selected window or never appeared in it before, or if\n`switch-to-buffer' calls `pop-to-buffer' to display the buffer,\nor non-nil `switch-to-buffer-obey-display-actions' displays it\nin another window." :type (choice (const :tag "Never" nil) (const :tag "If already displayed elsewhere" already-displayed) (const :tag "Always" t)) :group windows :version "26.1" switch-to-buffer-in-dedicated-window #[0 "\300\207" [nil] 1] "Allow switching to buffer in strongly dedicated windows.\nIf non-nil, allow `switch-to-buffer' to proceed when called\ninteractively and the selected window is strongly dedicated to\nits buffer.\n\nThe following values are recognized:\n\nnil - disallow switching; signal an error\n\nprompt - prompt user whether to allow switching\n\npop - perform `pop-to-buffer' instead\n\nt - undedicate selected window and switch\n\nWhen called non-interactively, `switch-to-buffer' always signals\nan error when the selected window is dedicated to its buffer and\nFORCE-SAME-WINDOW is non-nil." (choice (const :tag "Disallow" nil) (const :tag "Prompt" prompt) (const :tag "Pop" pop) (const :tag "Allow" t)) "25.1" switch-to-buffer-obey-display-actions #[0 "\300\207" [nil] 1] "If non-nil, `switch-to-buffer' runs `pop-to-buffer-same-window' instead.\nThis means that when switching the buffer it respects display actions\nspecified by `display-buffer-overriding-action', `display-buffer-alist'\nand other display related variables.  So `switch-to-buffer' will display\nthe buffer in the window specified by the rules from these variables." boolean "27.1"] 10)
#@2297 Display buffer BUFFER-OR-NAME in the selected window.

WARNING: This is NOT the way to work on another buffer temporarily
within a Lisp program!  Use `set-buffer' instead.  That avoids
messing with the window-buffer correspondences.

If the selected window cannot display the specified buffer
because it is a minibuffer window or strongly dedicated to
another buffer, call `pop-to-buffer' to select the buffer in
another window.  In interactive use, if the selected window is
strongly dedicated to its buffer, the value of the option
`switch-to-buffer-in-dedicated-window' specifies how to proceed.

If called interactively, read the buffer name using `read-buffer'.
The variable `confirm-nonexistent-file-or-buffer' determines
whether to request confirmation before creating a new buffer.
See `read-buffer' for features related to input and completion
of buffer names.

BUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil.
If BUFFER-OR-NAME is a string that does not identify an existing
buffer, create a buffer with that name.  If BUFFER-OR-NAME is
nil, switch to the buffer returned by `other-buffer'.

If optional argument NORECORD is non-nil, do not put the buffer
at the front of the buffer list, and do not make the window
displaying it the most recently selected one.

If optional argument FORCE-SAME-WINDOW is non-nil, the buffer
must be displayed in the selected window when called
non-interactively; if that is impossible, signal an error rather
than calling `pop-to-buffer'.  It has no effect when the option
`switch-to-buffer-obey-display-actions' is non-nil.

The option `switch-to-buffer-preserve-window-point' can be used
to make the buffer appear at its last position in the selected
window.

If the option `switch-to-buffer-obey-display-actions' is non-nil,
run the function `pop-to-buffer-same-window' instead.
This may display the buffer in another window as specified by
`display-buffer-overriding-action', `display-buffer-alist' and
other display related variables.  If this results in displaying
the buffer in the selected window, window start and point are adjusted
as prescribed by the option `switch-to-buffer-preserve-window-point'.
Otherwise, these are left alone.

Return the buffer switched to.

(fn BUFFER-OR-NAME &optional NORECORD FORCE-SAME-WINDOW)
(defalias 'switch-to-buffer #[769 "\302!?\303 =\203\203\230\304 \203,\204,\203$\305\306!\210\202\230\307\"\210\202\230\310 \311=\203J\204J\203B\305\312!\210\202\230\307\"\210\202\230\203a\313 \314\"\210\313 =\203`\311\262\210\211\203\230\315 \236	\316=\205s\317\320\"\321\322\"\210\203\226	\311=\204\206\211\203\226\323\313 A@\311#\210\324\322\3258\"\210\266\204\241\326\313 !\210q\207" [switch-to-buffer-obey-display-actions switch-to-buffer-preserve-window-point window-normalize-buffer-to-switch-to window-buffer window-minibuffer-p user-error "Cannot switch buffers in minibuffer window" pop-to-buffer window-dedicated-p t "Cannot switch buffers in a dedicated window" selected-window pop-to-buffer-same-window window-prev-buffers already-displayed get-buffer-window 0 set-window-buffer nil set-window-start set-window-point 2 select-window] 11 (#$ . 252399) (byte-code "?\205L\302 \203\303\202L\304 \305=\204\306\202L	\204#\307\310!\202L	\311\267\202F\312\313\314\315 \"!\203<\316\303\211\"\210\306\202L\307\310!\202L\303\202L\316\303\211\"\210\306\317\320!\303E\207" [switch-to-buffer-obey-display-actions switch-to-buffer-in-dedicated-window window-minibuffer-p nil window-dedicated-p t force-same-window user-error "Cannot switch buffers in a dedicated window" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (prompt 41 pop 66)) y-or-n-p format "Window is dedicated to %s; undedicate it" window-buffer set-window-dedicated-p read-buffer-to-switch "Switch to buffer: "] 4)])
#@906 Select the buffer specified by BUFFER-OR-NAME in another window.
BUFFER-OR-NAME may be a buffer, a string (a buffer name), or
nil.  Return the buffer switched to.

If called interactively, read the buffer name using `read-buffer'.
The variable `confirm-nonexistent-file-or-buffer' determines
whether to request confirmation before creating a new buffer.
See `read-buffer' for features related to input and completion
of buffer names.

If BUFFER-OR-NAME is a string and does not identify an existing
buffer, create a new buffer with that name.  If BUFFER-OR-NAME is
nil, switch to the buffer returned by `other-buffer'.

Optional second argument NORECORD non-nil means do not put this
buffer at the front of the list of recently selected ones.

This uses the function `display-buffer' as a subroutine; see its
documentation for additional customization information.

(fn BUFFER-OR-NAME &optional NORECORD)
(defalias 'switch-to-buffer-other-window #[513 "\301\302\301#)\207" [pop-up-windows t pop-to-buffer] 6 (#$ . 256285) (byte-code "\300\301!C\207" [read-buffer-to-switch "Switch to buffer in other window: "] 2)])
#@886 Switch to buffer BUFFER-OR-NAME in another frame.
BUFFER-OR-NAME may be a buffer, a string (a buffer name), or
nil.  Return the buffer switched to.

If called interactively, read the buffer name using `read-buffer'.
The variable `confirm-nonexistent-file-or-buffer' determines
whether to request confirmation before creating a new buffer.
See `read-buffer' for features related to input and completion
of buffer names.

If BUFFER-OR-NAME is a string and does not identify an existing
buffer, create a new buffer with that name.  If BUFFER-OR-NAME is
nil, switch to the buffer returned by `other-buffer'.

Optional second arg NORECORD non-nil means do not put this
buffer at the front of the list of recently selected ones.

This uses the function `display-buffer' as a subroutine; see its
documentation for additional customization information.

(fn BUFFER-OR-NAME &optional NORECORD)
(defalias 'switch-to-buffer-other-frame #[513 "\301#\207" [display-buffer--other-frame-action pop-to-buffer] 6 (#$ . 257411) (byte-code "\300\301!C\207" [read-buffer-to-switch "Switch to buffer in other frame: "] 2)])
#@490 Set the height in lines of the text display area of WINDOW to HEIGHT.
WINDOW must be a live window and defaults to the selected one.
HEIGHT doesn't include the mode line or header line, if any, or
any partial-height lines in the text display area.

Note that the current implementation of this function cannot
always set the height exactly, but attempts to be conservative,
by allocating more lines than are actually needed in the case
where some error may be present.

(fn WINDOW HEIGHT)
(defalias 'set-window-text-height #[514 "\301\302\"\262\211\303!Z\211\304U?\205\305^\306\")\207" [window-min-height window-normalize-window t window-text-height 0 2 window-resize] 6 (#$ . 258524)])
#@134 Make selected window DELTA columns wider.
Interactively, if no argument is given, make selected window one
column wider.

(fn DELTA)
(defalias 'enlarge-window-horizontally #[257 "\300\301\"\207" [enlarge-window t] 4 (#$ . 259227) "p"])
#@140 Make selected window DELTA columns narrower.
Interactively, if no argument is given, make selected window one
column narrower.

(fn DELTA)
(defalias 'shrink-window-horizontally #[257 "\300\301\"\207" [shrink-window t] 4 (#$ . 259471) "p"])
#@853 Return the number of screen lines in the region.
The number of screen lines may be different from the number of actual lines,
due to line breaking, display table, etc.

Optional arguments BEG and END default to `point-min' and `point-max'
respectively.

If region ends with a newline, ignore it unless optional third argument
COUNT-FINAL-NEWLINE is non-nil.

The optional fourth argument WINDOW specifies the window used for obtaining
parameters such as width, horizontal scrolling, and so on.  The default is
to use the selected window's parameters.

Like `vertical-motion', `count-screen-lines' always uses the current buffer,
regardless of which buffer is displayed in WINDOW.  This makes possible to use
`count-screen-lines' in any buffer, whether or not it is currently displayed
in some window.

(fn &optional BEG END COUNT-FINAL-NEWLINE WINDOW)
(defalias 'count-screen-lines #[1024 "\204e\262\204d\262U\203\300\207\212\214~\210^\2046]\206(`Sf\301U\2036]S\2029]}\210eb\210\302\303 \"T*\207" [0 10 vertical-motion buffer-size] 7 (#$ . 259719)])
#@154 Return the height (in screen lines) of the buffer that WINDOW is displaying.
WINDOW must be a live window and defaults to the selected one.

(fn WINDOW)
(defalias 'window-buffer-height #[257 "\300\301\"\262r\302!q\210\303\304edm$])\207" [window-normalize-window t window-buffer 1 count-screen-lines] 7 (#$ . 260802)])
#@231 Return height in pixels of WINDOW's default face font.
WINDOW must be a live window and defaults to the selected one.

The return value accounts for any remapping of the default face
font on WINDOW's frame.

(fn &optional WINDOW)
(defalias 'window-default-font-height #[256 "\300\301\"\302!\303\304\"\305\306\307\"!\203&\306\310\"\230\204&\311\"\312H\202)\313!\207" [window-normalize-window t window-frame face-font default display-multi-font-p frame-parameter display font font-info 3 frame-char-height] 8 (#$ . 261131)])
#@288 Return height in pixels of a text line in WINDOW.
WINDOW must be a live window and defaults to the selected one.

The return value includes any line spacing defined for WINDOW's
buffer or frame and accounts for any remapping of the default
face on WINDOW's frame.

(fn &optional WINDOW)
(defalias 'window-default-line-height #[256 "\300\301\"\302!\303!\304!\305!\203!\306\307\"\206\"\310\307\"\206\"\311\312!\2033\313\314!_!\2024\\\207" [window-normalize-window t window-default-font-height window-frame window-buffer display-graphic-p buffer-local-value line-spacing frame-parameter 0 floatp truncate frame-char-height] 10 (#$ . 261673)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\210\300\314\302\303\315DD\316\306\307\310\311\312\313&	\210\300\317\302\303\320DD\321\310\311\306\322\312\313&	\210\300\323\302\303\324DD\325\310\311\306\326\312\313&	\207" [custom-declare-variable fit-window-to-buffer-horizontally funcall function #[0 "\300\207" [nil] 1] "Non-nil means `fit-window-to-buffer' can resize windows horizontally.\nIf this is nil, `fit-window-to-buffer' never resizes windows\nhorizontally.  If this is `only', it can resize windows\nhorizontally only.  Any other value means `fit-window-to-buffer'\ncan resize windows in both dimensions." :type boolean :version "24.4" :group help fit-frame-to-buffer #[0 "\300\207" [nil] 1] "Non-nil means `fit-window-to-buffer' can fit a frame to its buffer.\nA frame is fit if and only if its root window is a live window\nand this option is non-nil.  If this is `horizontally', frames\nare resized horizontally only.  If this is `vertically', frames\nare resized vertically only.  Any other non-nil value means\nframes can be resized in both dimensions." fit-frame-to-buffer-margins #[0 "\300\207" [(nil nil nil nil)] 1] "Margins around frame for `fit-frame-to-buffer'.\nThis specifies the numbers of pixels to be left free on the left,\nabove, on the right, and below a frame fitted to its buffer.  Set\nthis to avoid obscuring other desktop objects like the taskbar.\nThe default is nil for each side, which means to not add margins.\n\nThe value specified here can be overridden for a specific frame\nby that frame's `fit-frame-to-buffer-margins' parameter, if\npresent.  See also `fit-frame-to-buffer-sizes'." (list (choice :tag "Left" :value nil :format "%[LeftMargin%] %v  " (const :tag "None" :format "%t" nil) (integer :tag "Pixels" :size 5)) (choice :tag "Top" :value nil :format "%[TopMargin%] %v  " (const :tag "None" :format "%t" nil) (integer :tag "Pixels" :size 5)) (choice :tag "Right" :value nil :format "%[RightMargin%] %v  " (const :tag "None" :format "%t" nil) (integer :tag "Pixels" :size 5)) (choice :tag "Bottom" :value nil :format "%[BottomMargin%] %v  " (const :tag "None" :format "%t" nil) (integer :tag "Pixels" :size 5))) fit-frame-to-buffer-sizes #[0 "\300\207" [(nil nil nil nil)] 1] "Size boundaries of frame for `fit-frame-to-buffer'.\nThis list specifies the total maximum and minimum lines and\nmaximum and minimum columns of the root window of any frame that\nshall be fit to its buffer.  If any of these values is non-nil,\nit overrides the corresponding argument of `fit-frame-to-buffer'.\n\nOn window systems where the menubar can wrap, fitting a frame to\nits buffer may swallow the last line(s).  Specifying an\nappropriate minimum width value here can avoid such wrapping.\n\nSee also `fit-frame-to-buffer-margins'." (list (choice :tag "Maximum Height" :value nil :format "%[MaxHeight%] %v  " (const :tag "None" :format "%t" nil) (integer :tag "Lines" :size 5)) (choice :tag "Minimum Height" :value nil :format "%[MinHeight%] %v  " (const :tag "None" :format "%t" nil) (integer :tag "Lines" :size 5)) (choice :tag "Maximum Width" :value nil :format "%[MaxWidth%] %v  " (const :tag "None" :format "%t" nil) (integer :tag "Columns" :size 5)) (choice :tag "Minimum Width" :value nil :format "%[MinWidth%] %v\n" (const :tag "None" :format "%t" nil) (integer :tag "Columns" :size 5)))] 10)
#@100 Return MARGIN if it's a number between LEFT and RIGHT.
Return 0 otherwise.

(fn MARGIN LEFT RIGHT)
(defalias 'window--sanitize-margin #[771 "\247\203ZX\203X\203\207\300\207" [0] 6 (#$ . 265695)])
#@280 Adjust size of minibuffer FRAME to display its contents.
FRAME should be a minibuffer-only frame and defaults to the
selected one.  Unlike `fit-frame-to-buffer' FRAME will fit to the
contents of its buffer with any leading or trailing empty lines
included.

(fn &optional FRAME)
(defalias 'fit-mini-frame-to-buffer #[256 "\300!\207" [fit-frame-to-buffer-1] 3 (#$ . 265911)])
#@975 Adjust size of FRAME to display the contents of its buffer exactly.
FRAME can be any live frame and defaults to the selected one.
Fit only if FRAME's root window is live.

MAX-HEIGHT, MIN-HEIGHT, MAX-WIDTH and MIN-WIDTH specify bounds on
the new total size of FRAME's root window.  MIN-HEIGHT and
MIN-WIDTH default to the values of `window-min-height' and
`window-min-width' respectively.  These arguments are specified
in the canonical character width and height of FRAME.

If the optional argument ONLY is `vertically', resize the frame
vertically only.  If ONLY is `horizontally', resize the frame
horizontally only.

The new position and size of FRAME can be additionally determined
by customizing the options `fit-frame-to-buffer-sizes' and
`fit-frame-to-buffer-margins' or setting the corresponding
parameters of FRAME.

Any leading or trailing empty lines of the buffer content are not
considered.

(fn &optional FRAME MAX-HEIGHT MIN-HEIGHT MAX-WIDTH MIN-WIDTH ONLY)
(defalias 'fit-frame-to-buffer #[1536 "\300\301\211&\207" [fit-frame-to-buffer-1 t] 15 (#$ . 266294) nil])
#@280 Helper function for `fit-frame-to-buffer'.
FROM and TO are the buffer positions to determine the size to fit
to, see `window-text-pixel-size'.  The remaining arguments are as
for `fit-frame-to-buffer'.

(fn &optional FRAME MAX-HEIGHT MIN-HEIGHT MAX-WIDTH MIN-WIDTH ONLY FROM TO)
(defalias 'fit-frame-to-buffer-1 #[2048 "\305\306!\204\n\307\310!\210\311!\262\312\313	!!\205\273\314!\315	!\313\n!\316!\317\f!\211?\2055\320
!?\205>\321\236A\203H\322!\202K\3238\203U\324!\202X\3258\203d\326\211F\202h\327\236A\330\331\"\211\203z\3238@Z\202~\332!\203\214\3258A@Z\202\220\333!\334!\335!\336
\337\"\340\337\"ZZZZ\341!\211@A\342 \300\"\206\277\211@\203\316\343@\326#\202\321@\211A@\203\343\343A@\326#\202\347A@\3238\203\373\343\3238	#Z\202@\3238\\\3258\203\343\3258#Z\202 A@\3258\\\342$\302\"\206)\n#\247\2037#_\202G\211@\247\203E\211@_\202G\344#\326\\^#\247\203_#_\202vA@\247\203oA@_\202v\345\346\211\337$#\247\203\204#_\202\226\3238\247\203\224\3238_\202\226\344	#\326\\^#\247\203\256# _\202\302\3258\247\203\273\3258\202\302\345\337\346\337$\347$$%\211@]A]\350=\204\342&\351=\203\350\346\262\202\370\352=\204\365&\353=\203\370\346\262\2039\f\204\354%\355#$\245$_\262\\\262
\\\211V\203.	
ZZ]\262\2028	W\2038	\262\210\211\203}\f\204O\354$\355##\245#_\262\211\\\262\f\\\211\nV\203p\fZZ]\262\202|
\fW\203|\262\210\203\210\\\202\214\334,!\262\211\203\231\211\\\202\235\335,!\262\356,\357B\360B\350\361BB\352\361BBF\")\266\244\207" [fit-frame-to-buffer-margins left-margin fit-frame-to-buffer-sizes window-size-fixed frame-resize-pixelwise fboundp display-monitor-attributes-list user-error "Cannot resize frame in non-graphic Emacs" window-normalize-frame window-live-p frame-root-window frame-char-width frame-char-height window-default-line-height frame-parent frame-monitor-attributes geometry frame-native-width 2 frame-native-height 3 0 workarea frame-edges outer-edges frame-pixel-width frame-pixel-height frame-text-width frame-text-height window-body-width t window-body-height frame-position frame-parameter window--sanitize-margin - window-min-size nil window-text-pixel-size width vertically height horizontally + -1 modify-frame-parameters left top text-pixels] 52 (#$ . 267395)])
#@1903 Adjust size of WINDOW to display its buffer's contents exactly.
WINDOW must be a live window and defaults to the selected one.

If WINDOW is part of a vertical combination, adjust WINDOW's
height.  The new height is calculated from the actual height of
the accessible portion of its buffer.  The optional argument
MAX-HEIGHT specifies a maximum height and defaults to the height
of WINDOW's frame.  The optional argument MIN-HEIGHT specifies a
minimum height and defaults to `window-min-height'.  Both
MAX-HEIGHT and MIN-HEIGHT are specified in lines and include mode
and header line and a bottom divider, if any.

If WINDOW is part of a horizontal combination and the value of
the option `fit-window-to-buffer-horizontally' is non-nil, adjust
WINDOW's width.  The new width of WINDOW is calculated from the
maximum length of its buffer's lines that follow the current
start position of WINDOW.  The optional argument MAX-WIDTH
specifies a maximum width and defaults to the width of WINDOW's
frame.  The optional argument MIN-WIDTH specifies a minimum width
and defaults to `window-min-width'.  Both MAX-WIDTH and MIN-WIDTH
are specified in columns and include fringes, margins, a
scrollbar and a vertical divider, if any.

Optional argument PRESERVE-SIZE non-nil means to preserve the
size of WINDOW (see `window-preserve-size').

Fit pixelwise if the option `window-resize-pixelwise' is non-nil.
If WINDOW is its frame's root window and the option
`fit-frame-to-buffer' is non-nil, call `fit-frame-to-buffer' to
adjust the frame's size.

Note that even if this function makes WINDOW large enough to show
_all_ parts of its buffer you might not see the first part when
WINDOW was scrolled.  If WINDOW is resized horizontally, you will
not see the top of its buffer unless WINDOW starts at its minimum
accessible position.

(fn &optional WINDOW MAX-HEIGHT MIN-HEIGHT MAX-WIDTH MIN-WIDTH PRESERVE-SIZE)
(defalias 'fit-window-to-buffer #[1536 "\306\307\"\262\310!=\203+\205\300\311!\312>\205(&\207	\311!\313!\n\314=\204\315	\316\"\204\317	!\203\320	!\321\n\322#\247\203v\203d	_\202f\203q\323\f!\202r]\202\213\203\200\f_\202\201\f\324\f\322	$]\n\247\203\266\325
\322\322\307\322
&\\\203\254\f_\202\262\f_\245^\202\305\325
\322\322\307\322
&\\\326\327\322\307\322\330\f!\307&A\331!\332!#\204\355\326\333#\245\262^]\262\211U?\205\334!\210\335Z\322\f%\210\205\334\322\307#\266\205\202\n\205\315	\307\316#?\205\317	\307\"\205\336!\321\n\307#\247\203a\203O_\202Q\203\\\337\f!\202]
]\202x\203l%_\202n%\324\f\322	$]\247\203\237\325
\307\322\307\322
&\\\203\231\n_\202\233	^\202\256\325
\307\322\307\322
&\\\327
\340!\322\341\311!!\342
\"\f\203\313\343\202\315\n_%@\344\n\"Z\\\204\350\326\333#\245\262^]\262\211U?\205\334\307\"\210\335Z\307\f%\210\205\334\307\211#\266\205\266\203\207" [fit-frame-to-buffer window-resize-pixelwise fit-window-to-buffer-horizontally window-safe-min-height window-min-height window-safe-min-width window-normalize-window t frame-root-window window-frame (vertically horizontally) frame-char-height only window-size-fixed-p preserved window-combined-p window-default-line-height window-size nil window-safe-min-pixel-height window-min-size window-max-delta + window-text-pixel-size frame-pixel-height window-scroll-bar-height window-bottom-divider-width -1 window-preserve-size window-resize-no-error frame-char-width window-safe-min-pixel-width window-start frame-pixel-width window-body-height 1 window-body-width window-min-width] 21 (#$ . 269861) nil])
#@130 Return t if WINDOW can be shrunk without shrinking other windows.
WINDOW defaults to the selected window.

(fn &optional WINDOW)
(defalias 'window-safely-shrinkable-p #[256 "\300\206\301 !r\302\303\304\305\306!\307\"\310$\216\311@\312\"\210\313 \3108\310\313\314 !8U\2062\211@\313\315 !@U\262*\207" [internal--before-with-selected-window selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord window-edges previous-window next-window] 8 (#$ . 273581)])
#@646 Shrink height of WINDOW if its buffer doesn't need so many lines.
More precisely, shrink WINDOW vertically to be as small as
possible, while still showing the full contents of its buffer.
WINDOW must be a live window and defaults to the selected one.

Do not shrink WINDOW to less than `window-min-height' lines.  Do
nothing if the buffer contains more lines than the present window
height, or if some of the window's contents are scrolled out of
view, or if shrinking this window would also shrink another
window, or if the window is the only window of its frame.

Return non-nil if the window was shrunk, nil otherwise.

(fn &optional WINDOW)
(defalias 'shrink-window-if-larger-than-buffer #[256 "\300\301\"\262\302!\205\303e\"\205\304\305!\"\207" [window-normalize-window t window-combined-p pos-visible-in-window-p fit-window-to-buffer window-total-height] 5 (#$ . 274122) nil])
#@76 Support function for `window-largest-empty-rectangle'.

(fn QUAD MAXIMUMS)
(defalias 'window-largest-empty-rectangle--maximums-1 #[514 "\211\204C\207@@@V\203B\207\211@\300A\"B\207" [window-largest-empty-rectangle--maximums-1] 6 (#$ . 275021)])
#@82 Support function for `window-largest-empty-rectangle'.

(fn QUAD MAXIMUMS COUNT)
(defalias 'window-largest-empty-rectangle--maximums #[771 "\300\"\262GV\203\301!\207\207" [window-largest-empty-rectangle--maximums-1 nbutlast] 6 (#$ . 275282)])
#@77 Support function for `window-largest-empty-rectangle'.

(fn MAXIMUMS COUNT)
(defalias 'window-largest-empty-rectangle--disjoint-maximums #[514 "\300\301\"\262\302\303\203bW\203b@\3048\3058\3062W\211\203K\211@\3048\3058W\2037V\202:W\203B\307\306\303\"\210\266A\266\202\202\210B\262T\211\2620\210A\262\266\202\211\237\207" [sort #[514 "@@V\207" [] 4 "\n\n(fn X Y)"] 0 nil 2 3 drop throw] 14 (#$ . 275540)])
#@1490 Return dimensions of largest empty rectangle in WINDOW.
WINDOW must be a live window and defaults to the selected one.

The return value is a triple of the width and the start and end
Y-coordinates of the largest rectangle that can be inscribed into
the empty space (the space not displaying any text) of WINDOW's
text area.  The return value is nil if the current glyph matrix
of WINDOW is not up-to-date.

Optional argument COUNT, if non-nil, specifies the maximum number
of rectangles to return.  This means that the return value is a
list of triples specifying rectangles with the largest rectangle
first.  COUNT can be also a cons cell whose car specifies the
number of rectangles to return and whose cdr, if non-nil, states
that all rectangles returned must be disjoint.

Note that the right edge of any rectangle returned by this
function is the right edge of WINDOW (the left edge if its buffer
displays RTL text).

Optional arguments MIN-WIDTH and MIN-HEIGHT, if non-nil, specify
the minimum width and height of any rectangle returned.

Optional argument POSITIONS, if non-nil, is a cons cell whose car
specifies the uppermost and whose cdr specifies the lowermost
pixel position that must be covered by any rectangle returned.
Note that positions are counted from the start of the text area
of WINDOW.

Optional argument LEFT, if non-nil, means to return values suitable for
buffers displaying right to left text.

(fn &optional WINDOW COUNT MIN-WIDTH MIN-HEIGHT POSITIONS LEFT)
(defalias 'window-largest-empty-rectangle #[1536 "\300\301\":\205\fA\247\203\206':\205'@\247\205'@\302\303\211\301\211	&\304\211\303\211\211\211\211\211\211\211\211\211\211\211\211\203?@\262
\203Z\f@\f@@Y\203w\204c\262\f\fB\262\f\fA\262A\262\202@@\262	A\262\f@\262\203\222@A\202\224\n\262A\262Z_\262\203\262W\204\203\301ZW\204\203\327@V\204AW\204\203\203\360FB\262\202\305			F#\262\202V\203\262\262\262\262\2038@@
@V\2038@@	AB\fAB\262\f\202@\262\202@\203\360@A\262\n\203\360@\262	A\262\f@\262\203j@A\202l\n\262\nZ_\262\203\205W\204J\203\225	ZW\204J\203\254@V\204J	AW\204J\203\327\203\305\fFB\262\202J\305		
F#\262\202JV\203J\262\262\262	\262\202J\211\203\203\306\"\202\211\202
\304V\205E\207" [window-normalize-window t window-lines-pixel-dimensions nil 0 window-largest-empty-rectangle--maximums window-largest-empty-rectangle--disjoint-maximums] 30 (#$ . 275994)])
#@57 Kill the current buffer and delete the selected window.
(defalias 'kill-buffer-and-window #[0 "\300 p\301\302\303\304\305\306\"\307\"\310$\216\311\312\313\211$\210\314p!\205)\300 =\205)\315 )\207" [selected-window #[0 "\3001\301 0\207\210\302\207" [(error) delete-window nil] 1] make-byte-code 0 "\3021r\300q\210\303\304\301\305#)0\207\210\306\207" vconcat vector [(error) remove-hook kill-buffer-hook t nil] 4 add-hook kill-buffer-hook t kill-buffer delete-window] 10 (#$ . 278637) nil])
(defvar window-group-start-function nil)
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local window-group-start-function put permanent-local t] 4)
#@350 Return position at which display currently starts in the group of
windows containing WINDOW.  When a grouping mode (such as Follow Mode)
is not active, this function is identical to `window-start'.

WINDOW must be a live window and defaults to the selected one.
This is updated by redisplay or by calling `set-window*-start'.

(fn &optional WINDOW)
(defalias 'window-group-start #[256 "\301!\203\n!\207\302!\207" [window-group-start-function functionp window-start] 3 (#$ . 279316)])
(defvar window-group-end-function nil)
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local window-group-end-function put permanent-local t] 4)
#@651 Return position at which display currently ends in the group of
windows containing WINDOW.  When a grouping mode (such as Follow Mode)
is not active, this function is identical to `window-end'.

WINDOW must be a live window and defaults to the selected one.
This is updated by redisplay, when it runs to completion.
Simply changing the buffer text or setting `window-group-start'
does not update this value.
Return nil if there is no recorded value.  (This can happen if the
last redisplay of WINDOW was preempted, and did not finish.)
If UPDATE is non-nil, compute the up-to-date position
if it isn't already recorded.

(fn &optional WINDOW UPDATE)
(defalias 'window-group-end #[512 "\301!\203\"\207\302\"\207" [window-group-end-function functionp window-end] 5 (#$ . 279979)])
(defvar set-window-group-start-function nil)
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local set-window-group-start-function put permanent-local t] 4)
#@452 Make display in the group of windows containing WINDOW start at
position POS in WINDOW's buffer.  When a grouping mode (such as Follow
Mode) is not active, this function is identical to `set-window-start'.

WINDOW must be a live window and defaults to the selected one.  Return
POS.  Optional third arg NOFORCE non-nil inhibits next redisplay from
overriding motion of point in order to display at this exact start.

(fn WINDOW POS &optional NOFORCE)
(defalias 'set-window-group-start #[770 "\301!\203\f#\207\302#\207" [set-window-group-start-function functionp set-window-start] 7 (#$ . 280952)])
(defvar recenter-window-group-function nil)
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local recenter-window-group-function put permanent-local t] 4)
#@1022 Center point in the group of windows containing the selected window
and maybe redisplay frame.  When a grouping mode (such as Follow Mode)
is not active, this function is identical to `recenter'.

With a numeric prefix argument ARG, recenter putting point on screen line ARG
relative to the first window in the selected window group.  If ARG is
negative, it counts up from the bottom of the last window in the
group.  (ARG should be less than the total height of the window group.)

If ARG is omitted or nil, then recenter with point on the middle line of
the selected window group; if the variable `recenter-redisplay' is
non-nil, also erase the entire frame and redraw it (when
`auto-resize-tool-bars' is set to `grow-only', this resets the
tool-bar's height to the minimum height needed); if
`recenter-redisplay' has the special value `tty', then only tty frames
are redrawn.

Just C-u as prefix means put point in the center of the window
and redisplay normally--don't erase and redraw the frame.

(fn &optional ARG)
(defalias 'recenter-window-group #[256 "\301!\203\n!\207\302!\207" [recenter-window-group-function functionp recenter] 3 (#$ . 281744)])
(defvar pos-visible-in-window-group-p-function nil)
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local pos-visible-in-window-group-p-function put permanent-local t] 4)
#@1252 Return non-nil if position POS is currently on the frame in the
window group containing WINDOW.  When a grouping mode (such as Follow
Mode) is not active, this function is identical to
`pos-visible-in-window-p'.

WINDOW must be a live window and defaults to the selected one.

Return nil if that position is scrolled vertically out of view.  If a
character is only partially visible, nil is returned, unless the
optional argument PARTIALLY is non-nil.  If POS is only out of view
because of horizontal scrolling, return non-nil.  If POS is t, it
specifies the position of the last visible glyph in the window group.
POS defaults to point in WINDOW; WINDOW defaults to the selected
window.

If POS is visible, return t if PARTIALLY is nil; if PARTIALLY is non-nil,
the return value is a list of 2 or 6 elements (X Y [RTOP RBOT ROWH VPOS]),
where X and Y are the pixel coordinates relative to the top left corner
of the window.  The remaining elements are omitted if the character after
POS is fully visible; otherwise, RTOP and RBOT are the number of pixels
off-window at the top and bottom of the screen line ("row") containing
POS, ROWH is the visible height of that row, and VPOS is the row number
(zero-based).

(fn &optional POS WINDOW PARTIALLY)
(defalias 'pos-visible-in-window-group-p #[768 "\301!\203\f#\207\302#\207" [pos-visible-in-window-group-p-function functionp pos-visible-in-window-p] 7 (#$ . 283108)])
(defvar selected-window-group-function nil)
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local selected-window-group-function put permanent-local t] 4)
#@189 Return the list of windows in the group containing the selected window.
When a grouping mode (such as Follow Mode) is not active, the
result is a list containing only the selected window.
(defalias 'selected-window-group #[0 "\301!\203	 \207\302 C\207" [selected-window-group-function functionp selected-window] 2 (#$ . 284720)])
(defvar move-to-window-group-line-function nil)
(byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local move-to-window-group-line-function put permanent-local t] 4)
#@423 Position point relative to the current group of windows.
When a grouping mode (such as Follow Mode) is not active, this
function is identical to `move-to-window-line'.

ARG nil means position point at center of the window group.
Else, ARG specifies the vertical position within the window
group; zero means top of first window in the group, negative
means relative to the bottom of the last window in the group.

(fn ARG)
(defalias 'move-to-window-group-line #[257 "\301!\203\n!\207\302!\207" [move-to-window-group-line-function functionp move-to-window-line] 3 (#$ . 285245)])
#@193 Indicates the last recenter operation performed.
Possible values: `top', `middle', `bottom', integer or float numbers.
It can also be nil, which means the first value in `recenter-positions'.
(defvar recenter-last-op nil (#$ . 285835))
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable recenter-positions funcall function #[0 "\300\207" [(middle top bottom)] 1] "Cycling order for `recenter-top-bottom'.\nA list of elements with possible values `top', `middle', `bottom',\ninteger or float numbers that define the cycling order for\nthe command `recenter-top-bottom'.\n\nTop and bottom destinations are `scroll-margin' lines from the true\nwindow top and bottom.  Middle redraws the frame and centers point\nvertically within the window.  Integer number moves current line to\nthe specified absolute window-line.  Float number between 0.0 and 1.0\nmeans the percentage of the screen space from the top.  The default\ncycling order is middle -> top -> bottom." :type (repeat (choice (const :tag "Top" top) (const :tag "Middle" middle) (const :tag "Bottom" bottom) (integer :tag "Line number") (float :tag "Percentage"))) :version "23.2" :group windows] 10)
#@597 Scroll the window so that current line is in the middle of the window.
Successive invocations scroll the window in a cyclical order to put
the current line at certain places within the window, as determined by
`recenter-positions'.  By default, the second invocation puts the
current line at the top-most window line, the third invocation puts it
on the bottom-most window line, and then the order is reused in a
cyclical manner.

With numeric prefix ARG, move current line ARG lines below the window top.
With plain \[universal-argument], move current line to window center.

(fn &optional ARG)
(defalias 'recenter-top-bottom #[256 "\211\203	\305\306\"\207	=\203\n\235A\206@\202@\307\f]\310\311 \312\245!^\n\313\267\202E\305\314\306\"\202`\305\306\"\202`\305\315Z\306\"\202`\n\250\203Q\305\n\306\"\202`\316\n!\205`\305\317\n\320 _!\306\"\207" [this-command last-command recenter-last-op recenter-positions scroll-margin recenter t 0 truncate window-body-height 4.0 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (middle 46 top 53 bottom 60)) nil -1 floatp round window-height] 6 (#$ . 287043) "P"])
(define-key global-map [12] 'recenter-top-bottom)
#@252 Position point relative to window.

With a prefix argument ARG, acts like `move-to-window-line'.

With no argument, positions point at center of window.
Successive calls position point at positions defined
by `recenter-positions'.

(fn &optional ARG)
(defalias 'move-to-window-line-top-bottom #[256 "\211\203\305!\207	=\203\n\235A\206@\202@\306\f]\307\310 \311\245!^\n\312\267\202A\313\305!\202Z\305!\202Z\305\314Z!\202Z\n\250\203L\305\n!\202Z\315\n!\205Z\305\316\n\317 _!!\207" [this-command last-command recenter-last-op recenter-positions scroll-margin move-to-window-line 0 truncate window-body-height 4.0 #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (middle 45 top 51 bottom 57)) call-interactively -1 floatp round window-height] 6 (#$ . 288260) "P"])
(byte-code "\301\302\303#\210\304\305\306\307\310DD\311\312\313\314\315\316\317&	\207" [global-map define-key [134217842] move-to-window-line-top-bottom custom-declare-variable scroll-error-top-bottom funcall function #[0 "\300\207" [nil] 1] "Move point to top/bottom of buffer before signaling a scrolling error.\nA value of nil means just signal an error if no more scrolling possible.\nA value of t means point moves to the beginning or the end of the buffer\n(depending on scrolling direction) when no more scrolling possible.\nWhen point is already on that position, then signal an error." :type boolean :group windows :version "24.1"] 10)
#@455 Scroll text of selected window upward ARG lines; or near full screen if no ARG.
If `scroll-error-top-bottom' is non-nil and `scroll-up' cannot
scroll window further, move cursor to the bottom line.
When point is already on that position, then signal an error.
A near full screen is `next-screen-context-lines' less than a full screen.
Negative ARG means scroll downward.
If ARG is the atom `-', scroll downward by nearly full screen.

(fn &optional ARG)
(defalias 'scroll-up-command #[256 "\204\301!\207\211\302=\203\303\304!\207\305!\306W\203!\303\305![!\207m\203)\301!\207\30712\301!0\207\210\211\203:\211y\207db\207" [scroll-error-top-bottom scroll-up - scroll-down-command nil prefix-numeric-value 0 (end-of-buffer)] 4 (#$ . 289733) "^P"])
(put 'scroll-up-command 'scroll-command t)
#@448 Scroll text of selected window down ARG lines; or near full screen if no ARG.
If `scroll-error-top-bottom' is non-nil and `scroll-down' cannot
scroll window further, move cursor to the top line.
When point is already on that position, then signal an error.
A near full screen is `next-screen-context-lines' less than a full screen.
Negative ARG means scroll upward.
If ARG is the atom `-', scroll upward by nearly full screen.

(fn &optional ARG)
(defalias 'scroll-down-command #[256 "\204\301!\207\211\302=\203\303\304!\207\305!\306W\203!\303\305![!\207o\203)\301!\207\30712\301!0\207\210\211\203;\211[y\207eb\207" [scroll-error-top-bottom scroll-down - scroll-up-command nil prefix-numeric-value 0 (beginning-of-buffer)] 4 (#$ . 290541) "^P"])
(put 'scroll-down-command 'scroll-command t)
#@217 Scroll text of selected window upward ARG lines; or one line if no ARG.
If ARG is omitted or nil, scroll upward by one line.
This is different from `scroll-up-command' that scrolls a full screen.

(fn &optional ARG)
(defalias 'scroll-up-line #[256 "\300\206\301!\207" [scroll-up 1] 3 (#$ . 291353) "p"])
(put 'scroll-up-line 'scroll-command t)
#@215 Scroll text of selected window down ARG lines; or one line if no ARG.
If ARG is omitted or nil, scroll down by one line.
This is different from `scroll-down-command' that scrolls a full screen.

(fn &optional ARG)
(defalias 'scroll-down-line #[256 "\300\206\301!\207" [scroll-down 1] 3 (#$ . 291707) "p"])
(put 'scroll-down-line 'scroll-command t)
#@170 Move point to the beginning of the buffer in the other window.
Leave mark at previous position.
With arg N, put point N/10 of the way from the true beginning.

(fn ARG)
(defalias 'beginning-of-buffer-other-window #[257 "\300\301 !r\302\303\304\305\306!\307\"\310$\216\311@\312\"\210\313!\210\314\315!*\207" [internal--before-with-selected-window other-window-for-scrolling make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord beginning-of-buffer recenter (t)] 8 (#$ . 292065) "P"])
#@158 Move point to the end of the buffer in the other window.
Leave mark at previous position.
With arg N, put point N/10 of the way from the true end.

(fn ARG)
(defalias 'end-of-buffer-other-window #[257 "\300\301 !r\302\303\304\305\306!\307\"\310$\216\311@\312\"\210\313!\210\314\315!*\207" [internal--before-with-selected-window other-window-for-scrolling make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord end-of-buffer recenter (t)] 8 (#$ . 292616) "P"])
#@45 Timer used by delayed window autoselection.
(defvar mouse-autoselect-window-timer nil (#$ . 293142))
#@64 First mouse position recorded by delayed window autoselection.
(defvar mouse-autoselect-window-position-1 nil (#$ . 293249))
#@63 Last mouse position recorded by delayed window autoselection.
(defvar mouse-autoselect-window-position nil (#$ . 293380))
#@55 Last window recorded by delayed window autoselection.
(defvar mouse-autoselect-window-window nil (#$ . 293508))
#@252 When non-nil, special state of delayed window autoselection.
Possible values are `suspend' (suspend autoselection after a menu or
scrollbar interaction) and `select' (the next invocation of
`handle-select-window' shall select the window immediately).
(defvar mouse-autoselect-window-state nil (#$ . 293627))
#@114 Cancel delayed window autoselection.
Optional argument FORCE means cancel unconditionally.

(fn &optional FORCE)
(defalias 'mouse-autoselect-window-cancel #[256 "\211?\205\305>\206\306=\205\307\310	!8\311>?\205.\312\211\313\f!\203*\314\f!\210\315\316\317\"\207" [this-command last-input-event mouse-autoselect-window-state mouse-autoselect-window-position-1 mouse-autoselect-window-timer (handle-select-window handle-switch-frame) scroll-bar-toolkit-scroll 4 event-end (handle end-scroll) nil timerp cancel-timer remove-hook pre-command-hook mouse-autoselect-window-cancel] 5 (#$ . 293942)])
#@320 Start delayed window autoselection.
MOUSE-POSITION is the last position where the mouse was seen as returned
by `mouse-position'.  Optional argument WINDOW non-nil denotes the
window where the mouse was seen.  Optional argument SUSPEND non-nil
means suspend autoselection.

(fn MOUSE-POSITION &optional WINDOW SUSPEND)
(defalias 'mouse-autoselect-window-start #[769 "\203\211\205
\305\306\307!\310\311#\211\207" [mouse-autoselect-window-position mouse-autoselect-window-window mouse-autoselect-window-state mouse-autoselect-window mouse-autoselect-window-timer suspend run-at-time abs nil mouse-autoselect-window-select] 7 (#$ . 294553)])
#@260 Select window with delayed window autoselection.
If the mouse position has stabilized in a non-selected window, select
that window.  The minibuffer window is selected only if the minibuffer
is active.  This function is run by `mouse-autoselect-window-timer'.
(defalias 'mouse-autoselect-window-select #[0 "\306 \211A@\247\205\f\211A@AA\247\205AA\205 \211\205 @\211\205)\307#\310\311!\2034\311 \204L\211\203T\312A\"\211:?\205G\211\313>?\262\203T\314\315\316#\202\276\317=\204f	\247\203l\306 \n\232\203l\314!\202\276\211\203\245	\247\203\207	\320Y\203\201\211=\204\207\f\232\203\245\321!\203\224\211\322 =\203\245\323\316!\210\324\325CD
B\211\202\276	\247\203\260\f\232\203\266\323\316!\202\276\211\205\276\314\"\207" [mouse-autoselect-window-state mouse-autoselect-window mouse-autoselect-window-position-1 mouse-autoselect-window-window mouse-autoselect-window-position unread-command-events mouse-position window-at fboundp menu-or-popup-active-p coordinates-in-window-p (left-margin right-margin) mouse-autoselect-window-start nil t suspend 0 window-minibuffer-p active-minibuffer-window mouse-autoselect-window-cancel select select-window] 9 (#$ . 295210)])
#@42 Handle select-window events.

(fn EVENT)
(defalias 'handle-select-window #[257 "\304!\211@\262\305!\205\306!\307 \305!?\206R\247\203:	\310=\204:\311 \312\313!\210\211\314\"\210\315\316\312\"\262\206R\307 =\204H\317\320\"\206R\321!\205R\322!??\205\222\323\324\325!\210\326\323!\210\327!\210\330 ?\206\222?\206\222\317\331\"\204~\332\"?\206\222\333=\203\216\334!\210\335!\202\222\334\313\"\207" [mouse-autoselect-window mouse-autoselect-window-state mouse-autoselect-window-position-1 focus-follows-mouse event-start window-live-p window-frame selected-frame select mouse-position mouse-autoselect-window-cancel t mouse-autoselect-window-start add-hook pre-command-hook frame-parameter no-accept-focus window-minibuffer-p minibuffer-window-active-p nil run-hooks mouse-leave-buffer-hook message select-window display-multi-frame-p parent-frame frame-ancestor-p auto-raise x-focus-frame raise-frame] 8 (#$ . 296427) "^e"])
#@363 Return non-nil if lines in WINDOW are specifically truncated due to its width.
WINDOW must be a live window and defaults to the selected one.
Return nil if WINDOW is not a partial-width window
 (regardless of the value of `truncate-lines').
Otherwise, consult the value of `truncate-partial-width-windows'
 for the buffer shown in WINDOW.

(fn &optional WINDOW)
(defalias 'truncated-partial-width-window-p #[256 "\300\301\"\262\302!?\205#\303\304\305!\"\211\250\203 \306!W\202!\211\262\207" [window-normalize-window t window-full-width-p buffer-local-value truncate-partial-width-windows window-buffer window-width] 5 (#$ . 297394)])
(byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313&	\207" [custom-declare-variable window-adjust-process-window-size-function funcall function #[0 "\300\207" [window-adjust-process-window-size-smallest] 1] "Control how Emacs chooses inferior process window sizes.\nEmacs uses this function to tell processes the space they have\navailable for displaying their output.  After each window\nconfiguration change, Emacs calls the value of\n`window-adjust-process-window-size-function' for each process\nwith a buffer being displayed in at least one window.\nThis function is responsible for combining the sizes of the\ndisplayed windows and returning a cons (WIDTH . HEIGHT)\ndescribing the width and height with which Emacs will call\n`set-process-window-size' for that process.  If the function\nreturns nil, Emacs does not call `set-process-window-size'.\n\nThis function is called with the process buffer as the current\nbuffer and with two arguments: the process and a list of windows\ndisplaying process.  Modes can make this variable buffer-local;\nadditionally, the `adjust-window-size-function' process property\noverrides the global or buffer-local value of\n`window-adjust-process-window-size-function'." :type (choice (const :tag "Minimum area of any window" window-adjust-process-window-size-smallest) (const :tag "Maximum area of any window" window-adjust-process-window-size-largest) (const :tag "Do not adjust process window sizes" ignore) function) :group windows :version "25.1"] 10)
#@217 Adjust the window sizes of a process.
WINDOWS is a list of windows associated with that process.  REDUCER is
a two-argument function used to combine the widths and heights of
the given windows.

(fn REDUCER WINDOWS)
(defalias 'window-adjust-process-window-size #[514 "\211\205e\300@!\301@!r\302\303\304\305\306!\307\"\310$\216\311@\312\"\210\313\314 !*\262A\211\203_\211@\300!\"\262\301!r\302\303\304\305\306!\315\"\310$\216\311@\312\"\210\313\314 !*\262\"\262A\266\202\202(\210B\266\202\207" [window-max-chars-per-line internal--before-with-selected-window make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 select-window norecord floor window-screen-lines [internal--after-with-selected-window]] 15 (#$ . 299555)])
#@189 Adjust the process window size of PROCESS.
WINDOWS is a list of windows associated with PROCESS.  Choose the
smallest area available for displaying PROCESS's output.

(fn PROCESS WINDOWS)
(defalias 'window-adjust-process-window-size-smallest #[514 "\300\301\"\207" [window-adjust-process-window-size min] 5 (#$ . 300340)])
#@188 Adjust the process window size of PROCESS.
WINDOWS is a list of windows associated with PROCESS.  Choose the
largest area available for displaying PROCESS's output.

(fn PROCESS WINDOWS)
(defalias 'window-adjust-process-window-size-largest #[514 "\300\301\"\207" [window-adjust-process-window-size max] 5 (#$ . 300671)])
#@150 Return an alist mapping processes to associated windows.
A window is associated with a process if that window is
displaying that processes's buffer.
(defalias 'window--process-window-list #[0 "\300 \301C\203\302\303\304\305\306\307\"\310\"\311\312%\313\314#\210\211\242\207" [process-list nil walk-windows make-byte-code 257 "\302!\300\211@\303!\2039\304!=\2039\211\301\242\236\211\203)\211\211AB\241\266\2023\301D\301\242B\240\210\305\262\202>A\211\262\262\205F\202\207" vconcat vector [window-buffer process-live-p process-buffer nil] 9 "\n\n(fn WINDOW)" 1 t] 10 (#$ . 301000)])
#@72 Update process window sizes to match the current window configuration.
(defalias 'window--adjust-process-windows #[0 "\301\302!\205I\303 \211\205G\211@\211@\30418r\305!q\210\306\307\"\206\"A\"\211\2051\310A@#\262)0\202>\311\312\"\262\266A\266\202\202\262\207" [window-adjust-process-window-size-function fboundp process-list window--process-window-list (debug error) process-buffer process-get adjust-window-size-function set-process-window-size message "Error adjusting window size: %S"] 8 (#$ . 301617)])
(byte-code "\302\303\304\"\210\305\306\307#\210\305\310\311#\210\305\312\313#\210\305\314\315#\210\305\316\317#\210\305\320\321#\210\305\322\323#\210\305\324\325#\210\305\326\327#\210\305\330\331#\210\305	\306\332#\207" [ctl-x-map ctl-x-4-map add-hook window-configuration-change-hook window--adjust-process-windows define-key "0" delete-window "1" delete-other-windows "2" split-window-below "3" split-window-right "o" other-window "^" enlarge-window "}" enlarge-window-horizontally "{" shrink-window-horizontally "-" shrink-window-if-larger-than-buffer "+" balance-windows kill-buffer-and-window] 4)

Youez - 2016 - github.com/yon3zu
LinuXploit