Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
;; This file:
;;   http://anggtwu.net/.emacs.html
;;   http://anggtwu.net/.emacs
;;          (find-angg ".emacs")
;; Author: Eduardo Ochs <eduardoochs@gmail.com>
;;
;; Edrx's .emacs
;; 2024feb17
;; ^ don't trust the date above

;; (getenv "HOME")
;; default-directory
;; (setenv "HOME" default-directory)

;; (find-sh "grep -n '«.*»' ~/.emacs")

;; «.autoloads»		(to "autoloads")
;; «.add-to-alist»	(to "add-to-alist")
;; «.seen»		(to "seen")
;; «.auto-mode-alist»	(to "auto-mode-alist")
;; «.mode-variables»	(to "mode-variables")
;; «.8th-bit-is-meta»	(to "8th-bit-is-meta")
;; «.auctex»		(to "auctex")
;; «.w3m-el»		(to "w3m-el")
;; «.same-window-buffer-names»	(to "same-window-buffer-names")

;; «.emacs-cvs»			(to "emacs-cvs")
;; «.debian-startup»		(to "debian-startup")
;; «.my-mode»			(to "my-mode")
;; «.eev»			(to "eev")
;; «.eev-block»			(to "eev-block")
;; «.eev-pdflike-aliases»	(to "eev-pdflike-aliases")
;; «.code-pdf-text8»		(to "code-pdf-text8")
;; «.1c-and-1cl»		(to "1c-and-1cl")
;; «.eev-glyphs»		(to "eev-glyphs")
;; «.eev-compose-hash»		(to "eev-compose-hash")
;; «.eev-kla-fossils»		(to "eev-kla-fossils")
;; «.klapt»			(to "klapt")
;; «.eepitch-preprocess-line»	(to "eepitch-preprocess-line")
;; «.eepitch-preprocess-regexp»	(to "eepitch-preprocess-regexp")
;; «.eepitch-password-prompt»	(to "eepitch-password-prompt")
;; «.ee-rstdoc-:ghcug»		(to "ee-rstdoc-:ghcug")
;; «.ee-rstdoc-:h98»		(to "ee-rstdoc-:h98")
;; «.ee-rstdoc-:h98t»		(to "ee-rstdoc-:h98t")
;; «.ee-rstdoc-:pexpect»	(to "ee-rstdoc-:pexpect")
;; «.ee-rstdoc-:pillow»		(to "ee-rstdoc-:pillow")
;; «.ee-rstdoc-:fennel»		(to "ee-rstdoc-:fennel")
;; «.ee-rstdoc-:clhs»		(to "ee-rstdoc-:clhs")
;;   «.clhs»			(to "clhs")
;; «.ee-rstdoc-:gd3»		(to "ee-rstdoc-:gd3")
;; «.ee-rstdoc-:manim»		(to "ee-rstdoc-:manim")
;; «.ee-rstdoc-:J»		(to "ee-rstdoc-:J")
;; «.ee-rstdoc-:penlight»	(to "ee-rstdoc-:penlight")
;; «.ee-rstdoc-:nodejs»		(to "ee-rstdoc-:nodejs")
;; «.ee-rstdoc-:leanref»	(to "ee-rstdoc-:leanref")
;; «.ee-rstdoc-:leanmeta»	(to "ee-rstdoc-:leanmeta")
;; «.ee-rstdoc-:leanmaths»	(to "ee-rstdoc-:leanmaths")
;; «.code-etex-tla»		(to "code-etex-tla")
;; «.tikz»			(to "tikz")
;; «.tikzgit»			(to "tikzgit")
;; «.eev-package»		(to "eev-package")
;; «.fvwm»			(to "fvwm")
;; «.mplayer-options»		(to "mplayer-options")
;; «.eepitch-shell»		(to "eepitch-shell")
;; «.favourite-modes»		(to "favourite-modes")
;; «.modes-safe-local»		(to "modes-safe-local")
;; «.square-brackets»		(to "square-brackets")
;; «.woman»			(to "woman")
;; «.find-woman»		(to "find-woman")
;; «.M-e-in-c-mode»		(to "M-e-in-c-mode")
;; «.find-eimage»		(to "find-eimage")
;; «.find-w3m»			(to "find-w3m")
;; «.dired-find-w3m»		(to "dired-find-w3m")
;; «.wdired»			(to "wdired")
;; «.ee-isearch»		(to "ee-isearch")
;; «.ee-to-protected»		(to "ee-to-protected")
;; «.to-shadow»			(to "to-shadow")
;; «.find-fline-ov»		(to "find-fline-ov")
;; «.find-dict»			(to "find-dict")
;; «.browse-url»		(to "browse-url")
;; «.brwl-and-friends»		(to "brwl-and-friends")
;; «.find-ie»			(to "find-ie")
;; «.brie»			(to "brie")
;; «.brmd»			(to "brmd")
;; «.brgvd»			(to "brgvd")

;; «.syntax-tables»	(to "syntax-tables")
;; «.noerr»		(to "noerr")
;; «.code-c-d_e»	(to "code-c-d_e")
;; «.find-es»		(to "find-es")

;; «.tramp»		(to "tramp")
;; «.remote-machines»	(to "remote-machines")
;; «.tramp-twu»		(to "tramp-twu")
;; «.linode»		(to "linode")
;; «.upload-changes»	(to "upload-changes")
;; «.ee-remove-prefix»	(to "ee-remove-prefix")
;; «.upload-this»	(to "upload-this")

;; «.code-c-ds»		(to "code-c-ds")
;; «.k22»		(to "k22")

;; Lua:
;; «.lua-manual»		(to "lua-manual")
;; «.find-lua51manual»		(to "find-lua51manual")
;; «.find-lua52manual»		(to "find-lua52manual")
;; «.find-lua53manual»		(to "find-lua53manual")
;; «.ee-lua-set-init-file»	(to "ee-lua-set-init-file")
;; «.lpegrex»			(to "lpegrex")

;; Lua (obsolete):
;; «.lua-5.2»			(to "lua-5.2")
;; «.lua5.2-debian»		(to "lua5.2-debian")
;; «.luamanual»			(to "luamanual")
;; «.luamanual-51»		(to "luamanual-51")
;; «.find-luamanual-ff»		(to "find-luamanual-ff")
;; «.lua50»			(to "lua50")

;; «.eevt_twu»		(to "eevt_twu")
;; «.papers»		(to "papers")
;; «.icon»		(to "icon")
;; «.iconbook»		(to "iconbook")
;; «.icongrbook»	(to "icongrbook")
;; «.tclbook»		(to "tclbook")
;; «.find-iconbooktext»	(to "find-iconbooktext")
;; «.kd»		(to "kd")
;; «.dkey»		(to "dkey")
;; «.wrap»		(to "wrap")
;; «.fooi»		(to "fooi")
;; «.fooi-re»		(to "fooi-re")
;; «.fooi-t»		(to "fooi-t")
;; «.fooi-a»		(to "fooi-a")
;; «.fooi-fb»		(to "fooi-fb")

;; «.key_bindings»	(to "key_bindings")
;; «.ibuffer»		(to "ibuffer")
;; «.C-x-spc»		(to "C-x-spc")
;; «.gnuserv»		(to "gnuserv")
;; «.X»			(to "X")
;; «.set-input-mode»	(to "set-input-mode")

;; «.ascstr»		(to "ascstr")
;; «.ee-insert»		(to "ee-insert")
;; «.to-codes»		(to "to-codes")
;; «.to-ranges»		(to "to-ranges")
;; «..emacs.local»	(to ".emacs.local")
;; «.emacs-wiki»	(to "emacs-wiki")
;; «.emacs-wiki-edrx»	(to "emacs-wiki-edrx")
;; «.find-planner»	(to "find-planner")
;; «.find-string-ow»	(to "find-string-ow")
;; «.find-progoutput-ow»  (to "find-progoutput-ow")
;; «.ee-set-region-face»	(to "ee-set-region-face")
;; «.isearch-faces»	(to "isearch-faces")

;; «..emacs.custom»	(to ".emacs.custom")
;; «..emacs.unibyte»	(to ".emacs.unibyte")
;; «..emacs.u8»		(to ".emacs.u8")
;; «..emacs.hydras»	(to ".emacs.hydras")
;; «..emacs.private»	(to ".emacs.private")
;; «..emacs.papers»	(to ".emacs.papers")
;; «..emacs.templates»	(to ".emacs.templates")
;; «..emacs.audios»	(to ".emacs.audios")
;; «..emacs-tex.el»	(to ".emacs-tex.el")

;; «.obsolete»		(to "obsolete")
;; «.php-old»		(to "php-old")
;; «.php»		(to "php")

;; «.guest_users»	(to "guest_users")
;; «.info-path»		(to "info-path")
;; «.passwds-tcl-get»	(to "passwds-tcl-get")
;; «.eechannel-send-passwd»  (to "eechannel-send-passwd")
;; «.erc»		(to "erc")
;; «.find-erclibera»	(to "find-erclibera")

;; «.lforth»		(to "lforth")
;; «.eepdj»		(to "eepdj")
;; «.ee-el»		(to "ee-el")

;; «.htmlize»		(to "htmlize")

;; «.fundcomp-menu»	(to "fundcomp-menu")
;; «.menu-bar»		(to "menu-bar")
;; «.tool-bar»		(to "tool-bar")
;; «.show-as-image»	(to "show-as-image")

;; «.ptexts»		(to "ptexts")
;; «.underline-as-green»  (to "underline-as-green")
;; «.r0r2»		(to "r0r2")
;; «.find-ebuffer+»	(to "find-ebuffer+")
;; «.hippie-expand»	(to "hippie-expand")
;; «.dfs»		(to "dfs")
;; «.eesteps»		(to "eesteps")
;; «.my-ins»		(to "my-ins")
;; «.chowns»		(to "chowns")

;; «.find-zsh»			(to "find-zsh")
;; «.upload»			(to "upload")
;; «.eev-current-make-htmls»	(to "eev-current-make-htmls")
;; «.eesteps-insert-longkey»	(to "eesteps-insert-longkey")
;; «.my-screenshot»		(to "my-screenshot")
;; «.emacs-ascii-screenshots»	(to "emacs-ascii-screenshots")
;; «.find-mode-line-links»	(to "find-mode-line-links")
;; «.ee-svg-screenshot»		(to "ee-svg-screenshot")
;; «.find-svg-screenshot-links»	(to "find-svg-screenshot-links")
;; «.sshot-run»			(to "sshot-run")
;; «.find-svgbuffer»		(to "find-svgbuffer")
;; «.my-modes»			(to "my-modes")
;; «.my-screenshot»		(to "my-screenshot")
;; «.linuxconfvar»		(to "linuxconfvar")
;; «.code-c-d-linux26»		(to "code-c-d-linux26")
;; «.intermail»			(to "intermail")
;; «.eechannel-TWU»		(to "eechannel-TWU")
;; «.remove-from-keymap»	(to "remove-from-keymap")
;; «.tex-insert-quote»		(to "tex-insert-quote")

;; «.hscroll-keys-mode»	(to "hscroll-keys-mode")
;; «.unquote-printable»	(to "unquote-printable")
;; «.date»		(to "date")
;; «.yank-first-line»	(to "yank-first-line")
;; «.myip»		(to "myip")
;; «.eeblogme»		(to "eeblogme")
;; «.eeblogme-now»	(to "eeblogme-now")
;; «.blogme-mode-syntax-table»	(to "blogme-mode-syntax-table")
;; «.blogme-mode»	(to "blogme-mode")
;; «.blogme4»		(to "blogme4")
;; «.dednat5»		(to "dednat5")

;; «.eevnow»		(to "eevnow")
;; «.find-w3m-links»	(to "find-w3m-links")
;; «.safe-local-variable»  (to "safe-local-variable")

;; «.latexbase»		(to "latexbase")
;; «.classes»		(to "classes")
;; «.classes.dtx»	(to "classes.dtx")
;; «.source2e»		(to "source2e")
;; «.find-source2epage»	(to "find-source2epage")
;; «.find-texbookpage-old»  (to "find-texbookpage-old")
;; «.find-texbookpage»	(to "find-texbookpage")
;; «.find-amsmathpage»	(to "find-amsmathpage")

;; «.wdg»		(to "wdg")
;; «.howm»		(to "howm")
;; «.howm-create-named-file»  (to "howm-create-named-file")
;; «.iheader»		(to "iheader")
;; «.hm»		(to "hm")
;; «.find-edrxhowm»	(to "find-edrxhowm")
;; «.dednat4»		(to "dednat4")
;; «.dednat4-setup»	(to "dednat4-setup")
;; «.eedn4-51»		(to "eedn4-51")
;; «.eedn4a»		(to "eedn4a")
;; «.rcirc»		(to "rcirc")
;; «.rcirc-save-buffer»	(to "rcirc-save-buffer")
;; «.rcirc-channels»	(to "rcirc-channels")
;; «.rcirc-spotchat»	(to "rcirc-spotchat")
;; «.circe»		(to "circe")

;; «.find-xkbprint»	(to "find-xkbprint")
;; «.prep-X»		(to "prep-X")
;; «.prep-all»		(to "prep-all")
;; «.prep-X-kbdmap»	(to "prep-X-kbdmap")
;; «.prep-X-kbdrate»	(to "prep-X-kbdrate")
;; «.prep-X-font»	(to "prep-X-font")
;; «.gnus»		(to "gnus")
;; «.gnus-quimby»	(to "gnus-quimby")
;; «.lists.gnu.org»	(to "lists.gnu.org")
;; «.gnu.emacs.bugs»	(to "gnu.emacs.bugs")
;; «.gnu.emacs.devel»	(to "gnu.emacs.devel")
;; «.gnu.emacs.sources»	(to "gnu.emacs.sources")
;; «.gmane.emacs.eev.devel»  (to "gmane.emacs.eev.devel")
;; «.comp.lang.forth»	(to "comp.lang.forth")
;; «.super-key»		(to "super-key")
;; «.hh»		(to "hh")
;; «.find-eunicode»	(to "find-eunicode")
;; «.find-eunicodeucs»	(to "find-eunicodeucs")
;; «.diagxy»		(to "diagxy")
;; «.diaxydoc-and-barrdoc»	(to "diaxydoc-and-barrdoc")
;; «.libgtk-docs»	(to "libgtk-docs")
;; «.find-firefox-bg»	(to "find-firefox-bg")
;; «.squeak»		(to "squeak")
;; «.smalltalk»		(to "smalltalk")
;; «.visualworks»	(to "visualworks")
;; «.color-theme»	(to "color-theme")
;; «.my-make-face»	(to "my-make-face")
;; «.myxpm»		(to "myxpm")
;; «.find-xpm»		(to "find-xpm")
;; «.terminus»		(to "terminus")
;; «.find-sidebyside»	(to "find-sidebyside")
;; «.eejump-define»	(to "eejump-define")
;; «.eejump-plists»	(to "eejump-plists")
;; «.eejump»		(to "eejump")
;; «.find-tkdiff»	(to "find-tkdiff")
;; «.eekill»		(to "eekill")
;; «.eepitch»		(to "eepitch")
;; «.eepitch-kill»	(to "eepitch-kill")
;; «.reload»		(to "reload")
;; «.no-mode-line»	(to "no-mode-line")
;; «.ee-comint»		(to "ee-comint")
;; «.ee-telnet»		(to "ee-telnet")
;; «.miniforth»		(to "miniforth")
;; «.ruby»		(to "ruby")
;; «.ruby-pragmatic»	(to "ruby-pragmatic")
;; «.titan»		(to "titan")
;; «.titand-docs-text»	(to "titand-docs-text")
;; «.postgres»		(to "postgres")
;; «.find-C-links»	(to "find-C-links")
;; «.find-postgres-links»	(to "find-postgres-links")
;; «.find-grep-links»		(to "find-grep-links")
;; «.swig»			(to "swig")
;; «.eea2ps»			(to "eea2ps")
;; «.eea2ps-meta»		(to "eea2ps-meta")
;; «.eea2pswide»		(to "eea2pswide")
;; «.fill-rcirc-paragraph»	(to "fill-rcirc-paragraph")
;; «.find-rcirc-channel-sexps»	(to "find-rcirc-channel-sexps")
;; «.display-time-mode»		(to "display-time-mode")
;; «.eemklinks-yank-w3m-anchor»	(to "eemklinks-yank-w3m-anchor")
;; «.find-C-x»			(to "find-C-x")
;; «.find-ebuffer-links»	(to "find-ebuffer-links")
;; «.freedb-rename»		(to "freedb-rename")
;; «.find-pdfpage-pdftotext»	(to "find-pdfpage-pdftotext")
;; «.find-xxxtkdiff»		(to "find-xxxtkdiff")
;; «.find-cdecl»		(to "find-cdecl")
;; «.eetcc»			(to "eetcc")
;; «.figlet»			(to "figlet")
;; «.eshell»			(to "eshell")
;; «.unaccent»			(to "unaccent")
;; «.flip-psne-ness»		(to "flip-psne-ness")
;; «.find-other-debian-links»	(to "find-other-debian-links")
;; «.find-ekbmacro-links»	(to "find-ekbmacro-links")
;; «.find-dpkg-build-escript»	(to "find-dpkg-build-escript")
;; «.find-file-links»		(to "find-file-links")
;; «.find-bgprocess»		(to "find-bgprocess")
;; «.defalias-hard-maybe»	(to "defalias-hard-maybe")
;; «.ee-kill-this-buffer»	(to "ee-kill-this-buffer")
;; «.golisp»			(to "golisp")
;; «.sshot»			(to "sshot")
;; «.find-cat-to-lp0-script»	(to "find-cat-to-lp0-script")
;; «.find-bigdvdcopy-script»	(to "find-bigdvdcopy-script")
;; «.cltl»			(to "cltl")
;; «.find-template-untgz»	(to "find-template-untgz")
;; «.bruntgz»			(to "bruntgz")
;; «.find-code-ps-url-links»	(to "find-code-ps-url-links")
;; «.brcps»			(to "brcps")
;; «.find-pspage-links»		(to "find-pspage-links")
;; «.find-jstor-links»		(to "find-jstor-links")
;; «.wikit-edit»		(to "wikit-edit")
;; «.find-eepitch-links»	(to "find-eepitch-links")
;; «.find-eevarticle-links»	(to "find-eevarticle-links")
;; «.find-anggrumidiff-links»	(to "find-anggrumidiff-links")
;; «.ee-shrink-hyperlink-at-eol»  (to "ee-shrink-hyperlink-at-eol")
;; «.find-setq-links»  		(to "find-setq-links")
;; «.ee-choosecolor»		(to "ee-choosecolor")
;; «.find-ecolor-links»		(to "find-ecolor-links")
;; «.find-eface»		(to "find-eface")
;; «.find-eface-links»		(to "find-eface-links")
;; «.digirati»			(to "digirati")
;; «.mysql»			(to "mysql")
;; «.find-anggupload-links»	(to "find-anggupload-links")
;; «.find-unpack-chm-links»	(to "find-unpack-chm-links")
;; «.eepic»			(to "eepic")
;; «.esrpic»			(to "esrpic")
;; «.find-adduser-links»	(to "find-adduser-links")
;; «.find-osmio-template»	(to "find-osmio-template")
;; «.find-template-svnadm»	(to "find-template-svnadm")
;; «.find-copydvdtohd-script»	(to "find-copydvdtohd-script")
;; «.davinci»			(to "davinci")
;; «.eepitch-gdb»		(to "eepitch-gdb")
;; «.eepitch-gdb-lua»		(to "eepitch-gdb-lua")
;; «.eepitch-gdb-scite»		(to "eepitch-gdb-scite")
;; «.tcl-tk»			(to "tcl-tk")
;; «.ee-meta-S»			(to "ee-meta-S")
;; «.org-mode»			(to "org-mode")
;; «.auto-mode-alist-tecmake»	(to "auto-mode-alist-tecmake")
;; «.code-c-d-new»		(to "code-c-d-new")
;; «.ee-sexp-remote»		(to "ee-sexp-remote")
;; «.ee-make-frame»		(to "ee-make-frame")
;; «.ee-sexp-remote-demo»	(to "ee-sexp-remote-demo")
;; «.rename-track»		(to "rename-track")
;; «.firefox»			(to "firefox")
;; «.mozrepl»			(to "mozrepl")
;; «.eepitch-moz»		(to "eepitch-moz")
;; «.espresso-mode»		(to "espresso-mode")
;; «.find-emode-links»		(to "find-emode-links")
;; «.find-sshot-links»		(to "find-sshot-links")
;; «.find-glyphashtml-links»	(to "find-glyphashtml-links")
;; «.find-TH»			(to "find-TH")
;; «.blogme3»			(to "blogme3")
;; «.mksec»			(to "mksec")
;; «.startup-screen»		(to "startup-screen")
;; «.dednat6.el»		(to "dednat6.el")
;; «.dednat6-ftch»		(to "dednat6-ftch")
;; «.dednat6-vbt»		(to "dednat6-vbt")
;; «.find-wget»			(to "find-wget")
;; «.brwget»			(to "brwget")
;; «.find-epalette»		(to "find-epalette")
;; «.tgt»			(to "tgt")
;; «.column-marker»		(to "column-marker")
;; «.find-psne-links»		(to "find-psne-links")
;; «.brep»			(to "brep")
;; «.ee-cp»			(to "ee-cp")
;; «.find-ecp0»			(to "find-ecp0")
;; «.find-mbox»			(to "find-mbox")
;; «.find-urlretrieve-old»	(to "find-urlretrieve-old")
;; «.eshell-url-retrieve»	(to "eshell-url-retrieve")
;; «.ee-wrap»			(to "ee-wrap")
;; «.caramelo»			(to "caramelo")
;; «.zumbi»			(to "zumbi")
;; «.zumbiwikicvs»		(to "zumbiwikicvs")
;; «.dekooning»			(to "dekooning")
;; «.persephone»		(to "persephone")
;; «.sisrot»			(to "sisrot")
;; «.sisrotpdsw»		(to "sisrotpdsw")
;; «.sisrot-pdsw-etc»		(to "sisrot-pdsw-etc")
;; «.sisrot-cameras»		(to "sisrot-cameras")
;; «.noronha»			(to "noronha")
;; «.telemedidastestes»		(to "telemedidastestes")
;; «.find-omnisys-links»	(to "find-omnisys-links")
;; «.telemedidas»		(to "telemedidas")
;; «.find-netbsdman»		(to "find-netbsdman")
;; «.find-edrx-update-links»	(to "find-edrx-update-links")
;; «.eev-traffic-light-glyphs»	(to "eev-traffic-light-glyphs")
;; «.no-super-key»		(to "no-super-key")
;; «.eepitch-sisrotlua»		(to "eepitch-sisrotlua")
;; «.qt»			(to "qt")
;; «.maut»			(to "maut")
;; «.brecp»			(to "brecp")
;; «.lilypond»			(to "lilypond")
;; «.lilypond-info»		(to "lilypond-info")
;; «.lilypond-2.18»		(to "lilypond-2.18")
;; «.lilypond-manuals-pdf»	(to "lilypond-manuals-pdf")
;; «.lilypond-repl»		(to "lilypond-repl")
;; «.metalua»			(to "metalua")
;; «.texinfo»			(to "texinfo")
;; «.ee-unglyph»		(to "ee-unglyph")
;; «.eev-math-glyphs-new»	(to "eev-math-glyphs-new")
;; «.my-faces-sort»		(to "my-faces-sort")
;; «.doc-view-mode»		(to "doc-view-mode")
;; «.sqlite»			(to "sqlite")
;; «.deact»			(to "deact")
;; «.deactivate-mark»		(to "deactivate-mark")
;; «.find-pen-links»		(to "find-pen-links")
;; «.find-hde-links»		(to "find-hde-links")
;; «.find-dn4tex-links»		(to "find-dn4tex-links")
;; «.find-euboutput»		(to "find-euboutput")
;; «.ee-compilation-buffer»	(to "ee-compilation-buffer")
;; «.ee-code-c-d-:SH»		(to "ee-code-c-d-:SH")
;; «.verbatim»			(to "verbatim")
;; «.find-printindex»		(to "find-printindex")
;; «.find-fontset-links»	(to "find-fontset-links")
;; «.ee-font-unalias»		(to "ee-font-unalias")
;; «.ee-set-frame-font»		(to "ee-set-frame-font")
;; «.:dvi»			(to ":dvi")
;; «.find-LTX»			(to "find-LTX")
;; «.find-testfont»		(to "find-testfont")
;; «.find-dvifonts»		(to "find-dvifonts")
;; «.ee-env-normalize»		(to "ee-env-normalize")
;; «.ee-with-env»		(to "ee-with-env")
;; «.eepitch-makeinfo»		(to "eepitch-makeinfo")
;; «.tmpdn4»			(to "tmpdn4")
;; «.luatex»			(to "luatex")
;; «.luatexref»			(to "luatexref")
;; «.luatex-src»		(to "luatex-src")
;; «.luatex-0.95.0»		(to "luatex-0.95.0")
;; «.luacode»			(to "luacode")
;; «.lua-repl»			(to "lua-repl")
;; «.luatex-repl»		(to "luatex-repl")
;; «.lualatex-repl»		(to "lualatex-repl")
;; «.ee-replace-regexp»		(to "ee-replace-regexp")
;; «.ee-demo-4»			(to "ee-demo-4")
;; «.coq»			(to "coq")
;; «.proof-general»		(to "proof-general")
;; «.std-to-dnc»		(to "std-to-dnc")
;; «.dnc-to-std»		(to "dnc-to-std")
;; «.dn4-block»			(to "dn4-block")
;; «.save-this-block-as»	(to "save-this-block-as")
;; «.anchors-in-latin-1»	(to "anchors-in-latin-1")
;; «.hpprint»			(to "hpprint")
;; «.hjbc1»			(to "hjbc1")
;; «.hjbc2»			(to "hjbc2")
;; «.perl»			(to "perl")
;; «.python»			(to "python")
;; «.matplotlib-examples»	(to "matplotlib-examples")
;; «.ipython»			(to "ipython")
;; «.pylab»			(to "pylab")
;; «.sympy»			(to "sympy")
;; «.sympydoc»			(to "sympydoc")
;;   «.find-sympydoc»		(to "find-sympydoc")
;;   «.find-pydoc»		(to "find-pydoc")
;; «.pip3»			(to "pip3")
;; «.maxima»			(to "maxima")
;; «.maxima-mode»		(to "maxima-mode")
;; «.maxima-cvs»		(to "maxima-cvs")
;; «.maxima-gpdraw»		(to "maxima-gpdraw")
;; «.emaxima»			(to "emaxima")
;; «.emaxima-conv»		(to "emaxima-conv")
;; «.imaxima»			(to "imaxima")
;; «.eepitch-region»		(to "eepitch-region")
;; «.code-filetext»		(to "code-filetext")
;; «.debian-devel-docs»		(to "debian-devel-docs")
;; «.vcaa»			(to "vcaa")
;; «.no-mouse-mode»		(to "no-mouse-mode")
;; «.openoffice»		(to "openoffice")
;; «.mm:ss»			(to "mm:ss")
;; «.find-mplayer»		(to "find-mplayer")
;; «.code-mplayer»		(to "code-mplayer")
;; «.code-Mplayer»		(to "code-Mplayer")
;; «.ict-quimica»		(to "ict-quimica")
;; «.find-minicatsvideo»	(to "find-minicatsvideo")
;; «.find-minicatsframe»	(to "find-minicatsframe")
;; «.luajit»			(to "luajit")
;; «.love2d»			(to "love2d")
;; «.caderno»			(to "caderno")
;; «.unilog-2010»		(to "unilog-2010")
;; «.gdb»			(to "gdb")
;; «.bash»			(to "bash")
;; «.dash»			(to "dash")
;; «.ksh»			(to "ksh")
;; «.tcsh»			(to "tcsh")
;; «.zsh»			(to "zsh")
;; «.guile»			(to "guile")
;; «.mit-scheme»		(to "mit-scheme")
;; «.scsh»			(to "scsh")
;; «.haskell»			(to "haskell")
;;  «.haskell-docs»		(to "haskell-docs")
;;  «.haskell-mode»		(to "haskell-mode")
;;  «.hoogle»			(to "hoogle")
;;  «.ghc»			(to "ghc")
;;  «.hugs»			(to "hugs")
;; «.ocaml»			(to "ocaml")
;; «.plzoo»			(to "plzoo")
;; «.levy»			(to "levy")
;; «.picolisp»			(to "picolisp")
;; «.ee-backup-lua-locals»	(to "ee-backup-lua-locals")
;; «.xmonad»			(to "xmonad")
;; «.unilog-current»		(to "unilog-current")
;; «.idct»			(to "idct")
;; «.minicats»			(to "minicats")
;; «.eblslides»			(to "eblslides")
;; «.eblsheaves»		(to "eblsheaves")
;; «.sheavesforchildren»	(to "sheavesforchildren")
;; «.find-2»			(to "find-2")
;; «.chaui»			(to "chaui")
;; «.metapost»			(to "metapost")
;; «.projeto»			(to "projeto")
;; «.find-luac»			(to "find-luac")
;; «.find-lua51ev»		(to "find-lua51ev")
;; «.gs»			(to "gs")
;; «.gforth»			(to "gforth")
;; «.erlang»			(to "erlang")
;; «.google-dns»		(to "google-dns")
;; «.google»			(to "google")
;; «.fv»			(to "fv")
;; «.scan»			(to "scan")
;; «.rotate»			(to "rotate")
;; «.tex-def-many»		(to "tex-def-many")
;; «.process-coding-system»	(to "process-coding-system")
;; «.agda»			(to "agda")
;; «.agda-cabal»		(to "agda-cabal")
;; «.agda-stack»		(to "agda-stack")
;; «.agda-plfa»			(to "agda-plfa")
;; «.idris»			(to "idris")
;; «.idris2»			(to "idris2")
;; «.idris-ct»			(to "idris-ct")
;; «.idris-bradytdd»		(to "idris-bradytdd")
;; «.idris2-tutorial»		(to "idris2-tutorial")
;; «.idris2-mode»		(to "idris2-mode")
;; «.racket»			(to "racket")
;; «.cabal-path»		(to "cabal-path")
;; «.luarocks»			(to "luarocks")
;; «.ltcltk»			(to "ltcltk")
;; «.inkscape»			(to "inkscape")
;; «.pulseaudio»		(to "pulseaudio")
;; «.tramp-2.1.9»		(to "tramp-2.1.9")
;; «.varda»			(to "varda")
;; «.find-newhost-links»	(to "find-newhost-links")
;; «.apt-cacher»		(to "apt-cacher")
;; «.blogme4-texi»		(to "blogme4-texi")
;; «.olympus»			(to "olympus")
;; «.quadro»			(to "quadro")

;; «.rubyforth»			(to "rubyforth")
;; «.pythonforth»		(to "pythonforth")
;; «.eepitch-rubyforth»		(to "eepitch-rubyforth")
;; «.eepitch-dednat4»		(to "eepitch-dednat4")
;; «.duoforths»			(to "duoforths")
;; «.rubyforth»			(to "rubyforth")
;; «.dflua»			(to "dflua")
;; «.zbforth»			(to "zbforth")

;; «.scala»			(to "scala")
;; «.clojure»			(to "clojure")
;; «.J»				(to "J")
;; «.R»				(to "R")
;; «.joy»			(to "joy")
;; «.octave»			(to "octave")
;; «.cc-mode»			(to "cc-mode")
;; «.eevbuild»			(to "eevbuild")
;; «.eev-puro»			(to "eev-puro")
;; «.eev-puro-deb»		(to "eev-puro-deb")
;; «.LR-and-RE-and-RR»		(to "LR-and-RE-and-RR")
;; «.ee-tramp-proxy»		(to "ee-tramp-proxy")
;; «.ee-splitn»			(to "ee-splitn")
;; «.ee-wrapt»			(to "ee-wrapt")
;; «.ee-wrapc»			(to "ee-wrapc")
;; «.binutils»			(to "binutils")
;; «.wget»			(to "wget")
;; «.ee-popup»			(to "ee-popup")
;; «.find-wset»			(to "find-wset")
;; «.inet-addr»			(to "inet-addr")
;; «.cleanindex»		(to "cleanindex")
;; «.virtualbox»		(to "virtualbox")
;; «.gab»			(to "gab")
;; «.find-rawcat»		(to "find-rawcat")
;; «.estagios»			(to "estagios")
;; «.ict12sep20»		(to "ict12sep20")
;; «.chomsky»			(to "chomsky")
;; «.ee-rmprefix»		(to "ee-rmprefix")
;; «.ee-killurl»		(to "ee-killurl")
;; «.cow-and-mow»		(to "cow-and-mow")
;; «.cuow»			(to "cuow")
;; «.tramp-no-remote-shells»	(to "tramp-no-remote-shells")
;; «.screencasts»		(to "screencasts")
;; «.git»			(to "git")
;; «.git-internals»		(to "git-internals")
;; «.magit»			(to "magit")
;; «.pro-git»			(to "pro-git")
;; «.find-gitdiag»		(to "find-gitdiag")
;; «.OP-1»			(to "OP-1")
;; «.find-eev2-links»		(to "find-eev2-links")
;; «.diags»			(to "diags")
;; «.tags-mode»			(to "tags-mode")
;; «.tags-mode-chars»		(to "tags-mode-chars")
;; «.quadradinho»		(to "quadradinho")
;; «.youtube-dl»		(to "youtube-dl")
;;   «.ee-youtubedl-dirs»	(to "ee-youtubedl-dirs")
;;   «.ee-youtubedl-command»	(to "ee-youtubedl-command")
;; «.youtube-title»		(to "youtube-title")
;;   «.yt»			(to "yt")
;; «.youtube-db.lua»		(to "youtube-db.lua")
;; «.find-screenshot-links»	(to "find-screenshot-links")
;; «.idarct»			(to "idarct")
;; «.idarct-preprint»		(to "idarct-preprint")
;; «.eww»			(to "eww")
;; «.find-freenode0»		(to "find-freenode0")
;; «.scast»			(to "scast")
;; «.android»			(to "android")
;; «.android-adb»		(to "android-adb")
;; «.eev-videos»		(to "eev-videos")
;; «.packages»			(to "packages")
;; «.packages-melpa»		(to "packages-melpa")
;; «.mplayer»			(to "mplayer")
;; «.mplayer-screenshots»	(to "mplayer-screenshots")
;; «.lua-mode»			(to "lua-mode")
;; «.contact»			(to "contact")
;; «.find-1|3»			(to "find-1|3")
;; «.find-GA-links»		(to "find-GA-links")
;; «.dired-sort»		(to "dired-sort")
;; «.ee-dired-marked»		(to "ee-dired-marked")
;; «.find-cp-to-angg-links»	(to "find-cp-to-angg-links")
;; «.2013-rfm-rcn»		(to "2013-rfm-rcn")
;; «.rst-mode»			(to "rst-mode")
;; «.ee-shell-quote»		(to "ee-shell-quote")
;; «.eecd»			(to "eecd")
;; «.lyrics»			(to "lyrics")
;; «.djview»			(to "djview")
;; «.tikz»			(to "tikz")
;; «.insert-n»			(to "insert-n")
;; «.beamer»			(to "beamer")
;; «.netsurf»			(to "netsurf")
;; «.ee-read-redirect»		(to "ee-read-redirect")
;; «.ee-read-urltitle»		(to "ee-read-urltitle")
;; «.youtube-db»		(to "youtube-db")
;; «.youtube-db-play»		(to "youtube-db-play")
;; «.yeetube»			(to "yeetube")
;; «.pyfb»			(to "pyfb")
;; «.faceutils»			(to "faceutils")
;; «.facepy»			(to "facepy")
;; «.fbcache»			(to "fbcache")
;; «.2014.2-GA»			(to "2014.2-GA")
;; «.2015.1-GA»			(to "2015.1-GA")
;; «.cheese»			(to "cheese")
;; «.ee-wrap-eejump»		(to "ee-wrap-eejump")
;; «.ex»			(to "ex")
;; «.q-and-qc»			(to "q-and-qc")
;; «.find-dired-eek»		(to "find-dired-eek")
;; «.find-dired-re»		(to "find-dired-re")
;; «.istanbul»			(to "istanbul")
;; «.code-etex»			(to "code-etex")
;; «.code-etex-dednat6»		(to "code-etex-dednat6")
;; «.find-etex-links»		(to "find-etex-links")
;; «.code-quadro»		(to "code-quadro")
;; «.rrj»			(to "rrj")
;; «.falta-misandria»		(to "falta-misandria")
;; «.lynx»			(to "lynx")
;; «.luakit»			(to "luakit")
;; «.lae»			(to "lae")
;; «.gae»			(to "gae")
;; «.gale»			(to "gale")
;; «.c2»			(to "c2")
;; «.c2-2019-1»			(to "c2-2019-1")
;; «.c2-2019-2»			(to "c2-2019-2")
;; «.c3-2019-1»			(to "c3-2019-1")
;; «.c3-2019-2»			(to "c3-2019-2")
;; «.c2-2020-1»			(to "c2-2020-1")
;; «.c2-2020-1-telegram»	(to "c2-2020-1-telegram")
;; «.c3-2019-2»			(to "c3-2019-2")
;; «.c3-2020-1»			(to "c3-2020-1")
;; «.c3-2020-1-telegram»	(to "c3-2020-1-telegram")
;; «.c2-2020-2»			(to "c2-2020-2")
;; «.c3-2020-2»			(to "c3-2020-2")
;; «.c2-2020-2-telegram»	(to "c2-2020-2-telegram")
;; «.c3-2020-2-telegram»	(to "c3-2020-2-telegram")
;; «.c2-2021-1»			(to "c2-2021-1")
;; «.c2-2021-1-telegram»	(to "c2-2021-1-telegram")
;; «.c3-2021-1»			(to "c3-2021-1")
;; «.c3-2021-1-telegram»	(to "c3-2021-1-telegram")
;; «.c2-2021-2»			(to "c2-2021-2")
;; «.c2-2021-2-telegram»	(to "c2-2021-2-telegram")
;; «.c3-2021-2»			(to "c3-2021-2")
;; «.c3-2021-2-telegram»	(to "c3-2021-2-telegram")
;; «.c2-2022-1»			(to "c2-2022-1")
;; «.c2q221»			(to "c2q221")
;; «.c2-2022-1-quadros»		(to "c2-2022-1-quadros")
;; «.c2-2022-1-telegram»	(to "c2-2022-1-telegram")
;; «.c3-2022-1»			(to "c3-2022-1")
;; «.c3q221»			(to "c3q221")
;; «.c3-2022-1-quadros»		(to "c3-2022-1-quadros")
;; «.c3-2022-1-telegram»	(to "c3-2022-1-telegram")
;; «.c2-2022-2»			(to "c2-2022-2")
;; «.c2-2022-2-quadros»		(to "c2-2022-2-quadros")
;; «.c2q222»			(to "c2q222")
;; «.c3-2022-2»			(to "c3-2022-2")
;; «.c3-2022-2-quadros»		(to "c3-2022-2-quadros")
;; «.c3q222»			(to "c3q222")
;;
;; «.c2-2023-1»			(to "c2-2023-1")
;; «.c2-2023-1-quadros»		(to "c2-2023-1-quadros")
;; «.c2q231»			(to "c2q231")
;; «.c3-2023-1»			(to "c3-2023-1")
;; «.c3-2023-1-quadros»		(to "c3-2023-1-quadros")
;; «.c3q231»			(to "c3q231")
;; «.c4-2023-1»			(to "c4-2023-1")
;; «.c4-2023-1-quadros»		(to "c4-2023-1-quadros")
;; «.c4q231»			(to "c4q231")
;; «.es-2023-1»			(to "es-2023-1")
;; «.es-2023-1-quadros»		(to "es-2023-1-quadros")
;; «.esq231»			(to "esq231")
;; «.la-2023-1»			(to "la-2023-1")
;; «.la-2023-1-quadros»		(to "la-2023-1-quadros")
;; «.laq231»			(to "laq231")

;; «.c2-2023-2»			(to "c2-2023-2")
;; «.c2-2023-2-quadros»		(to "c2-2023-2-quadros")
;; «.c2q232»			(to "c2q232")
;; «.c3-2023-2»			(to "c3-2023-2")
;; «.c3-2023-2-quadros»		(to "c3-2023-2-quadros")
;; «.c3q232»			(to "c3q232")

;; «.c2-2024-1»			(to "c2-2024-1")
;; «.c2-2024-1-quadros»		(to "c2-2024-1-quadros")
;; «.c2q241»			(to "c2q241")
;; «.c3-2024-1»			(to "c3-2024-1")
;; «.c3-2024-1-quadros»		(to "c3-2024-1-quadros")
;; «.c3q241»			(to "c3q241")
;;
;; «.c2q»			(to "c2q")
;; «.c2q152»			(to "c2q152")
;; «.c2q161»			(to "c2q161")
;; «.c2q162»			(to "c2q162")
;; «.c2q171»			(to "c2q171")
;; «.c2q172»			(to "c2q172")
;; «.c2q181»			(to "c2q181")
;; «.c2q182»			(to "c2q182")
;; «.c2q191»			(to "c2q191")
;; «.c2q192»			(to "c2q192")
;; «.c3q191»			(to "c3q191")
;; «.c3q192»			(to "c3q192")
;; «.gaq161»			(to "gaq161")
;; «.gaq162»			(to "gaq162")
;; «.gaq171»			(to "gaq171")
;; «.gaq172»			(to "gaq172")
;; «.gaq181»			(to "gaq181")
;; «.mdq182»			(to "mdq182")
;; «.laq162»			(to "laq162")
;; «.laq171»			(to "laq171")
;; «.laq172»			(to "laq172")
;; «.laq181»			(to "laq181")
;; «.size»			(to "size")
;; «.ee-calendar-generate»	(to "ee-calendar-generate")
;; «.find-planarhas»		(to "find-planarhas")
;; «.ebl2019»			(to "ebl2019")
;; «.texlive»			(to "texlive")
;; «.tugboat»			(to "tugboat")
;; «.ee-find-djvu-cleanup»	(to "ee-find-djvu-cleanup")
;; «.ee-add-find-to-head»	(to "ee-add-find-to-head")
;; «.autoconf»			(to "autoconf")
;; «.bibtex»			(to "bibtex")
;; «.eewrap-mypsection»		(to "eewrap-mypsection")
;; «.bat»			(to "bat")
;; «.getinscritos»		(to "getinscritos")
;; «.dednat6-tugboat»		(to "dednat6-tugboat")
;; «.find-intro-source»		(to "find-intro-source")
;; «.grub»			(to "grub")
;; «.find-git-eev-links»	(to "find-git-eev-links")
;; «.find-echars-around»	(to "find-echars-around")
;; «.scheinerman-esquemas»	(to "scheinerman-esquemas")
;; «.find-quadros-links»	(to "find-quadros-links")
;; «.find-cabecalho-links»	(to "find-cabecalho-links")
;; «.ee-with-this-and-prev»	(to "ee-with-this-and-prev")
;; «.ee-anchor-back»		(to "ee-anchor-back")
;; «.ee-tla-link»		(to "ee-tla-link")
;; «.sexptotarget»		(to "sexptotarget")
;; «.find-font-links»		(to "find-font-links")
;; «.clg»			(to "clg")
;; «.show-paren-mode»		(to "show-paren-mode")
;; «.pdf-tools»			(to "pdf-tools")
;; «.2020-1-slides-aulas»	(to "2020-1-slides-aulas")
;; «.rexx»			(to "rexx")
;;   «.eepitch-oorexx»		(to "eepitch-oorexx")
;;   «.oorexx-test-blocks»	(to "oorexx-test-blocks")
;;   «.rexx-sc»			(to "rexx-sc")
;;   «.oorexx-docs»		(to "oorexx-docs")
;;   «.srf»			(to "srf")
;; «.ff-search»			(to "ff-search")
;; «.ee-pdftotext-replace-bad-ffs»  (to "ee-pdftotext-replace-bad-ffs")
;; «.tipografia-digital»	(to "tipografia-digital")
;; «.book-index»		(to "book-index")
;; «.find-tl-links»		(to "find-tl-links")
;; «.find-pdft-page»		(to "find-pdft-page")
;; «.ee-pdftools-revert-all»	(to "ee-pdftools-revert-all")
;; «.find-dednat6-links»	(to "find-dednat6-links")
;; «.fde»			(to "fde")
;; «.find-three-main-keys-intro»  (to "find-three-main-keys-intro")
;; «.key-chord»			(to "key-chord")
;; «.ee-tag-re»			(to "ee-tag-re")
;; «.eval-print-arrow-color»	(to "eval-print-arrow-color")
;; «.emacs27-adjust-faces»	(to "emacs27-adjust-faces")
;; «.eetikz»			(to "eetikz")
;; «.fennel»			(to "fennel")
;; «.find-mpv90-video»		(to "find-mpv90-video")
;; «.bsl»			(to "bsl")
;; «.hydra-r»			(to "hydra-r")
;; «.hydra-ei»			(to "hydra-ei")
;; «.ei»			(to "ei")
;; «.ee-mononoki»		(to "ee-mononoki")
;; «.vterm»			(to "vterm")
;; «.0x0»			(to "0x0")
;; «.subed»			(to "subed")
;; «.gnuplot»			(to "gnuplot")
;; «.slime»			(to "slime")
;; «.sly»			(to "sly")
;; «.quicklisp»			(to "quicklisp")
;; «.ee-cpb»			(to "ee-cpb")
;; «.emojis»			(to "emojis")
;; «.emlua»			(to "emlua")
;; «.cols»			(to "cols")
;; «.my/version»		(to "my/version")
;; «.derawify»			(to "derawify")
;; «.ee-protected-buffer»	(to "ee-protected-buffer")
;; «.fullscreen»		(to "fullscreen")
;; «.ee-set-fullscreen»		(to "ee-set-fullscreen")
;; «.make»			(to "make")
;; «.qunzip»			(to "qunzip")
;; «.ee-insert-test-raku-mode»	(to "ee-insert-test-raku-mode")
;; «.ee-eval-defun-test»	(to "ee-eval-defun-test")
;; «.find-einspector»		(to "find-einspector")
;; «.find-calceasyvideo»	(to "find-calceasyvideo")
;; «.find-luatb»		(to "find-luatb")
;; «.name0»			(to "name0")
;; «.telega»			(to "telega")
;; «.switftp»			(to "switftp")
;; «.ee-recompile-SUBTITLES»	(to "ee-recompile-SUBTITLES")
;; «.termux»			(to "termux")
;; «.find-git-shows»		(to "find-git-shows")
;; «.lean4»			(to "lean4")
;; «.tudos-tex»			(to "tudos-tex")
;; «.caepro2»			(to "caepro2")
;; «.caepro3»			(to "caepro3")
;; «.caepro4»			(to "caepro4")
;; «.caepro5»			(to "caepro5")
;; «.comissao1»			(to "comissao1")
;; «.logs-pdfizados»		(to "logs-pdfizados")
;; «.caepro-arounds»		(to "caepro-arounds")
;;   «.find-arounds»		(to "find-arounds")





;;;;;
;;
;; «autoloads»  (to ".autoloads")
;;
;;;;;

(autoload 'Info-goto-node "info")
(autoload 'browse-url-interactive-arg "browse-url")
(autoload 'find-function-read "find-func")
(autoload 'icon-mode "icon" nil t)
(autoload 'lua-mode "lua-mode" nil t)
(autoload 'pp-to-string "pp")
(autoload 'emacs-wiki-maybe "emacs-wiki")
(autoload 'htmlize-buffer "htmlize")
(autoload 'erc-select "erc" nil t)
(autoload 'Man-fontify-manpage "man" nil t)
(autoload 'facemenu-remove-all "facemenu" nil t)

;; (find-eev "Makefile" "htmlize.el")
;; (find-eev "htmlize.el")
(autoload 'htmlize-file "htmlize" nil t)

;; (find-efile "generic-x.el")
(setq generic-use-find-file-hook nil)
(autoload 'fvwm-generic-mode "generic-x" nil t)

;; (find-angg "elisp/tprops.el")
(autoload 'tp-r0-mode "tprops" nil t)
(autoload 'tp-r2-mode "tprops" nil t)

;; (find-epp 'load-path)
;; (find-elinks-elisp (mapcar 'ee-S load-path))
;;
;; (add-to-list 'load-path "~/eev-current") ; do I need these here?
(add-to-list 'load-path "~/elisp/")
;;
;; (find-eev "htmlize-eev.el")
;; (find-eev "htmlize-eev.el" "htmlize-eev-files")
(autoload 'htmlize-eev-files "htmlize-eev" nil t)
(autoload 'htmlize-eev-files-then-quit "htmlize-eev" nil t)





;;;;;
;;
;; «add-to-alist»  (to ".add-to-alist")
;;
;;;;;

;; From:
;; <http://mail.gnu.org/archive/html/bug-gnu-emacs/2001-02/msg00066.html>,
;; <http://lists.gnu.org/archive/html/bug-gnu-emacs/2001-02/msg00066.html>,
;; slightly changed.
;;
;; (setq my-alist '(("1" . "One") ("2" . "Two") ("3". "Three")))
;; (assoc "2" my-alist)
;; my-alist
;; (add-to-alist 'my-alist '("2" . "Dois"))
;; (add-to-alist 'my-alist '("4" . "Quatro"))

;; (find-elnode "Association Lists")
(defun add-to-alist (alist-var elt-cons &optional no-replace)
  "Add to the value of ALIST-VAR an element ELT-CONS if it isn't there yet.
If an element with the same car as the car of ELT-CONS is already present,
replace it with ELT-CONS unless NO-REPLACE is non-nil; if a matching
element is not already present, add ELT-CONS to the front of the alist.
The test for presence of the car of ELT-CONS is done with `equal'."
  (let ((existing-element (assoc (car elt-cons) (symbol-value alist-var))))
    (if existing-element
        (or no-replace
            (rplacd existing-element (cdr elt-cons)))
      (set alist-var (cons elt-cons (symbol-value alist-var)))))
  (symbol-value alist-var))


;; «seen»  (to ".seen")
;; (find-es "emacs" "seen")
;; (find-node "(efaq)Debugging a customization file")
;; (find-bgprocess "emacs-default-x --debug-init")
;;
(setq seen ())
(defun seen (&optional arg) (interactive)
  (if arg (setq seen (cons arg seen))
    (describe-variable 'seen)))
(defun insert-seen ()
  (interactive)
  (insert (format "(seen %d)\n" (line-number-at-pos))))
(defun saw ()
  (interactive)
  (describe-variable 'seen))

(defun seens ()
  (interactive)
  (find-estring-elisp
   (mapconcat
    (lambda (linen) (format "(find-fline \"~/.emacs\" \"(seen %d)\")\n" linen))
    seen "")))

(seen 461)




;;;;;
;;
;; «auto-mode-alist»  (to ".auto-mode-alist")
;;
;;;;;

;; (find-es "emacs" "auto-mode-alist")

(add-to-alist 'auto-mode-alist '("\\.icn$"  . icon-mode))
(add-to-alist 'auto-mode-alist '("\\.th$"   . indented-text-mode))
(add-to-alist 'auto-mode-alist '("\\.st\\'" . smalltalk-mode))
(add-to-alist 'auto-mode-alist '("\\.lua$"  . lua-mode))
(add-to-alist 'auto-mode-alist '("\\.fs$"   . forth-mode))
(add-to-alist 'auto-mode-alist '("\\.mac$"  . maxima-mode))
;; (find-es "arduino" "debian-examples")
(add-to-alist 'auto-mode-alist '("\\.ino$"  . c++-mode))
(add-to-alist 'auto-mode-alist '("\\.ino$"  . c++-mode))

(add-to-alist 'auto-mode-alist '("\\.rst\\.txt\\'" . rst-mode))

(add-to-alist 'auto-mode-alist '("\\.gnuplot$"  . gnuplot-mode))

;; This is for OpenOffice files, but is not working:
;; (add-to-alist 'auto-mode-alist '("\\.sxw$" . archive-mode))

;; (add-to-list 'auto-mode-alist '("\\.cls\\'"   . oorexx-mode))
(add-to-list 'auto-mode-alist '("\\.rexx?\\'" . oorexx-mode))
(add-to-list 'auto-mode-alist '("\\.orx\\'"   . oorexx-mode))
(add-to-list 'interpreter-mode-alist '("rexx" . oorexx-mode))
;;
;; (require 'oorexx-mode)
;; (find-angg "elisp/oorexx-mode.el")
;; (autoload 'oorexx-mode "oorexx-mode" "OOREXX mode" nil t)

;; (find-es "fvwm" "adoc-mode")
(add-to-list 'auto-mode-alist '("\\.ad\\'"   . adoc-mode))
(add-to-list 'auto-mode-alist '("\\.adoc\\'" . adoc-mode))

;; (find-es "emacs" "nov.el")
(add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))





;;;;;
;;
;; «mode-variables»  (to ".mode-variables")
;;
;;;;;

;; (find-elnode "Defining Variables")
;; (find-e20node "Init Examples")

;; For Emacs21 (pre-21.1 at least),
;; where errors on C-x C-e invoke the debugger:
;; (find-efunction 'eval-last-sexp)
;; (find-evariable 'eval-expression-debug-on-error)
(setq eval-expression-debug-on-error nil)

;; And because I don't grok CVS at all:
(setq version-control 'never)

;; Make some things behave as in Emacs20:
;; (find-node "(elisp)The Echo Area" "message-truncate-lines")
;; (find-eevfile "demo/.emacs")
(setq next-line-add-newlines t)
(setq message-truncate-lines t)

;; «8th-bit-is-meta»  (to ".8th-bit-is-meta")
;; (find-elnode "Input Modes" "converts characters with the 8th bit")
;; (find-angg ".emacs.local.bsd")
;; (8th-bit-is-meta)
;; (8-bit-clean)
;;
(defun 8th-bit-is-meta () (interactive)
  (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) t))
(defun 8-bit-clean () (interactive)
  (set-input-mode (car (current-input-mode)) (nth 1 (current-input-mode)) 0))

(8-bit-clean)

;; (find-efunction 'mouse-yank-at-click)
(setq mouse-yank-at-point t)

;; (find-elnode "Disabling Commands")
(put 'narrow-to-region 'disabled nil)

;; (find-es "emacs" "C_indentation")
(setq c-indent-level 4
      c-label-offset 2)
;; (find-e20file "progmodes/icon.el")
(setq icon-indent-level 2
      icon-continued-statement-offset 2)
;; (find-e20file "progmodes/tcl-mode.el")
(setq tcl-indent-level 2)


;; (setq ange-ftp-default-user "edrx")
;; (setq ange-ftp-default-user "anonymous")
;; (setq ange-ftp-generate-anonymous-password "edrx@mat.puc-rio.br")

;; «w3m-el»  (to ".w3m-el")
;; (find-es "emacs" "w3")
;; (setq w3-default-homepage (substitute-in-file-name "$HOME/TH/L/index.html"))
;; (setq w3-home-page (substitute-in-file-name "$HOME/TH/L/index.html"))
;; (setq w3-use-terminal-glyphs t)
(setq w3-reuse-buffers 'yes)

;; (find-evardescr 'w3m-key-binding)
(setq w3m-key-binding 'info)
(setq w3m-async-exec nil)

;; «same-window-buffer-names»  (to ".same-window-buffer-names")
;; (find-elnode "The Zen of Buffer Display")
;; (find-elnode "Choosing Window Options")
;; (find-evardescr 'same-window-buffer-names)
(setq same-window-buffer-names
      (append '("*Help*" "*compilation*" "*Occur*")
	      same-window-buffer-names))

;; (find-elnode "Buffer Display Action Functions")
(setq pop-up-windows nil)

;; (setq planner-use-other-window nil)

;; (find-efacedescr 'default)
;; (find-angg ".Xdefaults")
;; (set-face-background face bg)
;; (set-face-foreground face bg)


(seen 667)

;; (find-es "emacs" "ispell-menu-map-needed")
(setq ispell-menu-map-needed nil)




;; «emacs-cvs»      (to ".emacs-cvs")
;; «debian-startup» (to ".debian-startup")
;; (find-es "emacs" "debian-startup")
;;
;; This makes emacs-cvs aware of all the add-on -el packages in my debian box.
;; To do: update this to git emacs.
;; (find-angg ".zshrc" "emacs-cvs")

;; (find-efile "startup.el")
;; (find-sh "locate debian-startup.el")
;; (find-sh "locate startup | grep -i emacs")
;; (find-fline "/usr/share/emacs24/site-lisp/")
;; (find-fline "/usr/share/emacs24/site-lisp/debian-startup.el")
;; (find-fline "/usr/share/emacs/site-lisp/")
;; (find-fline "/usr/share/emacs/site-lisp/debian-startup.el")
;; (find-fline "/etc/" "emacs")
;; (find-fline "/etc/emacs/site-start.d/")
;; (find-fline "/etc/emacs24/site-start.d/")

;; (find-sitelispfile "")
;; (find-sitelispfile "debian-startup.el")
;; (find-sitelispfile "debian-startup.el" "(defun debian-startup (flavor)")
;; (find-sitelispfile "debian-startup.el" "(defconst debian-emacs-flavor ")
;; (find-sitelispfile "debian-startup.el" "(debian-run-directories ")
;; debian-emacs-flavor
;; common-dir: (find-fline "/etc/emacs/site-start.d/")
;; flavor-dir: (find-fline "/etc/emacs24/site-start.d/")

;; (find-fline "/etc/" "emacs")
;; (my-debian-emacs-flavor)
;;   --> emacs24
(defun my-debian-emacs-flavor ()
  (cond ((file-accessible-directory-p
	  "/etc/emacs24/site-start.d/") 'emacs24)
	((file-accessible-directory-p
	  "/etc/emacs23/site-start.d/") 'emacs23)
	((file-accessible-directory-p
	  "/etc/emacs22/site-start.d/") 'emacs22)))

(seen 925)

;; If we have the startup file but not BOTH of:
;;       the `debian-startup' function and
;;       the `debian-emacs-flavor' variable
;; then: load the startup-file,
;;       set `debian-emacs-flavor',
;;       run (debian-startup debian-emacs-flavor),
;;       add all subdirs of (find-fline "/usr/share/emacs/site-lisp/")
;;       to load-path.
;;
'
(let ((startup-file "/usr/share/emacs/site-lisp/debian-startup.el"))
  (if (and (or (not (fboundp 'debian-startup))
	       (not (boundp  'debian-emacs-flavor)))
	   (file-readable-p startup-file))
      (progn
	(load-file startup-file)
	(setq debian-emacs-flavor (my-debian-emacs-flavor))
	(debian-startup debian-emacs-flavor)
	(mapcar '(lambda (f)
		   (and (not (string= (substring f -3) "/.."))
			(file-directory-p f)
			(add-to-list 'load-path f)))
		(directory-files "/usr/share/emacs/site-lisp" t)))))



(seen 1039)


;; «my-mode»  (to ".my-mode")
;; (find-es "emacs" "my-mode")
;; (find-angg ".emacs.mini" "my-mode")
;; I *think* that minor modes defined later have precedence in the
;; key->action translation; eegud-keys-mode also defines M-s, so let
;; me try to define my-mode before eev-mode and eegud-keys-mode get
;; created...

;; (find-ekeymapdescr my-mode-map)
;; (find-efunctiondescr 'my-mode)

(setq my-mode-map (make-sparse-keymap))
(define-key my-mode-map "\M-i" 'find-file-this-line)
(define-minor-mode my-mode "Makes the keymap `my-mode-map' active."
  :init-value t :global t)

(define-key my-mode-map (kbd "M-C-<up>")
  (lambda () (interactive) (scroll-down 1)))
(define-key my-mode-map (kbd "M-C-<down>")
  (lambda () (interactive) (scroll-up 1)))

;; (global-set-key "\M-o" 'other-window)

;; (find-esetkey-links (kbd "M-o") 'other-window)
(define-key my-mode-map    "\M-o"  'other-window)

;; (define-key my-mode-map "\M-a"
;;   (lambda () (interactive) (eek "C-a") (insert ";;;###autoload\n")))

;; (find-sh "locate snarf | grep jpg | grep -v xvpics | sort")


(seen 1073)




;;;;;
;;
;; «eev»  (to ".eev")
;;
;;;;;

(setq ee-delimiter-hash "\n#*\n")
(setq ee-delimiter-percent "\n%*\n")
;; (setq ee-anchor-format "«%s»")
(setq eelatex-eevscript "cd $EEVTMPDIR; latex tmp.tex && rexdvi tmp.dvi")

(standard-display-8bit 160 254)

;; (setq debug-on-error t)

;; «eev-block»  (to ".eev-block")
;; (find-eevfile "eev.el" "define-minor-mode eev-mode")
;; (find-eevfile "eev.el" "define-minor-mode eev-mode\n")
;;(setq eev-mode-lighter nil)


;; Load eev.
;; Generated by: (find-eev-install-links "~/eev-current/" "~/eev" "#")
;;        Check: (find-fline "~/eev-current/")
;;          See: (find-eev-install-intro "3. Changing your .emacs")
;;
(add-to-list 'load-path "~/eev-current")
(require 'eev-load)                 ; (find-eev "eev-load.el")
(require 'eev-aliases)              ; (find-eev "eev-aliases.el")
(eev-mode 1)                        ; (find-eev "eev-mode.el")
;;
(seen 1188)

;; From: (find-templates-intro "4. Adding meat")
' (require 'eev-qrl)                  ; (find-eev "eev-qrl.el")
' (require 'eev-kl-here)              ; (find-eev "eev-kl-here.el")
' (require 'eev-strange-functions)    ; (find-eev "eev-strange-functions.el")
;;
(require 'eev-prepared)             ; (find-eev "eev-prepared.el")
(require 'eev-bounded)              ; (find-eev "eev-bounded.el")

;; (find-psne-intro         "6. `ee-flip-psne-ness'")
(define-key eev-mode-map "\M-s" 'ee-flip-psne-ness)

;; «eev-pdflike-aliases» (to ".eev-pdflike-aliases")
;; (find-eev "eev-pdflike.el" "aliases")
(defalias 'code-pstotext   'code-pdftotext)
(defalias 'code-djvutotext 'code-djvu-text)
(defalias 'code-badpdf     'code-xpdf)

;; ;; «code-pdf-text8»  (to ".code-pdf-text8")
;; ;; See: (find-eev "eev-pdflike.el" "find-pdftotext-text")
;; (defun ee-find-pdf-text8 (fname &rest rest)
;;   `(,ee-pdftotext-program "-layout" ,(ee-expand fname) "-"))
;; 
;; ;; (find-code-pdftextbackend "pdf-text8")
;;         (code-pdftextbackend "pdf-text8")
;; 
;; (code-brfile 'find-pdf-text8
;; 	     :local         'brpdftxt8l
;; 	     :dired         'brpdftxt8d)

;; «1c-and-1cl»  (to ".1c-and-1cl")
;; From: (find-eev "eev-tlinks.el" "1c")
(defalias '1c  'find-1stclassvideos)
(defalias '1cl 'find-1stclassvideo-links)

;; «eev-glyphs»  (to ".eev-glyphs")
;; (find-eev "eepitch.el" "glyphs")
;; (find-eev "eepitch.el" "set-glyphs")
;; (find-eevfile "eev-glyphs.el" "(defun eev-set-default-glyphs")
;;
;; Compare:
;;   (eev-set-glyph     ?\^O ?* 'eev-glyph-face-red)
;;   (eepitch-set-glyph ?\^O ?* 'eepitch-star-face)
;;
(require 'eev-glyphs)          ; (find-eev "eev-glyphs.el")
(eev-set-glyph    8 32 'eev-glyph-face-bluebg)
(eev-set-glyph   12 ?L 'eev-glyph-face-yellow-on-red)
(eev-set-glyph   13 ?M 'eev-glyph-face-blue)

(seen 1227)

' (					

;; See: (find-eev "eepitch.el" "glyphs")
;; This will make formfeeds appear as yellow "L"s on a red background.
;;
(defface eev-glyph-face-yellow-on-red
  '((t (:foreground "yellow" :background "red")))
  "Face used for the formfeed glyph (char 12).")

(eepitch-set-glyph   12 ?L 'eev-glyph-face-yellow-on-red)

)

;; (find-eev "eev-compose.el")
;; (require 'eev-compose)         ; (find-eev "eev-compose.el")
;; (define-key eev-mode-map [?\C-,] 'eev-compose-two-keys)     ; X only
;; (define-key eev-mode-map [?\M-,] 'eev-compose-two-keys)

;; «eev-compose-hash»  (to ".eev-compose-hash")
;; (find-eev "eev-compose-hash.el")
;; (find-my-mode-links)
(when (fboundp 'rx-let)
  (require 'eev-compose-hash)
  (ee-composes-do ee-composes-bigstr-accents)
  (ee-composes-do ee-composes-bigstr-otheriso)
  (ee-composes-do ee-composes-bigstr-math)
  (define-key my-mode-map (kbd "M-,") 'ee-compose-pair)
  )

;; «eev-kla-fossils»  (to ".eev-kla-fossils")
;; (find-eev "eev-kla.el" "simple-defaults")
;; (find-eev "eev-kla.el" "other-defaults")
;; (find-eev "eev-kla.el" "other-defaults" "ee-kl-shorterfname")
;; (find-eev "eev-kla.el" "generate-sexps")
;; (ee-kl-shortfname   :c "es" :fname "/home/edrx/e/emacs.e")
;; (ee-kl-shorterfname :c "es" :fname "/home/edrx/e/emacs.e")
;; (ee-kl-shorterfname :c "es" :fname "~/e/emacs.e")
;; (ee-kl-shorterfname :c "TH" :fname "~/TH/2021aulas-por-telegram.blogme")

(put 'ee-preferred-c 'safe-local-variable #'string-or-null-p)

(setq ee-kl-format1 "%s\n")

;; Overrides this:
;; (find-eev "eev-kla.el" "shorter-fnames")
;;
(cl-defun ee-kl-shorterfname (&key fname c r)
  (setq fname (or fname (ee-kl-fname))
	c     (or c     (ee-kl-c :fname fname))
	r     (or r     (ee-kl-r :fname fname)))
  (cond ((equal c "es") (replace-regexp-in-string "\\.e$" "" r))
	((equal c "TH") (replace-regexp-in-string "\\.blogme$" "" r))
	(t r)))

;; «klapt»  (to ".klapt")
;; (find-angg "elisp/klapt.el")
(load "~/elisp/klapt.el")

;; «eepitch-preprocess-line»    (to ".eepitch-preprocess-line")
;; «eepitch-preprocess-regexp»  (to ".eepitch-preprocess-regexp")
;; See: (find-eepitch-intro "3.3. `eepitch-preprocess-line'")
(defvar eepitch-preprocess-regexp "^")
(setq   eepitch-preprocess-regexp "^")
(defun eepitch-preprocess-line (line)
  (replace-regexp-in-string eepitch-preprocess-regexp "" line))

;; «eepitch-password-prompt»  (to ".eepitch-password-prompt")
;; (eepitch-password-prompt 'yes)
;; (eepitch-password-prompt 'no)
;; (find-es "emacs" "comint-password")
(require 'comint)

(defun eepitch-password-prompt-yes ()
  (setq comint-password-prompt-regexp
	(default-value 'comint-password-prompt-regexp))
  "comint-password-prompt turned on")

(defun eepitch-password-prompt-no ()
  (setq comint-password-prompt-regexp (rx unmatchable))
  "comint-password-prompt turned off")

(defun eepitch-password-prompt (yes/no)
  (cond ((eq yes/no 'yes) (eepitch-password-prompt-yes))
	((eq yes/no 'no)  (eepitch-password-prompt-no))
	((t (error "Arg must be 'yes or 'no")))))

;; (find-eev "eev-pdflike.el" "change-default-viewer")
(defun ee-use-xpdf () (interactive) (defalias 'find-pdf-page 'find-xpdf-page))
(defun ee-use-pdfr () (interactive) (defalias 'find-pdf-page 'find-pdftoolsr-page))

;; (find-eev "eev-bounded.el")
;; (define-key eev-mode-map [f3] 'ee-bounded-function)

(defalias      'code-pdftotext      'code-pdf-text)
(defalias 'find-code-pdftotext 'find-code-pdf-text)
(defalias      'code-ps             'code-xpdf)
(defalias 'find-code-ps        'find-code-xpdf)

(require 'eev-channels)        ; (find-eev "eev-channels.el")
(define-key eev-mode-map [f9]   'eechannel-this-line)

(seen 1334)

;; Original: (find-eev "eev-tlinks.el" "find-1stclassvideoindex")
;; Local version that uses find-angg instead of find-anggwgeta-elisp
(defun find-1stclassvideoindex (c &rest pos-spec-list)
  (interactive (list (ee-1stclassvideo-around-point-ask)))
  (apply 'find-angg ".emacs.videos" c pos-spec-list))

;; Original: (find-eev "eev-tlinks.el" "find-1stclassvideolsubs")
;; Test: (find-1stclassvideolsubs "eev2021")
(defun find-1stclassvideolsubs (c &rest pos-spec-list)
  (interactive (list (ee-1stclassvideo-around-point-ask)))
  (let ((mp4stem (ee-1stclassvideos-mp4stem c)))
    (apply 'find-anggfile (format "SUBTITLES/%s.lua" mp4stem)
	   pos-spec-list)))


;; «auctex»  (to ".auctex")
;; (find-es "auctex")
(code-c-d "auctex" "~/.emacs.d/elpa/auctex-14.0.3/" "auctex")
;; (find-auctexfile "")
;; (find-auctexnode "")

;; (find-e20file "textmodes/tex-mode.el")
(setq tex-open-quote "\""
      tex-close-quote "\""
      tex-default-mode 'latex-mode
      latex-block-names '("align" "align*"))
;; AUCTeX needs separate defs, it seems.
;; (find-es "tex" "auctex")
(setq TeX-open-quote "\""
      TeX-close-quote "\"")
(setq sentence-end-double-space nil)
;; https://practicaltypography.com/are-two-spaces-better-than-one.html





;; (find-eev "eev-rstdoc.el")
;; (find-eev "eev-rstdoc.el" "default-defuns")
;;(require 'eev-rstdoc)
(ee-rstdoc-default-defuns)

;; «ee-rstdoc-:ghcug»  (to ".ee-rstdoc-:ghcug")
;; Skel: (find-rstdoc-links :ghcug)
(setq ee-rstdoc-:ghcug
      '(:base      "index"
        :base-web  "https://downloads.haskell.org/ghc/latest/docs/users_guide/"
        :base-html "file:///home/edrx/bigsrc/ghc-8.10.3/docs/users_guide/build-html/users_guide/"
        :base-rst  "/home/edrx/bigsrc/ghc-8.10.3/docs/users_guide/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://downloads.haskell.org/ghc/latest/docs/users_guide/"
                    "^/home/edrx/bigsrc/ghc-8.10.3/docs/users_guide/build-html/users_guide/"
                    "^/home/edrx/bigsrc/ghc-8.10.3/docs/users_guide/")
        :kill      guk
	))

;; (find-code-rstdoc :ghcug)
        (code-rstdoc :ghcug)

;; «ee-rstdoc-:h98»  (to ".ee-rstdoc-:h98")
;; (find-es "haskell" "haskell-docs")
;; Skel: (find-rstdoc-links :h98)
(setq ee-rstdoc-:h98
      '(:base      "index"
        :base-web  "https://www.haskell.org/onlinereport/"
        :base-html "file:///usr/share/doc/haskell98-report/html/haskell98-report-html/"
        :base-rst  "NOTYET/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://www.haskell.org/onlinereport/"
                    "^/usr/share/doc/haskell98-report/html/haskell98-report-html/"
                    "^NOTYET/")
        :kill      h98k
	))

;; (find-code-rstdoc :h98)
        (code-rstdoc :h98)

;; «ee-rstdoc-:h98t»  (to ".ee-rstdoc-:h98t")
;; (find-es "haskell" "haskell-docs")
;; Skel: (find-rstdoc-links :h98t)
(setq ee-rstdoc-:h98t
      '(:base      "index"
        :base-web  "https://www.haskell.org/tutorial/"
        :base-html "file:///usr/share/doc/haskell98-tutorial/html/"
        :base-rst  "NOTYET/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://www.haskell.org/tutorial/"
                    "^/usr/share/doc/haskell98-tutorial/html/"
                    "^NOTYET/")
        :kill      h98tk
	))
;; (find-code-rstdoc :h98t)
        (code-rstdoc :h98t)

;; «ee-rstdoc-:pexpect»  (to ".ee-rstdoc-:pexpect")
;; (find-es "python" "pexpect")
(setq ee-rstdoc-:pexpect
      '(:base      "index"
        :base-web  "https://pexpect.readthedocs.io/en/stable/"
        :base-html "file:///home/edrx/usrc/pexpect/doc/_build/html/"
        :base-rst  "/home/edrx/usrc/pexpect/doc/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://pexpect.readthedocs.io/en/stable/"
                    "^/home/edrx/usrc/pexpect/doc/")
        :kill      pexk
	))

;; (find-code-rstdoc :pexpect)
        (code-rstdoc :pexpect)

;; «ee-rstdoc-:pillow»  (to ".ee-rstdoc-:pillow")
;; Skel: (find-rstdoc-links :pillow)
(setq ee-rstdoc-:pillow
      '(:base      "index"
        :base-web  "https://pillow.readthedocs.io/en/stable/"
        :base-html "file:////usr/share/doc/python-pil-doc/html/"
        :base-rst  "/usr/share/doc/python-pil-doc/html/_sources/"
        :rst       ".rst.txt"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://pillow.readthedocs.io/en/stable/"
                    "^//usr/share/doc/python-pil-doc/html/"
                    "^/usr/share/doc/python-pil-doc/html/_sources/")
        :kill      pilk
	))

;; (find-code-rstdoc :pillow)
        (code-rstdoc :pillow)

;; «ee-rstdoc-:fennel»  (to ".ee-rstdoc-:fennel")
;; (find-es "fennel" "fennel-lang.git")
(setq ee-rstdoc-:fennel
      '(:base      "index"
        :base-web  "https://fennel-lang.org/"
        :base-html "file:///home/edrx/usrc/fennel-lang.org/"
        :base-rst  "~/NOTYET/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://fennel-lang.org/")
        :kill      fek
	))

;; (find-code-rstdoc :fennel)
        (code-rstdoc :fennel)

;; «ee-rstdoc-:clhs»  (to ".ee-rstdoc-:clhs")
;; Skel: (find-rstdoc-links :clhs)
(setq ee-rstdoc-:clhs
      '(:base      "Front/Contents"
        :base-web  "http://clhs.lisp.se/"
	           ;; "http://www.lispworks.com/documentation/HyperSpec/"
        :base-html "file:///usr/share/doc/hyperspec/"
        :base-rst  "/BASE-RST/"
        :rst       ".rst"
        :htm       ".htm"
        :res       ("#.*$" "\\?.*$" ".html?$" ".txt$" ".rst$" "^file://"
		    "http://clhs.lisp.se/"
		    "http://www.lispworks.com/documentation/HyperSpec/"
		    "http://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/html/hyperspec/HyperSpec/"
		    "http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/"
		    "/usr/share/doc/hyperspec/")
        :kill      clk
	))

;; (find-code-rstdoc :clhs)
        (code-rstdoc :clhs)

(defun ee-clhs-lookup-index (name)
  (require 'clhs)
  (gethash (upcase name) (clhs-symbols)))

;; Tests: (ee-clhs-lookup-index "car")
;;        (find-clhsdoci "car")
;;
(defun find-clhsdoci (name &rest rest)
  (let* ((str0 (ee-clhs-lookup-index name))
	 (str (replace-regexp-in-string "\\.html?$" "" str0)))
    (find-clhsdoc str)))

;; «clhs»  (to ".clhs")
;; See:  (find-es "lisp" "clhs")
;;       (find-status   "hyperspec")
;;       (find-vldifile "hyperspec.list")
;;       (find-udfile   "hyperspec/")
;;       (find-evardescr 'clhs-root)
;;       (find-evariable 'clhs-root)
;;       (find-ehashtable clhs-symbols)
;; Test: (find-clhsdoci "loop")
;;       (find-clhsdoc "Body/m_loop")
;;
(setq    clhs-root "file:///usr/share/doc/hyperspec/")
(setq ee-clhs-root "file:///usr/share/doc/hyperspec/")
(code-c-d "clhsroot"      "/usr/share/doc/hyperspec/")

(code-c-d "h98"  "/usr/share/doc/haskell98-report/html/haskell98-report-html/")
(code-c-d "h98t" "/usr/share/doc/haskell98-tutorial/html/")
;; (find-h98file  "")
;; (find-h98tfile "")


;; «ee-rstdoc-:gd3»  (to ".ee-rstdoc-:gd3")
;; Skel: (find-rstdoc-links :gd3)
;;  See: (find-es "godot" "godot-docs")
(setq ee-rstdoc-:gd3
      '(:base      "index"
        :base-web  "https://docs.godotengine.org/en/3.5/"
        :base-html "file:///home/edrx/bigsrc/godot-docs/_build/html/"
        :base-rst  "/home/edrx/bigsrc/godot-docs/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://docs.godotengine.org/en/3.5/"
                    "^/home/edrx/bigsrc/godot-docs/"
		    "^_build/html/"
		    "^_sources/"
		    )
        :kill      gd3k
	))

;; (find-code-rstdoc :gd3)
        (code-rstdoc :gd3)


;; «ee-rstdoc-:manim»  (to ".ee-rstdoc-:manim")
;; Skel: (find-rstdoc-links :manim)
(setq ee-rstdoc-:manim
      '(:base      "index"
        :base-web  "https://docs.manim.community/en/stable/"
        :base-html "file:///home/edrx/usrc/manim/docs/build/html/"
        :base-rst  "/home/edrx/usrc/manim/docs/source/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://docs.manim.community/en/stable/"
                    "^/home/edrx/usrc/manim/docs/build/html/"
                    "^/home/edrx/usrc/manim/docs/source/")
        :kill      manimk
	))

;; (find-code-rstdoc :manim)
        (code-rstdoc :manim)

;; «ee-rstdoc-:J»  (to ".ee-rstdoc-:J")
;; Skel: (find-rstdoc-links :J)
;; (find-es "apl" "J-help")
;; (to "J")
(setq ee-rstdoc-:J
      '(:base      "index"
        :base-web  "https://www.jsoftware.com/help/"
        :base-html "file:////home/edrx/snarf/https/www.jsoftware.com/help/"
        :base-rst  "/home/edrx/snarf/https/www.jsoftware.com/help/"
        :htm       ".htm"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".htm$" ".txt$" ".rst$" "^file://"
                    "^https://www.jsoftware.com/help/"
                    "^/home/edrx/snarf/https/www.jsoftware.com/help/")
        :kill      Jk
	))

;; (find-code-rstdoc :J)
        (code-rstdoc :J)


;; «ee-rstdoc-:penlight»  (to ".ee-rstdoc-:penlight")
;; Skel: (find-rstdoc-links :penlight)
;; (find-es "lua5" "penlight-git")
(setq ee-rstdoc-:penlight
      '(:base      "index"
        :base-web  "https://lunarmodules.github.io/Penlight/"
        :base-html "file:///home/edrx/usrc/Penlight/docs/"
        :base-rst  "/BASE-RST/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://lunarmodules.github.io/Penlight/"
                    "^/home/edrx/usrc/Penlight/docs/"
                    "^/BASE-RST/")
        :kill      plk
	))

;; (find-code-rstdoc :penlight)
        (code-rstdoc :penlight)


;; «ee-rstdoc-:nodejs»  (to ".ee-rstdoc-:nodejs")
;; Skel: (find-rstdoc-links :nodejs)
;; (find-es "js" "nodejs-docs")
(setq ee-rstdoc-:nodejs
      '(:base      "index"
        :base-web  "https://nodejs.org/dist/latest-v20.x/docs/api/"
        :base-html "file:///usr/share/doc/nodejs/api/"
        :base-rst  "/usr/share/doc/nodejs/api/"
        :rst       ".md"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".gz$" ".md$" "^file://"
                    "dist/latest-v20.x/docs/" "api/"
                    "^https://nodejs.org/"
                    "^https://nodejs.org/dist/latest-v20.x/docs/api/"
                    "^/usr/share/doc/nodejs/")
        :kill      nodek
	))

;; (find-code-rstdoc :nodejs)
        (code-rstdoc :nodejs)


;; «ee-rstdoc-:leanref»  (to ".ee-rstdoc-:leanref")
;; Skel: (find-rstdoc-links :leanref)
(setq ee-rstdoc-:leanref
      '(:base      "index"
        :base-web  "https://leanprover.github.io/reference/"
        :base-html "https://leanprover.github.io/reference/"
     ;; :base-html "file:///BASE-HTML/"
        :base-rst  "/BASE-RST/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://leanprover.github.io/reference/"
                    "^/BASE-HTML/"
                    "^/BASE-RST/")
        :kill      lrk
	))

;; (find-code-rstdoc :leanref)
        (code-rstdoc :leanref)

;; «ee-rstdoc-:leanmeta»  (to ".ee-rstdoc-:leanmeta")
;; Skel: (find-rstdoc-links :leanmeta)
;;  See: (find-es "lean" "metaprogramming")
(setq ee-rstdoc-:leanmeta
      '(:base      "index"
        :base-web  "https://leanprover-community.github.io/lean4-metaprogramming-book/md/"
        :base-html "file:////home/edrx/snarf/https/leanprover-community.github.io/lean4-metaprogramming-book/md/"
        :base-rst  "/home/edrx/usrc/lean4-metaprogramming-book/lean/"
        :rst       ".lean"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://" "^/home/edrx/snarf"
                    "^https://leanprover-community.github.io/lean4-metaprogramming-book/md/"
                    "^/https/leanprover-community.github.io/lean4-metaprogramming-book/md/"
                    "^/home/edrx/usrc/lean4-metaprogramming-book/lean/")
        :kill      lmk
	))

;; (find-code-rstdoc :leanmeta)
        (code-rstdoc :leanmeta)


;; «ee-rstdoc-:leanmaths»  (to ".ee-rstdoc-:leanmaths")
;; Skel: (find-rstdoc-links :leanmaths)
;;  See: (find-es "lean" "mathsinlean")
(setq ee-rstdoc-:leanmaths
      '(:base      "index"
        :base-web  "https://BASE-WEB/"
        :base-html "file:///home/edrx/bigsrc/mathematics_in_lean/html/"
        :base-rst  "/BASE-RST/"
        :rst       ".rst"
        :res       ("#.*$" "\\?.*$" ".html$" ".txt$" ".rst$" "^file://"
                    "^https://BASE-WEB/"
                    "^/home/edrx/bigsrc/mathematics_in_lean/html/"
                    "^/BASE-RST/")
        :kill      lmak
	))

;; (find-code-rstdoc :leanmaths)
        (code-rstdoc :leanmaths)







;; «code-etex-tla»  (to ".code-etex-tla")
(require 'eev-tla)  ; (find-eev "eev-tla.el")

;; Skel: (find-code-xxx-links "etex-tla" "tla stem" "")
;; Tests:      (code-etex-tla "ph1"         "2017planar-has-1")
;;        (find-code-etex-tla "ph1"         "2017planar-has-1")
;;        (find-code-tla      "ph1" "~/LATEX/2017planar-has-1.tex")
;;                       (find-ph1p 3)
;;
(defun      code-etex-tla (tla stem)
  (eval (ee-read      (ee-code-etex-tla tla stem))))
(defun find-code-etex-tla (tla stem)
  (find-estring-elisp (ee-code-etex-tla tla stem)))
(defun   ee-code-etex-tla (tla stem)
  (let* ((fname (format "~/LATEX/%s.tex" stem))
	 (body (ee-code-tla tla fname)))
    (ee-template0 "\
;; (find-code-etex-tla \"C\" \"FNAME\")
;;      (code-etex-tla \"C\" \"FNAME\")
;; (find-angg \".emacs\" \"code-etex-tla\")

;; Test: (find-{tla}p 1)
(defun find-{tla}p (page &rest rest)
  (find-estring (ee-code-latexpdfurlstuff \"{tla}\" \"{stem}\" page)))

;; Everything below this point was generated by `ee-code-tla'.


{body}
")))



;; «tikz»  (to ".tikz")
;; (find-angg ".emacs.papers" "tikz")
;; (find-angg "LUA/tikz1.el")
;; (find-angg "LUA/tikz1.el" "find-tikz-links")
;; (find-angg "LUA/tikz1.el" "tik")
(load "~/LUA/tikz1.el")
(defalias 'ts 'tikz-send-links-to-pdf-to-other-window)
(defun tikz-send-links-to-pdf-to-other-window () (interactive)
  (eek "C-SPC C-e
        M-w M-h M-p 10*<down> C-SPC 2*<down> M-w M-K
        M-o C-y M-o"))
;;
;; «tikzgit»  (to ".tikzgit")
;; (find-es "tikz" "tikz-git")
(code-c-d "tikzgit"    "~/usrc/pgf/")
(code-c-d "tikzgittgp" "~/usrc/pgf/tex/generic/pgf/")
(code-c-d "tikzman"    "~/usrc/pgf/doc/generic/pgf/")
;;
;; (find-es "tikz" "c_tikzref")
(code-pdf-page "ctikzref" "$S/http/www-groups.mcs.st-and.ac.uk/~alanc/pub/c_tikzref/c_tikzref.pdf")
(code-pdf-text "ctikzref" "$S/http/www-groups.mcs.st-and.ac.uk/~alanc/pub/c_tikzref/c_tikzref.pdf")



;; «eev-package» (to ".eev-package")
;; (find-es "eev" "eev-emacs-package")
;; (find-epackages)
;; (find-epackage 'eev)
;; (find-eevfile "eev-pkg.el")
;; (find-fline "~/usrc/eev-20141011/")
;;(code-c-d "eevpkg" "~/.emacs.d/elpa/eev-20141011/")
;; (find-eevpkgfile "")
;; (find-eevpkgfile "eev-autoloads.el")


;; «fvwm» (to ".fvwm")
;; (find-es "fvwm" "fvwm3-git")
;; (find-angg ".emacs.fvwm")
(load "~/.emacs.fvwm" 'noerror)

;; (find-eev "eev-langs.el" "fvwm")
(defvar ee-file-fvwm "~/.fvwm/ee.fvwm"  "See `eefvwm0'.")

(defun eefvwm (s &optional e) (interactive "r")
  (ee-write-with-nl s e "" "" ee-file-fvwm)
  (format "eefvwm: wrote %s" ee-file-fvwm))
(defun eefvwm0 (s &optional e) (interactive "r")
  (eefvwm s e)
  (find-sh0 "FvwmCommand ee"))

(defun find-fvwm0 (str) (eefvwm str) (find-sh0 "FvwmCommand ee"))





;; «mplayer-options»  (to ".mplayer-options")
;; (find-eev "eev-audiovideo.el" "find-mplayer")
;; (find-es "fvwm" "fullscreen")
;; (find-es "mplayer" "-zoom")
;; (find-man "1 mplayer2")
;; (find-man "1 mplayer2" "-nokeepaspect")
;; (setq ee-mplayer-options '("-fs"                            "-osdlevel" "2"))
(setq ee-mplayer-options '("-fs" "-title" "mplayer-fullscreen" "-osdlevel" "2"))
(setq ee-mplayer-options '("-fs" "-title" "mplayer-fullscreen" "-osdlevel" "2" "-zoom"))
(setq ee-mplayer-options '("-fs" "-title" "mplayer-fullscreen" "-osdlevel" "2" "-zoom" "-vo" "x11"))
(setq ee-mplayer-options '("-fs" "-title" "mplayer-fullscreen" "-osdlevel" "2" "-zoom" "-vo" "x11" "-sws" "0" "-quiet"))
;; (find-fline "/sda5/videos/")
;; (find-video "/sda5/videos/J_S_Bach_6th_Cello_Suite_transcribed_for_viola_-_Courante-QJjOM7SpbhM.flv")
;; (find-mplayer  "/sda5/videos/Transgender_Love_Story_-_Life_After_Surgery-hRKQJCC_RSM.mp4")
;; (find-mplayer  "/sda5/videos/Transgender_Love_Story_-_Life_After_Surgery-hRKQJCC_RSM.mp4" "1:02")

;; 2013oct03
(setq ee-mplayer-video-options-geometry '("-geometry" "500x400+512+20"))
(setq ee-mplayer-video-options-geometry '("-fs" "-title" "mplayer-fullscreen"))
(setq ee-mplayer-video-options-hardware '("-zoom" "-vo" "x11" "-sws" "0"))
(setq ee-mplayer-video-options-screenshot '("-vf" "screenshot"))
(setq ee-mplayer-video-options-screenshot '())
(setq ee-mplayer-video-options-other    '( "-osdlevel" "2" "-quiet"))
(defun ee-mplayer-video-options ()
  (append
   ee-mplayer-video-options-geometry
   ee-mplayer-video-options-hardware
   ee-mplayer-video-options-screenshot
   ee-mplayer-video-options-other))

(setq ee-termplayer-options '("-novideo"))

(defun find-mplayer0 (&rest rest)
  (let ((ee-mplayer-options
	 '("-fs" "-title" "mplayer-fullscreen" "-osdlevel" "0")))
    (apply 'find-mplayer rest)))


(seen 1498)

(autoload 'eev-math-glyphs-edrx "eev-math-glyphs" nil t)
;; (eev-math-glyphs-edrx)
;; (find-eev "eev-math-glyphs.el")

;; «eepitch-shell»  (to ".eepitch-shell")
;; See: (find-eepitch-select-shell-links)
;;
;; Use bash (mainly for screenshots and videos):
(defun eepitch-shell  () (interactive) (eepitch-comint "bash" "bash"))
(defun eepitch-shell2 () (interactive) (eepitch-comint "bash 2" "bash"))
(defun eepitch-shell3 () (interactive) (eepitch-comint "bash 3" "bash"))

;; Default:
(defun eepitch-shell  () (interactive) (eepitch-de '(shell)))
(defun eepitch-shell2 () (interactive) (eepitch-de '(shell "*shell 2*")))
(defun eepitch-shell3 () (interactive) (eepitch-de '(shell "*shell 3*")))

;; Broken with zsh:
;; (defun eepitch-shell  () (interactive) (eepitch '(shell)))
;; (defun eepitch-shell2 () (interactive) (eepitch '(shell "*shell 2*")))
;; (defun eepitch-shell3 () (interactive) (eepitch '(shell "*shell 3*")))
;; (defun eepitch-shell  () (interactive) (eepitch-vterm '(shell)))
;; (defun eepitch-shell2 () (interactive) (eepitch-vterm '(shell "*shell 2*")))
;; (defun eepitch-shell3 () (interactive) (eepitch-vterm '(shell "*shell 3*")))


(code-brurl 'browse-url-firefox
	    :remote 'brm :local 'brml :dired 'brmd)

;; (find-eev "eev-brxxx.el")
(defun find-gimp (fname) (find-bgprocess `("gimp" ,fname)))

(code-brfile 'find-gimp                :local 'brgimpl :dired 'brgimpd)

;; (defun find-chrome (url) (find-bgprocess `("google-chrome" ,url)))
;; (code-brurl  'find-chrome :remote 'brg :local 'brgl    :dired 'brgd)



;; (find-efile "mouse.el")
;; (find-evariable 'x-fixed-font-alist "Font menu")



;; «modes-safe-local»  (to ".modes-safe-local")
;; (find-eevfile "htmlize-eev.el" "modes-safe-local")
;; I should use `favourite-modes-allowed', but I'm lazy...
;;
(put 'modes 'safe-local-variable 'listp)

;;-------------------------------------------
;; «favourite-modes»  (to ".favourite-modes")
;; M-m -> `favourite-modes' -> cycle through the list of favourite modes
;;
(defun favourite-modes (arg)
  "Cycle through the list of favourite modes for this buffer."
  (interactive "P")
  (make-local-variable 'favourite-modes)
  (if (not (boundp 'favourite-modes))
      (setq favourite-modes nil))
  (put 'favourite-modes 'permanent-local t)
  (if (and arg (<= arg 0))
      (setq favourite-modes (remove major-mode favourite-modes)))
  (if (null favourite-modes)
      (setq favourite-modes (or modes (list major-mode))))
  (if (and arg (>= arg 1))
      (add-to-list 'favourite-modes major-mode 'append))
  (setq favourite-modes
	(append (cdr favourite-modes) (list (car favourite-modes))))
  (funcall (car favourite-modes))
  (message "favourite-modes = %S" favourite-modes))

(global-set-key "\M-m" 'favourite-modes)

(defun my-normal-mode ()
  "Like `normal-mode', but with a hack to reload the list of favourite modes."
  (interactive)
  ;; (put 'favourite-modes 'permanent-local nil)
  (makunbound 'modes)
  (makunbound 'favourite-modes)
  (normal-mode))

(setq favourite-modes-allowed '(
  fundamental-mode
  emacs-lisp-mode
  lua-mode
  org-mode
  sh-mode
  makefile-mode
  ))

;; Unfinished:
;; (favourite-modes-unkown '(emacs-lisp-mode foo sh-mode))
;; (apply 'or (favourite-modes-unkown '(emacs-lisp-mode foo sh-mode)))
;; (apply 'or '(nil foo nil))
;;
(defun favourite-modes-unkown (ml)
  (let* ((f (lambda (m) (if (member m favourite-modes-allowed) nil m)))
	 (mlu (mapcar f ml)))
    mlu))



(seen 820)


(put 'ee-charset-indicator 'safe-local-variable 'stringp) ;; obsolete

(seen 980)


;; «woman»  (to ".woman")
;; (find-efunction 'woman-dired-find-file)
;; (find-ekeymapdescr dired-mode-map "woman-dired-find-file")
;; (find-efile "woman.el")
(setq woman-use-own-frame nil)
;;
;; (find-womannode "Introduction")
(seen 993)

;; (code-c-d "woman" (ee-efile "") "woman")

(seen 997)


;; Hey, shouldn't this be an "eval-after-load"?
;; (find-egrep "grep -nH -e woman-dired-find-file $(find * -name '*.el')")
' (add-hook 'dired-mode-hook
	    (lambda ()
	      (define-key dired-mode-map "W" 'woman-dired-find-file)))


(seen 993)


;; «find-woman»  (to ".find-woman")
;; (woman-find-file (ee-fvwmfile "fvwm/fvwm.1"))
;; (find-woman (ee-fvwmfile "fvwm/fvwm.1"))
;; (find-woman (ee-fvwmfile "fvwm/fvwm.1") "ModulePath path")
;; (find-woman (ee-fvwmfile "fvwm/fvwm.1") "FVWM_MODULEDIR")
;; (find-womanfile "")

(defun find-woman0 (manfile &rest rest)
  (woman-find-file manfile)
  (apply 'ee-goto-position rest))

(defun ee-code-c-d-:woman (c d &rest rest)
 (concat (ee-template0 "
   (defun find-{c}woman (manfile &rest pos-spec-list)
     (apply 'find-woman0 (ee-{c}file manfile) pos-spec-list))
   ") (ee-code-c-d-rest c d rest)))

;; (find-evariable 'code-c-d-keywords-new)
;; (add-to-alist 'code-c-d-keywords-new '(:woman . ee-code-c-d-:woman))

(defun ee-code-c-d-:ffox (c d &rest rest)
 (concat (ee-template0 "
   (defun find-{c}ffox (semiurl &rest pos-spec-list)
     (find-firefox (ee-{c}url semiurl)))
   ") (ee-code-c-d-rest c d rest)))

;; (find-evariable 'code-c-d-keywords-new)
;; (add-to-alist 'code-c-d-keywords-new '(:ffox . ee-code-c-d-:ffox))

(seen 1039)



;; «square-brackets»  (to ".square-brackets")
;; Square brackets (rubikitch)
;; (find-eoutput '(insert 300006 300007))
;; (find-eoutput '(insert 300006 300007) "" '(switch-to-buffer (htmlize-buffer)))
;; (find-eoutput '(insert 332731 332736))
;; (find-eoutput '(insert 332731 332736) "" '(switch-to-buffer (htmlize-buffer)))
;; (find-eleimfile "quail/sgml-input.el")
;; (find-eleimfile "quail/latin-ltx.el")
;; (find-eleimfile "quail/latin-ltx.el" "llbracket")
;; (find-echarsetchars 'mule-unicode-0100-24ff)
;; (find-echarsetchars 'mule-unicode-2500-33ff "276x")
(when (eq window-system 'x)
  (eev-set-glyph ?\^Q 300006 'eev-glyph-face-green)
  (eev-set-glyph ?\^P 300007 'eev-glyph-face-green)
  (when (fboundp 'make-glyph-code)
    (eev-set-glyph ?\^Q 10214 'eev-glyph-face-green)
    (eev-set-glyph ?\^P 10215 'eev-glyph-face-green)))

;; (eev-set-glyph ?\^Q nil)
;; (eev-set-glyph ?\^P nil)
;; (find-es "blogme" "square-brackets")



;; «M-e-in-c-mode»  (to ".M-e-in-c-mode")
;; (find-es "emacs" "c-mode-M-e")

;; `eev-invasive' binds M-e to `ee-eval-sexp-eol' and I want eev's
;; binding to be universal. C-mode will try to set M-e to
;; `c-end-of-statement'; don't let that override my binding.
;;
;;(eval-after-load "cc-mode"
;;  '(define-key c-mode-base-map "\ee" nil))





;; «find-w3m» (to ".find-w3m")
;; (find-eevgrep "grep -nH -e find-w3m *.el")
;; (find-eev "eev.el" "find-w3m")
;; (find-eev "eev-blinks.el" "find-w3m")

;; «dired-find-w3m»  (to ".dired-find-w3m")

;; Add a binding "w" -> `dired-find-w3m' to dired
(defun dired-find-w3m () (interactive)
  "In dired, visit (with find-w3m) the file named on this line."
  (find-w3m (file-name-sans-versions (dired-get-filename) t)))

;; (defun dired-find-planner () (interactive)
;;   "In dired, visit (with find-planner) the file named on this line."
;;   (find-planner (dired-get-filename 'localp)))
;; (defun dired-find-eimage () (interactive)
;;   "In dired, visit (with find-image) the file named on this line."
;;   (find-eimage (file-name-sans-versions (dired-get-filename) t)))
;;
;; (eval-after-load "dired"
;;   '(progn (define-key dired-mode-map "w" 'dired-find-w3m)
;;           (define-key dired-mode-map "W" 'woman-dired-find-file)
;;           ;; (define-key dired-mode-map "\M-p" 'dired-find-planner)
;;           ;; (define-key dired-mode-map "I" 'dired-find-eimage)
;;           ))

;; «wdired»  (to ".wdired")
;; (find-evardescr 'dired-load-hook)
;; (find-efile "wdired.el")
;; (find-es "emacs" "wdired")
(autoload 'wdired-change-to-wdired-mode "wdired")
(require 'dired)
(define-key dired-mode-map "r" 'wdired-change-to-wdired-mode)

;; (add-hook 'dired-load-hook
;;           '(lambda ()
;;              (define-key dired-mode-map "r" 'wdired-change-to-wdired-mode)
;;              (define-key dired-mode-map
;;                [menu-bar immediate wdired-change-to-wdired-mode]
;;                '("Edit File Names" . wdired-change-to-wdired-mode))))

(seen 1109)



;; «ee-isearch»  (to ".ee-isearch")
;; (find-es "emacs" "ee-isearch-regexp")
;; (find-es "emacs" "ee-isearch")
(defun ee-isearch (string &optional isregexp)
  (isearch-update-ring string isregexp)
  (isearch-mode t isregexp nil nil)
  (isearch-repeat-forward))
(defun ee-isearch-regexp (string) (ee-isearch string t))
(defun ee-isearch-re     (string) (ee-isearch string t))

;; «ee-to-protected»  (to ".ee-to-protected")
;; (defun ee-to-protected (anchor &rest rest)
;;   (interactive "sAnchor: ")
;;   (let ((beforejump (point)))
;;     (goto-char (point-min))
;;     (if (search-forward (format ee-anchor-format anchor) nil 'noerror)
;;        (ee-goto-rest rest)
;;         (goto-char beforejump)
;;         (error "Anchor not found"))))

;; (defalias 'to 'ee-to-protected)

;; «to-shadow»  (to ".to-shadow")
(defun to-shadow (&rest rest)
  (interactive "sAnchor: ")
  (apply 'find-anchor ee-shadow-file rest))

;; «find-fline-ov»  (to ".find-fline-ov")
;; Links to text files with ^H-underlining and overstriking
;; (find-efile "man.el" "defun Man-fontify-manpage")
(defun find-fline-ov (fname &rest pos-spec-list)
  (find-file (ee-substitute-in-file-name fname))
  (Man-fontify-manpage)
  (apply 'ee-goto-position pos-spec-list))





;;-------------------------------
;; «find-dict»  (to ".find-dict")
;; Never worked very well.
;; (find-elnode "Syntax Tables")
;; (find-elnode "Motion and Syntax")
;; (find-elnode "Syntax Table Functions")
;; (find-efile "emacs-lisp/lisp-mode.el" "defvar emacs-lisp-mode-syntax-table")
;; (describe-function 'modify-syntax-entry)
;; (find-elnode "Using Interactive")
;; (find-efile "calendar/cal-move.el" "(interactive (list (calendar-read-date")
;; (find-efile "calendar/calendar.el" "(defun calendar-read")
;;   cd /usr/share/emacs/21.2/lisp/
;;   grep '(interactive ' $(find * -name '*.el' | sort) | l -S
;;
(setq ee-dict-syntax-table
  (let ((table (make-syntax-table))
	(i))
    (setq i ?A)
    (while (< i ?Z)
      (modify-syntax-entry i "w   " table)
      (setq i (1+ i)))
    (setq i ?a)
    (while (< i ?z)
      (modify-syntax-entry i "w   " table)
      (setq i (1+ i)))
    (modify-syntax-entry ?- "_   " table)
    table))

(defun ee-dict-word-around-point () (interactive)
  (with-syntax-table ee-dict-syntax-table
    (message
     (let ((p1 (save-excursion (skip-syntax-backward "w_") (point)))
	   (p2 (save-excursion (skip-syntax-forward "w_") (point))))
       (buffer-substring p1 p2)))))

;; (find-man "dict")
;; (find-eev "eev-links.el" "find-progoutput")
;; (find-progoutput "dict -P- stand-up" 0)
;; (find-dict "stand-up")
;;
(defun find-dict (word)
  (interactive (let ((word (ee-dict-word-around-point)))
		 (list (read-string (if (equal word "") "Word: "
				      (format "Word: (default %s) " word))
				    word))))
  (find-progoutput (format "dict -P - %s" word) 0))

;; (global-set-key "\M-D" 'find-dict)




(seen 1204)


;;-------------------------------------------
;; «passwds-tcl-get»  (to ".passwds-tcl-get")
;; (find-anggfile ".passwds.tcl-")
;; (find-anggfile ".passwds.tcl")
;; (passwds-tcl-get "bitlbee")
(defun passwds-tcl-get (str)
  (find-sh0 (format "grep %s ~/.passwds.tcl | awk '{print $3}'" str)))

;; «eechannel-send-passwd»  (to ".eechannel-send-passwd")
(defun eechannel-send-passwd (machine)
  (eechannel-send nil (format "%s\n" (passwds-tcl-get machine))))



;;-------------------
;; «erc»  (to ".erc")
;; «find-erclibera»  (to ".find-erclibera")
;; (find-es "erc" "erc-ssl")
;; (find-es "emacs" "erc")
;; (find-es "emacs" "rcirc")

;; (find-angg ".emacs.erc")
(load       "~/.emacs.erc")

(defun find-erclibera ()
  (interactive)
  (require 'erc)
  (erc-ssl :server    "irc.libera.chat"
           :full-name "Eduardo Ochs"
           :password  (find-sh0 "~/.passwds.sh libera")
           :port      6697))




;;;;;
;;
;; «browse-url»  (to ".browse-url")
;;
;;;;;


;;;;;
;;
;; «brwl-and-friends»  (to ".brwl-and-friends")
;;
;;;;;

(defun eepsne (url &rest ignore)
  (interactive (browse-url-interactive-arg "psne "))
  (eev (format "psne '%s'" url)))

(defun eetmpwget (url &rest ignore)
  (interactive (browse-url-interactive-arg "cd /tmp; wget "))
  (eev (concat "cd /tmp\nwget " url)))

;; (brml "http://www.emacswiki.org/cgi-bin/wiki/PlannerModeQuickStart")
;; http://www.emacswiki.org/cgi-bin/wiki/PlannerModeQuickStart

;; «find-ie»  (to ".find-ie")
;; «brie»  (to ".brie")
;; (find-angg ".emacs")
;; (find-angg ".emacs" "brwl-and-friends")

(autoload 'browse-url-default-windows-browser "browse-url")

(defun find-ie (url &rest ignore)
  (interactive (browse-url-interactive-arg "URL: "))
  (browse-url-default-windows-browser url))

(defalias 'brie 'find-ie)

;; For W$:
;; (defalias 'brw  'find-ie)
;; (defalias 'find-w3m 'find-ie)

;; (my-def-browse-url-local-remote briel brie find-ie)

;; 2006jul14
;; «brmd»  (to ".brmd")
;; «brgvd»  (to ".brgvd")
;; find-pspage-gv find-pspage-xdvi
;; (find-rubymanualfile "")

;; ;; «find-firefox-bg»  (to ".find-firefox-bg")
;; (defun find-firefox-bg (url &optional rest)
;;   (interactive "sURL: ")
;;   (start-process "firefox" "*Messages*" "firefox" url)
;;   url)
;; 
;; (defun find-firefox (url &optional rest)
;;   (interactive "sURL: ")
;;   (start-process "firefox" "*Messages*" "firefox" url)
;;   url)


;; (find-eev "eev-browse-url.el")
;; (require 'eev-browse-url)







;;;;;
;;
;; «syntax-tables»  (to ".syntax-tables")
;;
;;;;;

;; This is because picture-mode-exit in Emacs21 was mutilating files
;; with glyph chars in the ranges 1..7, 11, 14..31, 128..159.

;; (find-es "emacs" "trailing-whitespace-bug")

(defun fix-syntax-table-low (sdescr &optional table) (interactive)
  (mapcar (lambda (i) (modify-syntax-entry i sdescr table))
	  '(1 2 3 4 5 6 7
	    11 12
	    14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31)))

(defun fix-syntax-table-high (sdescr &optional table) (interactive)
  (let ((i 128))
    (while (< i 160)
      (modify-syntax-entry i sdescr table)
      (setq i (1+ i)))))

(defun fix-syntax-table (sdescr &optional table) (interactive)
  (fix-syntax-table-low  sdescr table)
  (fix-syntax-table-high sdescr table))

(fix-syntax-table-low "w" (standard-syntax-table))
(fix-syntax-table-low "w" text-mode-syntax-table)
(fix-syntax-table-low "w" emacs-lisp-mode-syntax-table)

;; (fix-syntax-table "w" (standard-syntax-table))
;; (fix-syntax-table "w" text-mode-syntax-table)
;; (fix-syntax-table "w" emacs-lisp-mode-syntax-table)

;; (with-syntax-table (standard-syntax-table)      (describe-syntax))
;; (with-syntax-table text-mode-syntax-table       (describe-syntax))
;; (with-syntax-table emacs-lisp-mode-syntax-table (describe-syntax))




;; «noerr»  (to ".noerr")
;; (find-es "emacs" "ignoring_errors")
;; (find-efunction 'ignore-errors)
(defmacro noerr     (body) (list 'condition-case nil body '(error nil)))


;;;;;
;;;;; «debugging»
;;;;;

;; SAR: "show and run" - an ugly macro.
;; These two sexps will behave the same,
;;       (+ (* 2 3) (* 4 5))
;;   (SAR + (* 2 3) (* 4 5))
;; except that the second will do a `(message "(+ 6 20)")' before
;; executing `(+ 6 20)'.
;; (find-es "emacs" "SAR")
;;
(defmacro SAR (&rest rest)
  (insert (format "%S\n" rest))
  rest)

(defmacro SHOWCALL (head &rest rest)
  (let ((expandedrest (eval (cons 'list rest))))
    (message "%S" (cons head expandedrest))
    ))

;; (SAR + (+ 1 2) (+ 3 4))
;;     (+ (+ 1 2) (+ 3 4))
;; (SAR describe-function 'next-line)
;;     (describe-function 'next-line)
;; (switch-to-buffer "*Messages*")







;; Basic `code-c-d's
;; «code-c-d_e»  (to ".code-c-d_e")

;; Moved to: (find-eev "eev-code.el" "code-c-d-s")
;;
'(

(setq ee-emacs-lisp-directory
  (or (file-name-directory (locate-library "loadup.el"))
      (format "/usr/share/emacs/%d.%d/lisp/"
	      emacs-major-version emacs-minor-version)))

;; (find-fline ee-emacs-lisp-directory)
(code-c-d "e" ee-emacs-lisp-directory "emacs")
(code-c-d "el" ee-emacs-lisp-directory "elisp")
(code-c-d "eli" ee-emacs-lisp-directory "emacs-lisp-intro")

(setq ee-emacs-leim-directory
      (if (locate-library "leim-list.el")
	  (file-name-directory (locate-library "leim-list.el"))
	(format "/usr/share/emacs/%d.%d/leim/"
		emacs-major-version emacs-minor-version)))

(code-c-d "eleim" ee-emacs-leim-directory)
;; (find-eleimfile "")
;; (find-eleimfile "quail/")

)

(code-c-d "calc" (concat ee-emacs-lisp-directory "calc/") "calc")

;; (code-c-d-anchor "eevold"    "~/eev/")
;; (code-c-d-anchor "eevnew"    "~/eev-current/")
;; (code-c-d "eev"      "~/eev-current/" :anchor)

;; (code-c-d-old "eevslides" "~/eev-current/slides/" :gv)
(code-c-d "angg"      "~/" :anchor :grep)

;; «find-es»  (to ".find-es")
;; This is a fossil - from about 1996, I guess.
;; `find-es' adds a ".e" to its stem.
;;
;; See: (find-anggwget-links)
;;
(code-c-d  "es" "$ES/")
(defun find-es (file &rest rest)
  "A hyperlink function that points to anchor strings in e-script files."
  (apply 'find-anchor (ee-esfile (concat file ".e")) rest))

(code-c-d "dednat4" "~/dednat4/" :anchor)
(code-c-d "dn4"     "~/dednat4/" :anchor)
(code-c-d "dn4ex"   "~/dednat4/examples/" :anchor)
(code-c-d "vtutil4" "~/vtutil4/" :anchor)


(defun find-flua (fname &optional anchor)
  (find-anchor (ee-fluafile fname) anchor))
;; (defun find-miniforth (fname &optional anchor)
;;   (find-anchor (ee-miniforthfile fname) anchor))




;; (find-status "eev")
;; (find-vldifile "eev.list")
;; (find-fline "/usr/doc/eev/")
;; (find-fline "/etc/emacs/site-start.d/50eev.el")
;; (find-sitelispfile "eev/")
;; (add-to-list 'load-path "/usr/share/emacs/site-lisp/")
;;
;; (find-eevfile "debian/50eev.el")
;; (find-eevfile "")

;; (if (equal (getenv "TERM") "linux")
;;   (glyphs-set-string disptable-string-latin
;; 		     ?\^O 131 "31" ; small red square (instead of "*")
;; 		     ))



;; (find-node "(elisp)Handling Errors")
;; (condition-case nil <code that may contain errors>)



;; «tramp» (to ".tramp")
;; (find-es "emacs" "tramp")
;; (find-es "emacs" "tramp-from-git")
;; (find-elnode "Library Search")
;;(add-to-list 'load-path "/usr/src/tramp/lisp")
;;(require 'tramp)
;;(add-to-list 'Info-default-directory-list "/usr/src/tramp/texi/")
;; (find-angg ".zshrc" "ASROOT")

(setenv   "ASROOT" "/sudo:root@localhost:")
(code-c-d "asroot" "/sudo:root@localhost:")
;; (find-asrootfile "/var/log/")
;; (find-asrootfile "/var/log/" "auth.log")
;; (find-fline "/sudo::/")



;;;;;
;;
;; «remote-machines»  (to ".remote-machines")
;;
;;;;;

;; eev to some remote machines, using ange-ftp or other tricks:
;; (find-enode "Remote Files")

(defun eevpuc (s &optional e) (interactive "r")
  (eev "Scp $EEVTMPDIR/ee-puc.sh edrx@${SUCURI}:eev-0.94/ee.sh")
  (eev s e "$EEVTMPDIR/ee-puc.sh")
  "Wrote $EEVTMPDIR/ee-puc.sh and $EE; run `ee' to upload")

;; (eeb-define 'eevpuc-bounded 'eevpuc 'ee-delimiter-hash nil t t)

;; Old, probably broken
;; (code-c-d "twur" "/angg.twu.net:/")
;; (code-c-d "twu" "/angg.twu.net:/home2/edrx/")
(code-c-d "twu" "/anggtwu.net:")
(defun eevt (s e) (interactive "r")
  (eev s e (ee-twufile "bin/ee.sh")))

;; «tramp-twu»  (to ".tramp-twu")
;; (find-angg ".zshrc" "TWUS-and-TWUP")
;; (code-c-d "twu"  "/ftp:edrx@anggtwu.net:")
;; (code-c-d "twup" "/ftp:edrx@anggtwu.net:public_html/")
;; (code-c-d "twu"  "/scp:edrx@anggtwu.net:")
;; (code-c-d "twup" "/scp:edrx@anggtwu.net:public_html/")
(code-c-d "twu"  "/scp:edrx@anggtwu.net:/home/edrx/")
(code-c-d "twup" "/scp:edrx@anggtwu.net:/home/edrx/public_html/")
(code-c-d "twus" "/scp:edrx@anggtwu.net:/home/edrx/slow_html/")
;; (find-twufile "")
;; (find-twupfile "")
;; (find-twupfile "tmp/")
;; (find-twusfile "")

;; (getenv "MYPAGEDIR")
;; (getenv "MYPAGEURL")
;; (setenv "MYPAGEDIR" "/scp:edrx@anggtwu.net:public_html")
;; (setenv "MYPAGEURL"    "http://anggtwu.net")

;; «linode»  (to ".linode")
;; (find-angg ".zshrc" "Lins-and-Linp")
(defun eepitch-linode  () (interactive) (eepitch-comint "ssh edrx@linode" "ssh edrx@linode"))
(defun eepitch-linoder () (interactive) (eepitch-comint "ssh root@linode" "ssh root@linode"))
(code-c-d "linode"  "/scp:edrx@linode:/home/edrx/")
(code-c-d "linodep" "/scp:edrx@linode:/home/edrx/public_html/")
(code-c-d "linodes" "/scp:edrx@linode:/home/edrx/slow_html/")
(code-c-d "linode"  "/scp:edrx@linode:~/")
(code-c-d "linodep" "/scp:edrx@linode:~/public_html/")
(code-c-d "linodes" "/scp:edrx@linode:~/slow_html/")
(code-c-d "linp"    "/scp:edrx@linode:~/public_html/")
(code-c-d "lins"    "/scp:edrx@linode:~/slow_html/")
;; (find-linodefile "")



;; «upload-changes»  (to ".upload-changes")
(defun upload-changes () (interactive) (find-es "page" "upload-rsync"))

;; «ee-remove-prefix»  (to ".ee-remove-prefix")
;; Moved to: (find-eevfile "eev-elinks.el" "(defun ee-remove-prefix")
;; Test:     (ee-remove-prefix "/home/foo/" "/home/foo/bar")

(defun angg-url-of-this-file (&optional arg)
  (interactive "P")
  (let* ((anchor (if arg (eeb-string "«" "»")))
	 (suffix (if anchor (concat "#" anchor) ""))
	 (fname (ee-remove-prefix (ee-expand "~/")
				  (ee-expand (buffer-file-name))))
	 (url (concat "http://anggtwu.net/" fname ".html" suffix)))
    (kill-new url)
    (message url)))

(defun ee-dired-file-name ()
  (if (eq major-mode 'dired-mode)
      (file-name-sans-versions (dired-get-filename) t)))

(defun find-urls-for-this-file (&optional bfname)
  (interactive)
  (setq bfname (or bfname (ee-dired-file-name) buffer-file-name
		   default-directory))
  (let* ((myip (myip-as-string))
	 (stem-home  (ee-remove-prefix "/home/edrx/" bfname))
	 (stem-homeL (ee-remove-prefix "/home/edrx/TH/L/" bfname))
	 (stem-vw    (ee-remove-prefix "/var/www/" bfname)))
    (find-elinks-old
     (list ;; (list '(find-efunction 'find-urls-for-this-file))
           (if stem-home
	       (list (format "http://%s/L/%s"         myip stem-home)
		     (format "http://%s/L/%s.html"    myip stem-home)
		     (format "http://persephone/L/%s"      stem-home)
		     (format "http://persephone/L/%s.html" stem-home)
		     (format "http://anggtwu.net/%s"      stem-home)
		     (format "http://anggtwu.net/%s.html" stem-home)))
	   (if stem-homeL
	       (list (format "http://%s/L/%s"         myip stem-homeL)
		     (format "http://%s/L/%s.html"    myip stem-homeL)
		     (format "http://anggtwu.net/%s"      stem-homeL)
		     (format "http://anggtwu.net/%s.html" stem-homeL)))
	   (if stem-vw
	       (list (format "http://persephone/%s"      stem-vw)
		     (format "http://persephone/%s.html" stem-vw)
		     (format "http://%s/%s"         myip stem-vw)
		     (format "http://%s/%s.html"    myip stem-vw)))
	   bfname
	   ))))

(define-key eev-mode-map "\M-h\M-u" 'find-urls-for-this-file)

;; (defun ee-upload-this-scp-command ())



;; «upload-this»  (to ".upload-this")
;;
(defun ee-strip-prefix-and-suffix (prefix suffix str)
  (let* ((p1 (length prefix))
	 (p2 (- (length str) (length suffix)))
	 (prefix-ok (compare-strings str nil p1 prefix nil nil))
	 (suffix-ok (compare-strings str p2 nil suffix nil nil))
	 (middlestuff (substring str p1 p2)))
    (if (and prefix-ok suffix-ok) middlestuff)))

;; Old, probably broken
(defun upload-this () (interactive)
  (let ((fname-stem (ee-strip-prefix-and-suffix
		     (ee-expand "$HOME/") ""
		     buffer-file-name)))
    (save-buffer)
    (eev (format
	  "cat > ~/eev/ee-rmt.sh <<'---'
cd ~/public_html/; make -f TH/Makefile htmls
---
cd; anonftp angg.twu.net 'put %s public_html/%s' \\
  'put eev/ee-rmt.sh eev/ee.sh' 'quit'"
	  fname-stem fname-stem))
    (message "Do `ee' here and on twu to update http://angg.twu.net/%s.html"
	     fname-stem)))




;;
(defun TODO () (interactive) (find-fline "~/TODO"))
(defun tele () (interactive) (find-fline "~/AGENDA/telefones"))
;; (find-evariable 'completion-ignored-extensions)
;; (find-elnode "File Name Completion")
(defun psne-log () (interactive) (find-fline "~/.psne.log"))
(defun plog-log () (interactive) (find-fline "~/.plog"))



;; Links to sections of huge manpages and info nodes
(defun find-expcommand (str &rest rest)
  (interactive "sExpect command: ")
  (apply 'find-man "1 expect" "\nCOMMANDS"
	 (format "\n       %s" str) rest))

;; (find-es "netbsd" "netbsd-manpages")
;; (find-angg "bin/netbsdman")
;; (find-netbsdman "ktrace")
;; (find-man       "ktrace")
;;
(defun find-netbsdman (&rest rest)
  (let ((manual-program "netbsdman")) (apply 'find-man rest)))


(defun find-zshbuiltin (name &rest rest)
  (interactive "sZsh builtin: ")
  (apply 'find-zshnode "Shell Builtin Commands" (format "\n%s" name) rest))

(defun find-zshcomplex (name &rest rest)
  (interactive "sZsh complex command: ")
  (apply 'find-zshnode "Complex Commands" (format "\n%s" name) rest))

(defun find-tcshbuiltin (str &rest rest)
  (interactive "sTcsh builtin: ")
  (apply 'find-man "1 tcsh" "\n   Builtin commands"
         (format "\n       %s" str) rest))




;; «mkto»  (to ".mkto")
;; (find-es "emacs" "mkto")
;; Superseded by: (eek "M-h M-k  M-A  ;; eewrap-anchor")

;; (defun mkto () (interactive)
;;   (let (beg end) (end-of-line) (setq end (point))
;;        (beginning-of-line) (setq beg (point))
;;        (save-restriction
;;          (narrow-to-region beg end)
;;          (replace-regexp "^\\(.+ \\)«\\([!-~]+\\)»$"
;;                          "# «.\\2»\t(to \"\\2\")\n\\\&  (to \".\\2\")"))
;;        (beginning-of-line)))

(defun ee-replace-line (fun)
  (let* ((line (buffer-substring (ee-bol) (ee-eol)))
	 (new (funcall fun line)))
    (if new (progn (delete-region (ee-bol) (ee-eol))
		   (insert new)))
    (beginning-of-line)
    (forward-line 1)))

(defun ee-replace-line-2 (from-pat to-pat)
  (ee-replace-line
   `(lambda (str) (replace-regexp-in-string
		   ,from-pat ,to-pat
		   str 'fixedcase))))

(defun mkto () (interactive)
  (ee-replace-line-2 "^\\(.+ \\)<\\([!-~]+\\)>$"
		     (concat "\\1«.\\2»\t(to \"\\2\")\n"
			     "\\1«\\2»  (to \".\\2\")")))



(setq mkto-pattern     "^\\(.+ \\)«\\([!-~]+\\)»$")
(setq mkto-pattern     "^\\(.+ \\)<\\([!-~]+\\)>$")
(setq mkto-replacement "\\1«.\\2»\t(to \"\\2\")\n\\&  (to \".\\2\")")
(setq mkto-replacement "\\1«.\\2»\t(to \"\\2\")\n\\1«\\2»  (to \".\\2\")")

;; (find-es "emacs" "emacs-cvs-mkto-bug")
;; (setq mkto-pattern (string-to-multibyte mkto-pattern))

(defun mkto () (interactive)
  (ee-replace-line
   (lambda (str)
     (replace-regexp-in-string
      mkto-pattern mkto-replacement
      str
      'fixedcase))))

;; «mksec»  (to ".mksec")
;; (find-efunction 'mkto)
(defun mksec () (interactive)
  (ee-replace-line
   (lambda (str)
     (replace-regexp-in-string
      "^\\(.*\\)«\\([!-~]+\\)»\\(.*\\)$"
      " # «.\\2»\t(to \"\\2\")\n\\1«\\2»  (to \".\\2\")"
      str 'fixedcase))))



(seen 1943)



;;;;;
;;;;; «code-c-ds»  (to ".code-c-ds")
;;;;; A horde of "code-c-d"s, some new, some old.
;;;;;

; (find-angg "eev.el" "code-c-d-explan1")
; (find-angg "eev.el" "code-c-d-explan2")
;
; TeX:
;(code-c-d "texmfsrcgen" "/usr/share/texmf/source/generic/")
;(code-c-d "texmftexgen" "/usr/share/texmf/tex/generic/")
;(code-c-d "xypic" "/usr/share/texmf/source/generic/xypic/src/")
;(code-c-d "xy36" "/usr/src/xy-3.6/src/")
;(code-c-d "web2c" "/usr/src/teTeX-0.9/texk/web2c/")
;(code-c-d "knuth" "$SCTAN/systems/knuth/")
;(code-c-d "amslmath" "/usr/share/texmf-tetex/source/latex/amslatex/math/")
;(code-c-d "amslmath" "/usr/share/doc/texlive-doc/latex/amsmath/")
;; (code-c-d "plainsrc" "/usr/share/texmf-tetex/tex/plain/base/")
;; (code-c-d "lsrc"     "/usr/share/texmf-tetex/source/latex/")
;(code-c-d "lsrc" "/usr/share/texmf-texlive/tex/latex/")

;; (find-fline "/usr/local/texlive/2019/texmf-dist/tex/latex/" "base")
;; (find-fline "/usr/local/texlive/2019/texmf-dist/source/latex/" "base")
(code-c-d "lsrc" "/usr/local/texlive/2019/texmf-dist/tex/latex/")
(code-c-d "ldtx" "/usr/local/texlive/2019/texmf-dist/source/latex/")

(code-c-d "plainsrc" "/usr/share/texmf-texlive/tex/plain/base/")
;(code-c-d "mp" "/usr/lib/texmf/texmf/doc/metapost/")
;(code-c-d "pst" "$SCTAN/graphics/pstricks/")
;(code-c-d "pt" "/snarf/ftp/ftp.dcs.qmw.ac.uk/pub/tex/contrib/pt/")
;(code-c-d "amsl" "/usr/lib/texmf/doc/ams/amslatex/")
;(code-c-d "lsh" "/usr/lib/texmf/source/latex/lshort/")
;(code-c-d "lgui" "/usr/lib/texmf/source/latex/guide/")
;(code-c-d "xfig" "/usr/src/redhat/BUILD/xfig.3.1.4/")
;(code-c-d "xdvi" "/usr/src/redhat/BUILD/xdvi-21/")
;(code-c-d "th" "/dl/tex/texhax/")
;(code-c-d "lily" "/usr/src/lilypond-1.0.19.uu3/")
;(code-c-d "l" "~/LATEX/")
;(code-c-d "diagxy" "$usr_src/diagxy/")
(code-c-d  "diagxy" "~/usrc/diagxy/")
(code-xdvi "diagxy" "~/usrc/diaxydoc.dvi")
;
; PostScript:
;(code-c-d "gs5" "/usr/src/gs-5.10/")
;(code-c-d "gs" "/usr/src/gs-6.53/")
;(code-c-d "gv" "/usr/src/gv-3.5.8/")
;(code-c-d "gsshare" "/usr/share/gs/6.53/")
;(code-c-d "psfirstg" "/hda6/snarf/http/www.cs.indiana.edu/docproject/programming/postscript/")
;
; net / browsers:
;(code-c-d "wg" "/usr/src/wget-1.5.3/" "wget")
;(code-c-d "sn" "/dl/www/snarf-1.22/")
;(code-c-d "lynx" "/usr/src/lynx-2.8.3/")
;(code-c-d "grail" "/usr/src/grail-0.3/")
;(code-c-d "tcpd" "/dl/sniffer/tcpdump-3.3.1a2/")
;(code-c-d "A" "/usr/src/redhat/BUILD/WWW/Arena-0.3.24/")
;(code-c-d "sendm" "$RBU/sendmail-8.8.4/")
;(code-c-d "apa" "/usr/src/apache-1.3.0/")
;
; Emacs:
;(code-c-d "eev" "~/eev/")
;(code-c-d "eevnew" "~/eev-new/")
;(code-c-d "e" "/usr/share/emacs/20.5/lisp/" "emacs-e20")
;(code-c-d "e" "/usr/share/emacs/19.34/lisp/" "emacs-19/emacs")
;(code-c-d "el" "/usr/share/emacs/19.34/lisp/" "elisp")
;(code-c-d "eli" "/usr/src/emacs-lisp-intro-1.05/" "emacs-lisp-intro")
;(code-c-d "e20" "/usr/share/emacs/20.7/lisp/" "emacs-e20")
;(code-c-d "e20src" "/usr/src/emacs20-20.7/" "emacs-e20")
;(code-c-d "efaq" "http://www.lerner.co.il/emacs/" "emacs-faq")
(code-c-d "efaq" "$S/http/www.lerner.co.il/emacs/" "efaq")
;(code-c-d "w3el" "/usr/share/w3-el/" "w3")
;(code-c-d "w3c" "/home/root/AX/w3/")
;(code-c-d "texi" "/usr/src/texinfo-4.0/" "texinfo")
(code-c-d "sitelisp" "/usr/share/emacs/site-lisp/")
(code-c-d "sitelisp24" "/usr/share/emacs24/site-lisp/")
;(code-c-d "e21src" "/usr/src/emacs21-21.1/")
;(code-c-d "e21" "/usr/src/emacs21-21.1/")
;(code-c-d "e21l" "/usr/src/emacs21-21.1/lisp/")
;(code-c-d "xe" "/usr/lib/xemacs-21.1.10/lisp/" "xemacs-21.1.10/xemacs")
;(code-c-d "xel" "/usr/lib/xemacs-21.1.10/lisp/" "xemacs-21.1.10/lispref")
;(code-c-d "xei" "/usr/lib/xemacs-21.1.10/lisp/" "xemacs-21.1.10/internals")
;(code-c-d "xefaq" "/usr/lib/xemacs-21.1.10/lisp/" "xemacs-21.1.10/xemacs-faq")
(code-c-d "viper" (ee-efile "emulation/") "viper")
(code-c-d "erc" "~/usrc/erc-5.0/")
(code-c-d "rcirc" "~/usrc/rcirc/")
(code-c-d "emacscvs" "~/bigsrc/emacs/")
(code-c-d "ecvs" "~/bigsrc/emacs/")
(code-c-d "ecvssrc" "~/bigsrc/emacs/src/")
;(code-c-d "eetc" data-directory)

(seen 2030)

;
; Linux:
; «k22»  (to ".k22")
;(code-c-d "k" "/usr/src/linux-1.2.13/")
;(code-c-d "k2" "/usr/src/linux-2.0/")
;(code-c-d "k22" "/usr/src/linux-2.2/")
;(code-c-d "k24" "/usr/src/linux-2.4/")
(code-c-d "kpatches" "/usr/src/kernel-patches/")
;(code-c-d "k" "/usr/src/linux/")
;(code-c-d "tlk" "/usr/src/tlk/")
;(code-c-d "khg" "/dl/LDP/khg-0.6/")
;(code-c-d "shkpkg" "/usr/share/kernel-package/")
;
; (find-es "hardware" "find-k22configoption")
;(code-c-d-linux "k22" "/hdd7/tmp/kernel-source-2.2.20/")
' (code-c-d-linux "k24"    "~/bigsrc/kernel-source-2.4.26/")
' (code-c-d-linux "k24doc" "~/bigsrc/kernel-source-2.4.26/Documentation/")
;; (code-c-d-linux "k26" "~/bigsrc/kernel-source-2.6.8/")
;; (code-c-d "k26" "~/bigsrc/kernel-source-2.6.8/" :linux :grep)
' (code-c-d-linux "k26doc" "~/bigsrc/kernel-source-2.6.8/Documentation/")

;
; Hurd:
;(code-c-d "hurd" "/usr/src/hurd-20011016/" "hurd")
;(code-c-d "gnumach" "/usr/src/gnumach-20011013/")
;(code-c-d "oskmach" "/usr/src/oskit-mach/")
;(code-c-d "hurddebs" "$SDEBIAN/dists/sid/main/binary-hurd-i386/")
;(code-c-d "dcrossdoc" "/usr/doc/dpkg-cross/")
;(code-c-d "gvldi" "/gnu/var/lib/dpkg/info/")
;(code-c-d "HIG" "/usr/src/hurd-installation-guide/" "hurd-install-guide")
;(defun find-gnustatus (package &rest rest)
;  (apply 'find-Package "/gnu/var/lib/dpkg/status" package rest))
;(defun find-gnuavailable (package &rest rest)
;  (apply 'find-Package "/gnu/var/lib/dpkg/available" package rest))

;
; gcc / low-level things
;(code-c-d "xd" "/usr/src/xduel-2.14/")
(code-c-d "gcc" "/usr/lib/gcc/i486-linux-gnu/4.1.2/include/" "gcc-10")
;(code-c-d "ldso" "/usr/src/ld.so-1.9.11/")
;(code-c-d "libvfw" "/usr/src/libvforkwrap-0.1/")
;
; games:
;(code-c-d "mame" "/usr/src/xmame-0.30.1/")
;(code-c-d "mame356" "/usr/src/xmame-0.35b6.1/")
;(code-c-d "xast" "/usr/src/xaster-1.00/")
;(code-c-d "ste" "/usr/src/stella-0.7/")
;
; Tcl:
;(code-c-d "tcl" "/usr/src/tcl8.3-8.3.1/")
;(code-c-d "tcl7" "/usr/src/tcl7.6-7.6p2/")
;(code-c-d "cgitcl" "/usr/src/cgi.tcl-0.7/")
;(code-c-d "mta" "/usr/src/mktclapp-3.9/")
;(code-c-d "tkex" "/usr/share/doc/tk8.4/examples/")
;(code-c-d "exp" "/usr/src/expect5.31-5.31.2/" "expect")
;(code-c-d "plp" "/usr/src/plplot-4.99j/")
;(code-c-d "tuba" "/usr/src/tuba-2.5.b1/")
;(code-c-d "et" "/usr/src/et-80b2/")
;(code-c-d "sd" "/usr/src/scripdoc/")
;(code-c-d "wiscri" "~/wiki/scripts/")
;(code-c-d "wiscri" "~/WIKIS/tclscripts/")
;(code-c-d "swige" "/usr/doc/swig/examples/")
;(code-c-d "expman" "~/EXPECT/MAN/TXT/")
;(code-c-d "tclers" "/snarf/http/mini.net/cgi-bin/wikit/")
;
; Lua:
(code-c-d "flua" "~/LUA/flua-0.02/")
;; (code-c-d "miniforth" "~/miniforth/")
;(code-c-d "lua" "/usr/src/lua-4.0/" "~/lua-4.0/doc/lua")
(code-c-d "lua" "/usr/src/lua-4.0/" "lua")
;(code-c-d "lua3.2" "/usr/src/lua3.2-3.2/")
;(code-c-d "luall" "/usr/src/loadlib/")
;(code-c-d "tolua" "/usr/src/tolua/")
;(code-c-d "tklua" "/usr/src/tklua/")
(code-c-d "lua511" "~/usrc/lua-5.1.1/" :grep)
(code-c-d "lua512" "~/usrc/lua-5.1.2/" :grep)
(code-c-d "lua51"  "~/usrc/lua-5.1.2/" :grep)
(code-c-d "lua51"  "~/usrc/lua-5.1.5/" :grep :tags)
(code-c-d "lua51src" "~/usrc/lua-5.1.4/src/" :grep :anchor)
(code-c-d "compat51" "~/usrc/compat-5.1r4/")
;; (find-es "lpeg")
(code-c-d "lpeg" "~/usrc/lpeg-1.1.0/" :tags)
(code-c-d "lpeg" "/usr/share/doc/lua-lpeg-dev/")
;; (find-lpegfile "")
;; (find-lpegfile "")
;; (find-lpegw3m "lpeg.html")
;; (find-lpegw3m "lpeg.html#captures")
;; (find-lpegw3m "lpeg.html#cap-arg")
(code-c-d "luaftp" "$S/http/www.lua.org/ftp/")
(code-c-d "luaman" "/usr/share/doc/lua50-doc/manual/")
(code-c-d "luasocket" "~/usrc/luasocket-2.0.1/" :grep)
(code-c-d "lposix" "~/usrc/posix/" :grep)
;
; etc:
(code-c-d "iconipl" "~/usrc/ipl/" :grep)
;(code-c-d "icon" "/usr/src/icon-9.3.2/")
;(code-c-d "ipl" "/usr/src/icon/ipl/")
;(code-c-d "iproc" "/usr/src/icon/ipl/procs/")
;(code-c-d "bf" "/usr/src/bigforth/")
;(code-c-d "paysan" "/home/root/PAYSAN/")
;(code-c-d "gforth" "/usr/share/gforth/0.5.0/" "gforth")
;(code-c-d "gf"     "/usr/share/gforth/0.5.0/" "gforth")
;(code-c-d "zsh" "/usr/src/zsh-3.1.4/" "zsh")
;(code-c-d "zsh" "/usr/src/zsh-3.1.2/" "zsh")
;(code-c-d "tea" "/dl/teapot-0.9/")
;(code-c-d "txl" "/usr/src/TXL7.4/")
;(code-c-d "gimp" "/usr/src/gimp-1.0.0/")
;(code-c-d "repletc" "~/replace/etc/")
;(code-c-d "p5l" "/usr/lib/perl5/")
(code-c-d "pl5" "/usr/lib/perl5/")
;(code-c-d "pl5pod" "/usr/lib/perl5/5.004/pod/")
;(code-c-d "pl5lin" "/usr/lib/perl5/i386-linux/5.004/")
;(code-c-d "pl5src" "/usr/src/perl-5.004.04/")
;(code-c-d "CPAN" "$SCPAN/")
;(code-c-d "pl55i" "/usr/lib/perl5/5.005/i386-linux/")
;(code-c-d "ptut" "/snarf/http/agora.leeds.ac.uk/Perl/")
;(code-c-d "pg" "/usr/src/postgresql-6.3.2/")
;(code-c-d "g4" "/usr/share/gforth/0.4.0/" "gforth")
;(code-c-d "xf" "/usr/src/xfree86-3.3.2.2/")
;(code-c-d "glib" "/usr/src/glib1.1.12-1.1.12/")
;(code-c-d "gtk+" "/usr/src/gtk+1.1.12-1.1.12/")
(code-c-d "vldi" "/var/lib/dpkg/info/" :grep)
;(code-c-d "latte" "/usr/src/latte-1.1/")
;(code-c-d "php3" "/usr/src/php3-3.0.16/")
;(code-c-d "lsof" "/usr/src/lsof-4.37/")
;(code-c-d "fm" "$S/http/www.freshmeat.net/news/")
;(code-c-d "pf" "/usr/src/pforth-21/")
;(code-c-d "groff" "/usr/src/groff-1.11a/")
;(code-c-d "grof" "/usr/src/groff-1.11a/")
;(code-c-d "mimelite" "/usr/src/MIME-Lite-1.135/")
;(code-c-d "ts2" "/usr/src/ts2/")
;(code-c-d "ssh" "/usr/src/ssh-1.2.26/")
;(code-c-d "cf" "/usr/src/cfengine-1.4.12/" "cfengine")
;(code-c-d "octal" "/usr/src/octal-alpha/")
;(code-c-d "php3h" "/usr/doc/php3-doc/html/")
;(code-c-d "bsd8" "/hdd12/share/doc/en_US.ISO_8859-1/")
;(code-c-d "ldnav" "~/LD/NAVEGACAO/")
;(code-c-d "xc" "/usr/src/xfree86-1-3.3.6/build-tree/xc/")
;(code-c-d "isa" "/usr/src/Isabelle99-1/")
;(code-c-d "isalog" "/usr/src/Isabelle99-1/heaps/smlnj-110_x86-linux/log/")
;(code-c-d "shu" "/usr/src/shellutils-2.0/" "sh-utils")
;(code-c-d "pamh" "/usr/doc/libpam-doc/html/")
;(code-c-d "pams" "/usr/doc/libpam-doc/sgml/")
;(code-c-d "pamt" "/usr/doc/libpam-doc/txt/")
;(code-c-d "THL" "~/TH/L/")
;(code-c-d "ncurs" "/usr/src/ncurses-5.0/")
;(code-c-d "ncursdoc" "/usr/doc/libncurses5-dev/")
;(code-c-d "gst" "~/usrc/smalltalk-1.95.3/" "~/usrc/smalltalk-1.95.3/doc/gst")
;
(code-c-d "gawk" "/usr/share/doc/gawk/" "gawk")

;(code-c-d "planner" "/usr/share/emacs/site-lisp/planner-el/")
;(code-c-d "emacswiki" "/usr/share/emacs/site-lisp/emacs-wiki/")

(code-c-d "htet" "/usr/share/doc/HOWTO/en-txt/")
(code-c-d "rfc" "$S/http/www.ietf.org/rfc/")




;;;  _                
;;; | |   _   _  __ _ 
;;; | |  | | | |/ _` |
;;; | |__| |_| | (_| |
;;; |_____\__,_|\__,_|
;;;                   

;; For the lua manual
;; «lua-manual»  (to ".lua-manual")
;; «find-lua51manual» (to ".find-lua51manual")
;; «find-lua52manual» (to ".find-lua52manual")
;; «find-lua53manual» (to ".find-lua53manual")
;; (find-es "lua5" "lua5.2-doc")
;; (find-es "lua5" "lua5.3-doc")
;; (find-es "lua5" "lua5.4-doc")
;; (find-fline "/usr/share/doc/lua5.1-doc/doc/" "manual.html")
;; (find-fline "/usr/share/doc/lua5.2-doc/"     "manual.html")
;; (find-lua51manual "#pdf-select")
;; (find-lua52manual "#pdf-select")
;; (find-lua53manual "#pdf-select")
;; (find-lua54manual "#pdf-select")
;; (find-lpegmanual "#f-match")
;; (find-lpegremanual)
;; (find-lpegremanual "#basic")
;; http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html#cap-g
;; file:///usr/share/doc/lua-lpeg-dev/lpeg.html#cap-g

;; See: (find-eev "eev-tlinks.el" "code-brappend")
(code-brappend "lua51manual"  "file:///usr/share/doc/lua5.1-doc/doc/manual.html")
(code-brappend "lua52manual"  "file:///usr/share/doc/lua5.2-doc/manual.html")
(code-brappend "lua53manual"  "https://www.lua.org/manual/5.3/manual.html" 'brgl)
(code-brappend "lua54manual"  "https://www.lua.org/manual/5.4/manual.html" 'brgl)
(code-brappend "lpegmanual"   "http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html" 'brgl)
(code-brappend "lpegmanual"   "file:///usr/share/doc/lua-lpeg-dev/lpeg.html")
(code-brappend "lpegremanual" "file:///usr/share/doc/lua-lpeg-dev/re.html")

(defun find-pilw3m (&optional anchor &rest rest)
  (interactive)
  (brg (format "https://www.lua.org/pil/%s" (or anchor ""))))

;; «ee-lua-set-init-file»  (to ".ee-lua-set-init-file")
;; See: (find-lua51manual "#6" "LUA_INIT")
;;      (find-lua52manual "#7" "LUA_INIT")
;;      (find-lua53manual "#7" "LUA_INIT")
;;      (find-lua54manual "#7" "LUA_INIT")
;;      (find-angg "LUA/lua50init.lua")
;;      (find-es "lua5" "lua-init-from-emacs")
;; Tests: (ee-lua-set-init-file nil)
;;        (ee-lua-set-init-file "~/foo")
;;        (ee-lua-set-init-file t)
;;
(defun ee-lua-set-init-file (fname)
  "Set the environment variable $LUA_INIT according to FNAME.
If FNAME is nil, unset LUA_INIT, i.e., remove it from the environment.
If FNAME is, say, $HOME/foo/bar.lua, then use ee-expand to convert
that to /home/edrx/foo/bar.lua, then set LUA_INIT to @/home/edrx/foo/bar.lua.
If FNAME is t then pretend that it was ~/LUA/lua50init.lua."
  (interactive (list t))
  (if (eq fname nil)
      (setenv "LUA_INIT" nil)
    (if (eq fname t)
	(setq fname "~/LUA/lua50init.lua"))
    (setenv "LUA_INIT" (concat "@" (ee-expand fname)))))

;; «lpegrex»  (to ".lpegrex")
;; (find-es "lpeg" "lpegrex")
(code-pdf-page "lpegrex" "~/tmp/lpegrex.pdf")
(code-pdf-text "lpegrex" "~/tmp/lpegrex.pdf")
(code-c-d      "lpegrex" "~/usrc/lpegrex/")
;;
;; (find-es "lpeg" "lpeglabel")
(code-pdf-page "lpeglabel" "~/tmp/lpeglabel.pdf")
(code-pdf-text "lpeglabel" "~/tmp/lpeglabel.pdf")
(code-c-d      "lpeglabel" "~/usrc/lpeglabel/")




;;;  _                        _               _      _       
;;; | |   _   _  __ _    ___ | |__  ___  ___ | | ___| |_ ___ 
;;; | |  | | | |/ _` |  / _ \| '_ \/ __|/ _ \| |/ _ \ __/ _ \
;;; | |__| |_| | (_| | | (_) | |_) \__ \ (_) | |  __/ ||  __/
;;; |_____\__,_|\__,_|  \___/|_.__/|___/\___/|_|\___|\__\___|
;;;                                                          

;; «lua-5.2»  (to ".lua-5.2")
;; (find-es "lua5" "install-5.2")
(code-c-d "lua52" "~/usrc/lua-5.2.0/")
;; (find-efunction 'eepitch-lua51)
;; (find-angg ".emacs" "luamanual")
;; (code-c-d "lua51manual" (ee-lua51file "doc/manual.html"))
;; (find-lua51manualw3m "")

;; «lua5.2-debian» (to ".lua5.2-debian")
;; (find-es "lua5" "lua5.2-debian")
;; (code-c-d "lua52manual" (ee-lua52file "doc/manual.html"))
;; (code-c-d "lua52manual" "/usr/share/doc/lua5.2-doc/manual.html")
;; (find-lua52manualw3m "")
;; (find-lua52manualw3m "#pdf-bit32")
;; (find-lua52manualw3m "#pdf-bit")
;; (find-lua52manualw3m "#3.2" "_ENV")
;; (find-lua52w3m "doc/readme.html")

;; «luamanual»  (to ".luamanual")
(code-c-d "luamanual" "/usr/share/doc/lua50-doc/manual/manual.html")
(if (file-exists-p (ee-luafile "doc/manual2.html"))
    (code-c-d "luamanual" (ee-luafile "doc/manual2.html"))
  )
;; (find-luamanualw3m "")
;; (find-luamanualw3m "#pm")
;; (find-luamanualw3m "#pdf-string.len")

;; «luamanual-51»  (to ".luamanual-51")
;; (find-lua51file "doc/")
(code-c-d "luamanual" (ee-lua51file "doc/manual.html"))

;; (defun find-luamanualw3m+ (&optional tag &rest rest)
;;   (interactive (list (read-string "Section (anchor) of the Lua manual: "
;;                                   (ee-stuff-around-point "0-9A-Za-z_.:"))))
;;   (apply 'find-luamanualw3m
;;          (if (equal tag "") "" (concat "#" tag))
;;          rest))

;; (ee-luamanual-url)
;; (ee-luamanual-url "")
;; (ee-luamanual-url "3.14")
(defun ee-luamanual-url (&optional tag)
  (if (equal tag "") (setq tag nil))
  (format "file://%s%s" ee-luamanualdir (if tag (concat "#" tag) "")))

(defun find-luamanualw3m+ (&optional tag &rest rest)
  (interactive (list (read-string "Section (anchor) of the Lua manual: "
				  (ee-stuff-around-point "0-9A-Za-z_.:"))))
  (apply 'find-w3m (ee-luamanual-url tag) rest))

;; «find-luamanual-ff»  (to ".find-luamanual-ff")
;; (find-luamanual-ff "3.14")
(defun find-luamanual-ff (&optional tag)
  (interactive (list (read-string "Section (anchor) of the Lua manual: "
				  (ee-stuff-around-point "0-9A-Za-z_.:"))))
  (find-firefox-bg (ee-luamanual-url tag)))

;; (find-esetkey-links (kbd "M-h M-l") 'find-luamanualw3m+)
;; (find-esetkey-links (kbd "M-h M-L") 'find-luamanual-ff)
' (define-key eev-mode-map "\M-h\M-l" 'find-luamanualw3m+)
' (define-key eev-mode-map "\M-h\M-L" 'find-luamanual-ff)


;; «lua50»  (to ".lua50")
;; (find-es "lua5" "install-5.0.2")
(code-c-d "lua50"       "~/usrc/lua-5.0.3/")
(code-c-d "lua50manual" (ee-lua50file "doc/manual.html"))
(defun eepitch-lua50 () (interactive) (eepitch-comint "lua50" "lua50"))
;; (find-lua50file "")
;; (find-lua50w3m "doc/manual.html")
;; (find-lua50w3m "doc/manual.html#vararg")
;; (find-lua50manualw3m "")
;; (find-lua50manualw3m "#vararg" "arg={2, 3; n=2}")

(code-c-d "lua40"       "~/usrc/lua-4.0.1/")
(code-c-d "lua40manual" (ee-lua40file "doc/manual.html"))
(defun eepitch-lua40 () (interactive) (eepitch-comint "lua40" "lua40"))

;; (code-ps "lua50" "$S/http/www.lua.org/ftp/refman-5.0.ps.gz")
(defun find-lua50ref (&rest rest) (interactive)
  (apply 'find-anchor "~/LUA/lua50ref.e" rest))
(defun to-luaref (&rest rest) (interactive)
  (apply 'find-lua50ref rest))
;;
;; (find-lua50ref "For Statement")


(defun foo-lua-section () (interactive)
  (beginning-of-line)
  (assert (looking-at "\\([0-9.]+\\) - \\(.+\\)"))
  (insert (format "*%s*\n*%s*\n" (match-string 1) (match-string 2)))
  (next-line))

(defun foo-lua-region (s e) (interactive "r")
  (let ((str (buffer-substring s e)))
    (beginning-of-line)
    (insert (format "*%s*\n" str))
    (forward-line 1)))

(defun tp-make-w3m-faces () (interactive)
  (make-face           'w3m-anchor-face)
  (set-face-foreground 'w3m-anchor-face "cyan")
  (make-face           'w3m-bold-face)
  (set-face-bold-p     'w3m-bold-face t)
  (make-face           'w3m-header-line-location-content-face)
  (set-face-foreground 'w3m-header-line-location-content-face "LightGoldenrod")
  (set-face-background 'w3m-header-line-location-content-face "Gray20")
  (make-face           'w3m-header-line-location-title-face)
  (set-face-foreground 'w3m-header-line-location-title-face "cyan")
  (set-face-background 'w3m-header-line-location-title-face "Gray20")
  (make-face           'w3m-anchor-face)
  (set-face-foreground 'w3m-anchor-face "cyan"))









(seen 2266)

;; (defun find-texbookpage (n &rest comments)
;;   (find-dvipage "~/usrc/texbook/texbook.dvi" n))

;; «papers»  (to ".papers")
;; (find-angg ".emacs.papers")

;; (find-es "math" "SGA1" "sga1-corrected")
;; (find-sga1page 10)
(code-xdvi "sga1" "~/tmp/sga1-corrected.dvi")



;; «icon»  (to ".icon")
;; (find-angg "ICON/tron.icn")
;; (find-es "icon" "tron.icn")
(code-c-d "ipl" "/usr/lib/icon-ipl/")

;; «iconbook»  (to ".iconbook")
;; Griswold, Grisworld: "The Icon Programming Language, Third Edition"
;;   http://www.cs.arizona.edu/icon/books.htm
;;   http://www.cs.arizona.edu/icon/lb3.htm
;;   http://www.cs.arizona.edu/icon/ftp/doc/lb1up.pdf
(code-xpdf      "iconbook" "$S/http/www.cs.arizona.edu/icon/ftp/doc/lb1up.pdf")
(code-pdftotext "iconbook" "$S/http/www.cs.arizona.edu/icon/ftp/doc/lb1up.pdf")
;; (find-iconbookpage         5  "Contents")
;; (find-iconbooktext          "\nContents")
;; (find-iconbookpage (+ 22 143) "An Overview of Graphics")
;; (find-iconbooktext     "\n     An Overview of Graphics")
;; (find-iconbookpage (+ 22 273) "Language Reference Manual")
;; (find-iconbooktext          "\nLanguage Reference Manual")
;; (find-iconbookpage (+ 22 373) "Index")
;; (find-iconbooktext "\f         Index")

;; «icongrbook»  (to ".icongrbook")
;; Griswold, Jeffery, Townsend: "Graphics Programming in Icon"
;;   http://www.cs.arizona.edu/icon/books.htm
;;   http://www.cs.arizona.edu/icon/gb/index.htm
;;   http://www.cs.arizona.edu/icon/ftp/doc/gb1up.pdf
(code-xpdf "icongrbook" "$S/http/www.cs.arizona.edu/icon/ftp/doc/gb1up.pdf")
;; (find-icongrbookpage         5  "Contents")
;; (find-icongrbookpage (+ 24 495) "Index")
;; (find-icongrbookpage (+ 24 183) "Events")
;; (find-iconbooktext)

;; Griswold and Griswold: "The Implementation of the Icon Programming Language"
;; http://www.cs.arizona.edu/icon/ftp/doc/ib1up.pdf
(code-xpdf "iconimp" "$S/http/www.cs.arizona.edu/icon/ftp/doc/ib1up.pdf")
;; (find-iconimppage        3  "Contents")
;; (find-iconimppage (+ 6 329) "Index")

;; Alan D. Corré: "Icon Programming for Humanists"
;; http://www2.cs.uidaho.edu/~jeffery/icon/humanists/humanist.pdf
(code-xpdf      "iconhum" "$S/http/www2.cs.uidaho.edu/~jeffery/icon/humanists/humanist.pdf")
(code-pdftotext "iconhum" "$S/http/www2.cs.uidaho.edu/~jeffery/icon/humanists/humanist.pdf")
;; (find-iconhumpage         9  "Contents")
;; (find-iconhumpage (+ 14 123) "Index")
;; (find-iconhumtext "")

;; Thomas W. Christopher: "Icon Programming Language Handbook"
;; http://www.tools-of-computing.com/tc/CS/iconprog.pdf
(code-xpdf      "iconhandbook" "$S/http/www.tools-of-computing.com/tc/CS/iconprog.pdf")
(code-pdftotext "iconhandbook" "$S/http/www.tools-of-computing.com/tc/CS/iconprog.pdf")
;; (find-iconhandbookpage        5  "Contents")
;; (find-iconhandbookpage       11  "List of Figures")
;; (find-iconhandbookpage       13  "List of Tables")
;; (find-iconhandbookpage (+ 0  35) "Generators")
;; (find-iconhandbookpage (+ 0 151) "Windows and Graphics")
;; (find-iconhandbooktext "")




;; «tclbook»  (to ".tclbook")
;; (find-es "tcl" "tclbook")
;;http://web.archive.org/web/*/http://www.cica.indiana.edu/cica/faq/tcl/tcl.html
;; http://wwwcs.upb.de/cs/ag-szwillus/lehre/ws96_97/bss/tcltk.html
;; http://wwwcs.upb.de/cs/ag-szwillus/lehre/ws96_97/bss/book/p1.ps.gz
;; http://wwwcs.upb.de/cs/ag-szwillus/lehre/ws96_97/bss/book/p2.ps.gz
;; http://wwwcs.upb.de/cs/ag-szwillus/lehre/ws96_97/bss/book/p3.ps.gz
;; http://wwwcs.upb.de/cs/ag-szwillus/lehre/ws96_97/bss/book/p4.ps.gz
(code-c-d "tclbook"
	  "$S/http/wwwcs.upb.de/cs/ag-szwillus/lehre/ws96_97/bss/book/")
;; (code-ps  "tclbook1" (ee-tclbookfile "p1.ps.gz"))
;; (code-ps  "tclbook2" (ee-tclbookfile "p2.ps.gz"))
;; (code-ps  "tclbook3" (ee-tclbookfile "p3.ps.gz"))
;; (code-ps  "tclbook4" (ee-tclbookfile "p4.ps.gz"))
;; (find-tclbook1page 1)
;; (find-tclbook2page 1)
;; (find-tclbook3page 1)
;; (find-tclbook4page 1)

(defun find-tclbookfiletext (file &rest rest)
  (apply 'find-sh (format "zcat %s | pstotext" (ee-tclbookfile file)) rest))
(defun find-tclbook1text (&rest rest)
  (interactive) (apply 'find-tclbookfiletext "p1.ps.gz" rest))
(defun find-tclbook2text (&rest rest)
  (interactive) (apply 'find-tclbookfiletext "p2.ps.gz" rest))
(defun find-tclbook3text (&rest rest)
  (interactive) (apply 'find-tclbookfiletext "p3.ps.gz" rest))
(defun find-tclbook4text (&rest rest)
  (interactive) (apply 'find-tclbookfiletext "p4.ps.gz" rest))
;; (find-tclbook1text)
;; (find-tclbook2text)
;; (find-tclbook3text)
;; (find-tclbook4text)

;; http://hegel.ittc.ku.edu/topics/tcltk/book.examples
;; http://wwwcs.upb.de/cs/ag-szwillus/lehre/ws96_97/bss/book/examples.gz


;; «find-iconbooktext»  (to ".find-iconbooktext")
;; http://www.cs.arizona.edu/icon/ftp/doc/lb1up.pdf
;; (find-fline "$S/http/www.cs.arizona.edu/icon/ftp/doc/")
(code-pdf-page "iconbook" "$S/http/www.cs.arizona.edu/icon/ftp/doc/lb1up.pdf")
(code-pdf-text "iconbook" "$S/http/www.cs.arizona.edu/icon/ftp/doc/lb1up.pdf" 22)
;; (find-iconbookpage)
;; (find-iconbooktext)
;; (find-iconbookpage (+ 22 378) "Event(), 155-156")
;; (find-iconbooktext (+ 22 378) "Event(), 155-156")
;; (find-iconbookpage (+ 22 155) "EVENTS")
;; (find-iconbooktext (+ 22 155) "EVENTS")
;; (find-iconbookpage (+ 22 156) "case Event() of")
;; (find-iconbooktext (+ 22 156) "case Event() of")
;; (find-iconbookpage (+ 22 203) "queens")
;; (find-iconbooktext (+ 22 203) "queens")



;; (defun find-hurdPackage (&rest rest)
;;   (apply 'find-Package "$SSIDMB/Packages" rest))
;; (defun find-hurdalphaPackage (&rest rest)
;;   (apply 'find-Package "$SALPHASIDMB/Packages" rest))


(seen 2583)


;; (find-efile "jka-compr.el" "gzip")
;; (find-efile "jka-compr.el" "defun jka-compr-install")
;; (find-efile "jka-compr.el" "defun jka-compr-uninstall")
;; (find-efile "jka-compr.el")
(load-library "jka-compr")
(if (fboundp 'auto-compression-mode)	; needed on Emacs21
    (auto-compression-mode 1))

;; How do I tell jka-compr that `.dz' files (for dict) are in reality `.gz's?
;; (setq auto-mode-alist (cons '("\\.dz$" nil jka-compr) auto-mode-alist))

;; (find-fline "/usr/share/dictd/jargon.dict.dz")

;; (describe-variable 'auto-mode-alist)
;; (describe-variable 'jka-compr-compression-info-list)
;; (find-efile "jka-compr.el")


;; «gnuserv»  (to ".gnuserv")
;; (find-es "emacs" "gnuserv")
;; (find-efunctiondescr 'server-start)
;; (gnuserv-start)

' (if (fboundp 'gnuserv-start)
      (if (equal (getenv "GNUCLIENT") "no") nil
        (gnuserv-start)))


;; «info-path»  (to ".info-path")
;; (describe-variable 'Info-additional-directory-list)
;; (describe-variable 'Info-directory-list)
;; (find-evariable 'Info-additional-directory-list)
;; (find-evariable 'Info-directory-list)
;; (setq Info-additional-directory-list '("~/info"))
;; mkdir ~/info/; cp -v ~/tmp/lua-4.0/doc/lua.info* ~/info/
;; (find-fline "~/info/")
;; (find-node "(lua)Top")
;;
(if (not (boundp 'Info-additional-directory-list))
    (setq Info-additional-directory-list nil))

(add-to-list 'Info-additional-directory-list "~/info")
;; (add-to-list 'Info-additional-directory-list "~/eev-current/doc")
;; (find-node "(eev)Top")

;; (setq Info-additional-directory-list
;;       (append (if (boundp 'Info-additional-directory-list)
;; 		  Info-additional-directory-list)
;; 	      '("~/info")))

;; Info mode doesn't like having in its path dirs that don't exist
(or (file-exists-p "~/info") (make-directory "~/info"))
' (or (file-exists-p  "~/eev-current/doc")
      (make-directory "~/eev-current/doc" "-p"))




;; (find-elnode "Defining Functions" "Function: defalias")
;; (find-efunctiondescr 'defalias)
;; (find-es "emacs" "indented-text-mode")
;; (defalias 'indented-text-mode 'paragraph-indent-text-mode)
;; (find-efaqnode "Turning on syntax highlighting")
(defalias 'indented-text-mode 'text-mode)
(defalias 'flm 'font-lock-mode)
(defalias 'spm 'show-paren-mode)

;; (add-hook 'awk-mode-hook        'turn-on-font-lock)
;; (add-hook 'c-mode-hook          'turn-on-font-lock)
;; (add-hook 'change-log-mode-hook 'turn-on-font-lock)
;; (add-hook 'dired-mode-hook      'turn-on-font-lock)
;; (add-hook 'emacs-lisp-mode-hook 'turn-on-font-lock)
;; (add-hook 'generic-mode         'turn-on-font-lock)
;; ;; (add-hook 'lua-mode          'turn-on-font-lock)   ;; hook doesn't exist?
;; ;; (add-hook 'perl-mode         'turn-on-font-lock)   ;; hook doesn't exist?
;; (remove-hook 'ruby-mode-hook    'turn-on-font-lock)
;; (add-hook 'ruby-mode-hook       'turn-on-font-lock 'append)
;; (add-hook 'sh-mode-hook         'turn-on-font-lock)
;; (add-hook 'tcl-mode-hook        'turn-on-font-lock)
;; (add-hook 'texinfo-mode-hook    'turn-on-font-lock)
;; 
;; (add-hook 'makefile-mode-hook   'turn-on-font-lock)



;;;;;
;;
;; «key_bindings»  (to ".key_bindings")
;;
;;;;;
;
; (find-enode "Rebinding")
; (find-elnode "Key Binding Commands")
; (find-elnode "Changing Key Bindings")
; (find-elnode "Changing Key Bindings" "Function: define-key")
; (find-elnode "Translating Input")
; (find-elnode "Translating Input" "Variable: function-key-map")
; (find-elnode "Character Type")
; (find-elnode "Terminal-Specific")
; (find-efile "term/")
; (find-efile "term/vt220.el")
; (find-efile "term/internal.el" "function-key-map")
; (describe-variable 'function-key-map)
; (describe-key "\e[")
; (describe-key "\e[7")
; (describe-key "\e[7^")
; (describe-key [C-home])
; (define-key function-key-map "\e[7^" [C-home])
; (define-key function-key-map [C-home] "\e[7^")
; ^ Not working yet.
; 2000oct26: [f6] now toggles picture mode instead of only entering it.
; (find-etag "picture-mode")

;; (require 'picture)
;; (find-efunction 'picture-mode-exit)
;; (find-efunction 'delete-trailing-whitespace)
;;
(defun toggle-picture-mode ()
  (interactive)
  (if (eq major-mode 'picture-mode)
      (picture-mode-exit)
    (picture-mode)))

;(put 'eval-expression 'disabled nil)	; Emacs' most useful command (C-x C-e)

;; «ibuffer»  (to ".ibuffer")
;; (find-efunctiondescr 'ibuffer)
;; (find-efunction      'ibuffer)
;; (find-efunctiondescr 'ibuffer-mode)
;; (find-efunctiondescr 'ibuffer-mode "Sorting commands:")
;; (find-efunction      'ibuffer-mode)
;; (find-hfunction      'ibuffer-mode)
(if (locate-library     "ibuffer")
    (global-set-key [f1] 'ibuffer)
  (global-set-key   [f1] 'buffer-menu))

(setq ibuffer-default-sorting-mode 'major-mode)

;; (find-enode "Basic Keyboard Macro")
;; (find-enode "Basic Keyboard Macro" "<F3>")
;; (keymap-unset eev-mode-map "<f3>" 'remove)

;; (global-set-key [f4] 'redraw-display)

;; (find-enode "Keyboard Macros")
;; (find-enode "Basic Keyboard Macro" "C-x (")
;; (find-esetkey-links (kbd "<f5>") 'call-last-kbd-macro)
(global-set-key        (kbd "<f5>") 'call-last-kbd-macro)

;(global-set-key [f6] 'picture-mode)
(global-set-key [f6] 'toggle-picture-mode)
(global-set-key "\e[1~" 'beginning-of-line)
(global-set-key "\e[4~" 'end-of-line)
(global-set-key "\e[2~" 'overwrite-mode)
(global-set-key "\M-o" 'other-window)
(global-set-key "\M-O" 'other-frame)
(global-set-key "\M-+" 'enlarge-window)
(global-set-key "\M-_" 'shrink-window)
; (find-enode "Non-Window Terminals")
;(defun shrink-window1 () (interactive) (enlarge-window -1))
;	shift	alt	keycode  12 = Meta_underscore
;	shift	alt	keycode  13 = Meta_plus

;(global-set-key "\M->" 'end-of-buffer)
;(global-set-key "\M-<" 'beginning-of-buffer)

; Some gdbk-ish keys that are convenient in source buffers
(global-set-key "\M-B" 'gud-break)
(global-set-key "\M-T" 'gud-tbreak)

; «C-x-spc»  (to ".C-x-spc")
(global-set-key "\C-x " 'set-mark-command) ; for buggy "expect"s or "screen"s

(global-set-key [insertchar] 'overwrite-mode) ; for BSDs
(global-set-key [delete] 'delete-char)	; for X; do I still need this?




;; ;; «kd»  (to ".kd")
;; (defun kd (key)
;;   "Prints key and binding in a format suitable for quick refs"
;;   (interactive "kCommand: ")
;;   (princ (format "%s\t-- %s\n" (key-description key) (key-binding key))
;;          (current-buffer)))

;; «dkey»  (to ".dkey")
(defun dkey (key)
  "Execute a key sequence with debugging turned on"
  (interactive "kKey sequence: ")
  (debug)
  (call-interactively (key-binding key)))

;; (define-key global-map "\M-g" 'kd)
;; (define-key global-map "\M-g" 'dkey)


;; «wrap»  (to ".wrap")
;; (find-esetkey-links (kbd "s-w") 'wrap)
;; (global-set-key     (kbd "s-w") 'wrap)
;;
(defun wrap (p) (interactive "P") "Toggle truncate-lines"
  (if p (setq truncate-lines (eq p 0))
    (setq truncate-lines (not truncate-lines))))

;; (setq truncate-partial-width-windows t)
;; (setq truncate-partial-width-windows nil)
;; https://www.emacswiki.org/emacs/TruncateLines



;; «fooi»  (to ".fooi")
;; (find-es "emacs" "query-replace")
;; TODO: use isearch instead of query-replace.
;;
(defun fooi (&rest rest)
  "Narrow to region then run query-replace on each of the pairs in REST."
  ;; (setq rest (straighten rest))
  (save-excursion
    (save-restriction
      (narrow-to-region (point) (mark))
      (while rest
	(goto-char (point-min))
	(query-replace (car rest) (car (cdr rest)))
;	(query-replace-regexp (regexp-quote (car rest)) (car (cdr rest)))
	(setq rest (cdr (cdr rest)))))))

;; «fooi-re»  (to ".fooi-re")
;; (find-es "emacs" "regexp-syntax")
;;
(defun fooi-re (&rest rest)
  "Narrow to region then run query-replace-regexp on each of the pairs in REST."
  ;; (setq rest (straighten rest))
  (save-excursion
    (save-restriction
      (narrow-to-region (point) (mark))
      (while rest
	(goto-char (point-min))
;	(query-replace (car rest) (car (cdr rest)))
	(query-replace-regexp (car rest) (car (cdr rest)))
	(setq rest (cdr (cdr rest)))))))

;; «fooi-t»  (to ".fooi-t")
;; For templates
;;
(defun fooi-t (&rest pairs) (interactive)
  (apply 'fooi (append pairs '("\\" "\\\\" "\"" "\\\""
			       "\n(" "\n\\(" "\n[" "\n\\["))))

;; «fooi-a» (to ".fooi-a")
;; For audios
;;
(defun fooi-a (&rest pairs) (interactive)
  (apply 'fooi-re (append pairs '("\")" "" "\" \"" " "
				  ";; (find-[-A-Za-z0-9]+ +\"" ""))))


;; «fooi-fb» (to ".fooi-fb")
;; For things copied from FB and other sites with cut & paste
;;
(defun fooi-fb () (interactive)
  (fooi "" "'" "" "\"" "" "\"" "" " - " "" " - "))




;; «ascstr»  (to ".ascstr")
;;
;; (defun ascstr (i lasti)
;;   (while (<= i lasti)
;;     (princ (format "%c" i) (current-buffer))
;;     (setq i (+ i 1))))
(defun ascstr (i lasti)
  (while (<= i lasti)
    (if (char-valid-p i) (insert i))
    (setq i (+ i 1))))
;;
;; (ascstr 0 255)
;; (ascstr 32 126)
;;
(defun ascstr32 (i lasti)
  (while (<= i lasti)
    (insert (format "%x %d: " i i))
    (let ((j i)
	  (lastj (+ i 32)))
      (while (< j lastj)
	(condition-case nil
	    (insert-char j 1)
	  (error nil))
	(setq j (+ j 1))))
    (setq i (+ i 32))
    (insert "\n")))
;;
;; (ascstr32 0 2047)

;; «ee-insert»  (to ".ee-insert")
;; (find-eoutput '(ee-insert '(0 8000)))
;; (find-eoutput '(ee-insert '(8000 12000)))
;; (find-eevfile "eev.el" "find-einsert")
;; (find-eev "eev.el" "find-einsert")

;; «to-codes»  (to ".to-codes")
;; Braille:
;; <delYsid> t = 2345 o = 135 u = 136 c = 14 h = 125 m = 134 e = 15
;; (find-echarsetchars 'mule-unicode-2500-33ff "282x")
;; (find-eoutput '(insert 300094 300085 300101 300073 300083 32 300077 300081))
;;
;; Classical Greek:
;; (find-echarsetchars 'mule-unicode-0100-24ff "702x")
;;
;; Triangle:
;; (find-eoutput '(insert 342435))
;; (find-echarsetchars 'mule-unicode-0100-24ff "732x")
;;
;; Interrobang:
;; (find-echarsetchars 'mule-unicode-0100-24ff "733x")
;; (find-eoutput '(insert 342461))
;;
;; [[, ]], \big[, \big], <<, >>:
;; (find-eoutput '(insert 300006 300007 300008 300009 300010 300011))
;;
;; http://anggtwu.net/eev-current/eev.el.html#find-echarsetchars
;; http://anggtwu.net/eev-current/eev.el.html#find-eoutput
;;
(defun to-codes (s e)
  "Convert the chars in the region to an equivalent (insert ...) sexp.
Here's an example; the \"insert\" sexp below was generated with `to-codes'.
\(find-echarsetchars 'mule-unicode-2500-33ff \"282x\")
\(find-eoutput '(insert 300094 300085 300101 300073 300083 32 300077 300081))"
  (interactive "r")
  (let ((str (buffer-substring s e)))
    (delete-region s e)
    (save-excursion
      (goto-char s)
      (insert (format "%S" (cons 'insert (mapcar 'identity str)))))))

;; «to-ranges»  (to ".to-ranges")
;; (ranges '(0 1 2 3 4 77 40 41 42))
;;   -> ((0 4) (77 77) (40 42))
;;
(defun ranges (list)
  (let ((rest list) first now last answer)
    (while rest
      (setq first (car rest))
      (setq last (car rest))
      (setq rest (cdr rest))
      (while (and rest (= (car rest) (1+ last)))
	(setq last (1+ last))
	(setq rest (cdr rest)))
      (setq answer `((,first ,last) . ,answer)))
    (nreverse answer)))

(defun to-ranges (s e)
  (interactive "r")
  (let* ((str (buffer-substring s e))
	 ;; (list (mapcar 'identity str))
	 (list (ranges (mapcar 'identity str))))
    (delete-region s e)
    (save-excursion
      (goto-char s)
      (insert (format "%S" list)))))



;; «.emacs.local»  (to "..emacs.local")
; (find-elnode "Testing Accessibility" "file-exists-p")
(if (file-exists-p "~/.emacs.local")
    (load-library  "~/.emacs.local"))



;;;;;
;;
;; «obsolete»  (to ".obsolete")
;;
;;;;;

(defun set-window-height (n)
  (enlarge-window (- n (- (window-height) 1))))
;;
(defun set-windows0 (nlines cursorline expr &rest rest)
  (eval expr)
  (if rest (split-window))
  (if rest (if (numberp nlines) (set-window-height nlines)))
  (recenter (or cursorline 0))
  (if rest (other-window 1))
  (if rest (apply 'set-windows0 rest)))
;;
(defun set-windows (&rest rest)
  (delete-other-windows)
  (apply 'set-windows0 rest))



;; «php-old» (to ".php-old")
;; (find-es "php" "php-doc")
;; (find-es "php" "php-raphael-0")
(code-c-d "phpdoc" "/usr/share/doc/php-doc/html/")
(code-c-d "phplang" "/usr/share/doc/php-doc/html/language.")
(code-c-d "phpfunc" "/usr/share/doc/php-doc/html/function.")
;; (find-phpdocfile "")
;; (find-phpdocw3m "index.html")
;; (find-phpdocw3m "langref.html")
;; (find-phplangw3m "types.array.html")
;; (find-phplangw3m "basic-syntax.html")
;; (find-phplangw3m "basic-syntax.comments.html")



;; Obsolete stuff:
' (

;; (find-php3hw3 "language.basic-syntax.html")
;; (find-php3fun "echo")
(defun find-php3fun (funname &rest rest)
  (if (eq ee-arg 3) (find-anchor "~/tmp/ophpfunctions" funname)
    (apply 'find-php3hw3 (format "function.%s.html" funname) rest)))
(defun find-phpdocpage (page &rest rest)
  (interactive (list "index"))
  (eev (format "lynx /usr/share/doc/phpdoc/html/%s.html" page)))
(defun find-phplangpage (page &rest rest)
  (eev (format "lynx /usr/share/doc/phpdoc/html/language.%s.html" page)))
(defun find-phpfuncpage (page &rest rest)
  (eev (format "lynx /usr/share/doc/phpdoc/html/function.%s.html" page)))
;; (find-phpdocpage "index")
;; (find-phplangpage "variables.external")
;; (find-phpfuncpage "import-request-variables")

(defun eep (s e) (interactive "r")
  (write-ee s e "<?\n" "\n?>\n" "/var/www/tmp.php3")
  (write-ee-string "wget -q -O - http://127.0.0.1/tmp.php3$1 $*[2,-1]"))
(defun eep-bounded () (interactive)
  (ee-fstrbounded 'eep-bounded
		  'eep "\n#\n" "\n#\n"))

)


;; «php»  (to ".php")
;; (code-c-d "fbphp" "~/usrc/facebook-php-sdk-v4-4.0-dev/__")

;; (find-fline "~/usrc/facebook-php-sdk-v4-4.0-dev/")
;; (find-fline "~/usrc/facebook-php-sdk-v4-4.0-dev/src/Facebook/")
(code-c-d "phpfb"    "~/usrc/facebook-php-sdk-v4-4.0-dev/")
(code-c-d "phpfbsrc" "~/usrc/facebook-php-sdk-v4-4.0-dev/src/Facebook/")
;; (find-phpfbfile "")
;; (find-phpfbfile "docs/")
;; (find-phpfbsrcfile "")
;; (find-phpfbsrcsh "find * -type f | sort")

;; (find-es "facebook" "fbcmd2")
(code-c-d "fbcmd" "/usr/local/lib/fbcmd/")
;; (find-fbcmdfile "")








(defun fill-text-field (cols n)
  (let ((fill-column cols))
    (fill-region-as-paragraph
      (search-forward "texto {\n")
      (- (search-forward "}") 1)))
  (if n (if (> n 1) (fill-text-field cols (- n 1)))))

(defun text72 (n) (interactive "P") (fill-text-field 72 n))
(defun textlong (n) (interactive "P") (fill-text-field 5000 n))

;; (find-elnode "Searching and Matching")
;; (find-elnode "Regexp Search" "Function: string-match")
;; (find-elnode "Simple Match Data" "Function: match-string")

(defun lua-goto-error () (interactive)
  (let (str fname linenum)
    (setq str (buffer-substring (ee-search-backward "\n")
				(ee-search-forward "\n")))
    (string-match "line \\([0-9]+\\) \\[file `\\(.*\\)'\\]" str)
    (setq fname (match-string 2 str))
    (setq linenum (read (match-string 1 str)))
    (find-fline fname linenum)))

(defun unquote-printable-1 () (interactive)
  (if (re-search-forward "=\\([0-9A-Fa-f][0-9A-Fa-f]\\)")
      (replace-match
       (format "%c" (read (concat "?\\x" (match-string 1))))
       'fixedcase)))

;; «guest_users»  (to ".guest_users")
;; (find-angg ".zshrc" "inix-lea")
;; (find-efile "enriched.el")
;; (find-eetcfile "enriched.doc")

(when (equal (getenv "GUEST_USER") "lea")
  (if (fboundp 'menu-bar-mode) (menu-bar-mode t))
  (if (fboundp 'tool-bar-mode) (tool-bar-mode t))
  (find-fline "~/LEA/help")
  (find-fline "~/LEA/notas-enriched")
  (find-fline "~/LEA/notas")
  (find-fline "~/LEA/notas2")
  (setq inhibit-startup-message t)
  )

' (defun linetoeshell () (interactive)
    (if (not (eq major-mode 'eshell-mode))
	(progn (beginning-of-line)
	       (setq linetoeshell
		     (buffer-substring (point)
				       (save-excursion (end-of-line) (point))))
	       (next-line 1)
	       (eshell)
	       (insert linetoeshell))
      (if linetoeshell
	  (progn (eshell-send-input)
		 (setq linetoeshell nil))
	(switch-to-buffer nil))))

;; (global-set-key [S-f3] 'linetoeshell)






;; (find-fline "eev-extras.el" "defun cs")
;; (find-angg "eev-extras.el" "glyphs_du_jour")
;; Latinmath:
;(let ((disptables-to-set (list disptable-latinmath)))
;  (setglyphs
;   ?\^O "31"      ?*	; small red square
;   ))
;(if (not window-system) (setq standard-display-table disptable-latinmath))


;; (find-elnode "Change Hooks" "after-change-function")
;; (eev "e20glimpse after-change-function | l -S")

;; Try to bypass a xemacs bug:
;; (find-angg "eev.el" "to_and_back")
;; (set-default 'ee-back-list nil)




;; «isearch-faces»  (to ".isearch-faces")
;; (find-es "emacs" "customization-buffers")
;; (find-efunction 'defface)
;; (find-efunction 'custom-declare-face)
;; (customize-group 'isearch-faces)

;; «.emacs.custom»  (to "..emacs.custom")
;; (find-angg ".emacs.custom")
;; (find-es "emacs" "custom-file")
(setq custom-file "~/.emacs.custom")
(load custom-file)

;; «.emacs.unibyte»  (to "..emacs.unibyte")
;; (find-angg ".emacs.unibyte")
;; (find-angg ".emacs.unibyte" "ee-tag-re")
(load "~/.emacs.unibyte")

;; «.emacs.u8»  (to "..emacs.u8")
;; (find-angg ".emacs.u8")
(load "~/.emacs.u8")

;; «.emacs.hydras»  (to "..emacs.hydras")
;; (find-angg ".emacs.hydras")
;; (find-eev "eev-hydras.el" "ee-edit-index-hydra")
;;
(if (require 'hydra nil 'no-error)
    (progn (load "eev-hydras.el")
	   (load "~/.emacs.hydras"))
  ;;
  ;; If we can't load hydra.el:
  (defun ei () (interactive) (error "Can't load hydra.el"))
  (defun r  () (interactive) (error "Can't load hydra.el"))
  (message "Can't load hydra.el - not loading .emacs.hydras"))

;; «.emacs.private»  (to "..emacs.private")
;; (setq ee-passwords ())
;; (setq ee-passwords (ee-aset ee-passwords "beth" "beth"))
;; (defun eesendpassword (account)
;;   (interactive "sPassword for: ")
;;   (eech (concat (ee-aref ee-passwords account) "\n")))
; (find-fline "~/.emacs.private")
(if (file-readable-p "~/.emacs.private")
    (load            "~/.emacs.private"))

;; «.emacs.papers»  (to "..emacs.papers")
;; (find-angg ".emacs.papers")
(load       "~/.emacs.papers")

;; «.emacs.templates»  (to "..emacs.templates")
;; (find-angg ".emacs.templates")
(load       "~/.emacs.templates")

;; «.emacs.audios»  (to "..emacs.audios")
;; (find-angg ".emacs.audios")
(load       "~/.emacs.audios")

;; «.emacs.videos»  (to "..emacs.videos")
;; (find-angg ".emacs.videos")
(load       "~/.emacs.videos")

;; «.emacs-tex.el»  (to "..emacs-tex.el")
;; (find-angg   ".emacs-tex.el")
(load          "~/.emacs-tex.el")

(seen 3431)



;; (find-elnode "Disabling Commands")
(put 'downcase-region 'disabled nil)



;; «lforth»  (to ".lforth")
;; (find-eev "eev-misc.el" "shortcut-find-xxxs")
(code-c-d "lforth" "~/LFORTH/")
(defun find-lforth (file &rest rest)
  "A hyperlink function to anchors in files in ~/LFORTH/."
  (apply 'find-anchor (concat "~/LFORTH/" file) rest))

;; «eepdj»  (to ".eepdj")
;; (find-angg "LATEX/Makefile" ".pdj")
(defun eepdj (s &optional e) (interactive "r")
  (ee-write s e "" "" "~/o")
  (eev "cd
a2ps -=p2isol o
regv o.ps
make -f ~/LATEX/Makefile /tmp/o.pdj
laf ~/o ~/o.ps /tmp/o.pdj"))






(defun find-ewikipage (&optional pagename)
  (let* ((path (if pagename (concat "cgi-bin/wiki\\?" pagename) ""))
	(base "http://www.emacswiki.org/")
	(command (concat "lynx " base path)))
    (eev command)
    command))

;; (find-ewikipage "CategoryEshell")
;; (find-ewikipage nil)


(make-variable-buffer-local 'ee-imenu-index-alist)

(defun ee-imenu-create-index ()
  (goto-char (point-min))
  (let ((search-re (or ee-imenu-re
		       (format ee-anchor-format "\\(.+\\)")))
        a p alist)
    (while (re-search-forward search-re nil t)
      (setq a (match-string 1)
            p (match-beginning 0))
      (unless (string= a "%s")
        (push (cons a p) alist)))
    (setq ee-imenu-index-alist (nreverse alist))))

(defun ee-imenu ()
  (interactive)
  (let ((imenu-create-index-function 'ee-imenu-create-index)
        (imenu-index-alist ee-imenu-index-alist))
    (call-interactively 'imenu)))

(define-key ctl-x-map "E" 'ee-imenu)

;; (find-efunction 'imenu)




;; (find-elnode "Process Information")
;;
(defun find-eprocesses (&rest rest)
  (interactive)
  (list-processes)
  (apply 'ee-goto-position rest))


;; (find-dmissing "wiki")

(defun ee-read-stuff-around-point (prompt chars)
  (read-string prompt (ee-stuff-around-point chars)))

(defun find-dmissing (str &rest rest)
  (interactive (list (ee-read-stuff-around-point "dmissing " "-+0-9A-Za-z_./")))
  (apply 'find-zsh (format "dmissing %s" str) rest))

;; (defun find-w (str &rest rest)
;;   (interactive (list (ee-read-stuff-around-point "w " "-+0-9A-Za-z_")))
;;   (apply 'find-zsh (format "w %s" str) rest))

(defun find-locate (str &rest rest)
  (interactive "slocate ")
  (apply 'find-sh (format "locate %s" str) rest))




;;;;;
;;
;; «emacs-wiki»  (to ".emacs-wiki")
;;
;;;;;

;; (add-to-list 'load-path "~/usrc/sacha-dev/emacs-wiki/")
;; (add-to-list 'load-path "~/usrc/sacha-dev/planner/")
;; (add-to-list 'load-path "~/usrc/sacha-dev/remember/")

(code-c-d "emacswiki" "~/usrc/sacha-dev/emacs-wiki/" "emacs-wiki")
(code-c-d "planner"   "~/usrc/sacha-dev/planner/"    "planner-el")
(code-c-d "remember"  "~/usrc/sacha-dev/remember/"   "remember-el")


;; (find-emacswikifile "")
;; (find-emacswikinode "Top")
;; (find-plannerfile "")
;; (find-plannernode "Top")
;; (find-rememberfile "")
;; (find-remembernode "Top")

;; (code-c-d "muse" "~/usrc/sachac/muse/")
;; (find-musefile "")

;; (defun find-planner (pagename &rest rest)
;;   (planner-goto pagename)
;;   (apply 'ee-goto-position rest))

;; (defun planner-main () (interactive) (find-planner "MainTasksPage"))
;; (defun planner-main () (interactive) (find-planner "MainPage"))

;; (defun to-muse () (interactive) (find-fline "~/eev-0.94/Notes/Muse"))

;; «emacs-wiki-edrx»  (to ".emacs-wiki-edrx")
;; (find-es "ewiki" "emacs-wiki-edrx")
;; (find-angg "elisp/emacs-wiki-edrx.el")

;; (add-to-list 'load-path "~/elisp/")

;; (eval-after-load "emacs-wiki"
;;   '(load-library "emacs-wiki-edrx"))

;; (code-c-d "eevnotes" "~/eev-0.94/Notes/")
;;
;; (defun find-eevnotes (pagename &rest rest)
;;   (find-fline (ee-eevnotesfile pagename))
;;   ;; (emacs-wiki-maybe)
;;   ;; (muse-mode-maybe)
;;   (apply 'ee-goto-position rest))

;; (find-eevnotes "MainPage")




;;;;;
;;
;; find-stringbuffer, find-evalread, and another find-etpat
;; 2004apr02
;;
;;;;;

;; (find-elnode "Temporary Displays")
;; (find-elnode "Temporary Displays" "cial Form: with-output-to-temp-buffer")

(defun find-stringbuffer-new (buffername string &rest rest)
  (ee-same-window buffername
		  (with-output-to-temp-buffer buffername
		    (princ string)))
  (apply 'ee-goto-position rest))

(defun find-eevalread (sexpstr &rest rest)
  (interactive "sEval: ")
  (apply 'find-stringbuffer-new
	 (format "*%s*" sexpstr)
	 (format "%s\n   ==>\n\%s\n"
		 sexpstr (pp-to-string (eval (read sexpstr))))
	 rest))



;; «find-string-ow»  (to ".find-string-ow")
;; «find-progoutput-ow»  (to ".find-progoutput-ow")
;; 2004aug04
;;
(defun find-string-ow (string buffername &rest pos-spec-list)
  (if (null buffername) (error))
  (save-selected-window
    (let ((pop-up-windows t))
      (pop-to-buffer buffername)
      (if buffer-file-name
	  (error "Buffer %s is not a scratch buffer" buffer-file-name))
      (delete-region (point-min) (point-max))
      (insert string)
      (goto-char (point-min))
      (apply 'ee-goto-position pos-spec-list))))

(defun find-progoutput-ow (command &optional title &rest pos-spec-list)
  (apply 'find-string-ow
	 (shell-command-to-string command)
	 (or title (format "*%s*" command))
	 pos-spec-list))


;; (find-elnode "Output Variables")
;; (ee-pp-to-string-compact '(a [foo] "\n\r"))
;; (ee-pp-to-string-compact '(a [foo] "\n\r") 'tick)
;; (ee-pp-to-string-compact '(defun f (x) `(1 2 ,x 'a)) 'tick)

;; (defalias 'ee-pp1 'pp-to-string)

;; (defalias 'ee-format-%S 'ee-pp0)
;; (defalias 'ee-pp-to-string-compact 'ee-pp0)

;; (defun find-ekeypp (key &rest rest)
;;   (interactive "kDescribe key: ")
;;   (let* ((codestr (format "(symbol-function (key-binding %s))"
;;                           (ee-pp-to-string-compact key 'tick))))
;;     (apply 'find-eevalread codestr rest)))





;; «ee-set-region-face»  (to ".ee-set-region-face")
;; (find-es "emacs" "propertize")
;;
(defun ee-set-region-face (start end face)
  (put-text-property start end 'face face))

(defun ee-set-region-fg (start end fg)
  (put-text-property start end 'face `(:foreground ,fg)))




;;;;;
;;
;; «htmlize»  (to ".htmlize")
;; 2004jul17
;;
;;;;;

;; Moved to: (find-eev "htmlize-eev.el")

;; See also:
;; http://rtfm.etla.org/emacs/htmlfontify/src/htmlfontify.el.html

;; http://fly.srk.fer.hr/~hniksic/emacs/htmlize.el
;; cp -iv $S/http/fly.srk.fer.hr/~hniksic/emacs/htmlize.el ~/elisp/

;; (find-efile "fast-lock.el")
;; (find-efile "font-lock.el")
;; (find-efile "jit-lock.el")
;; (find-efile "lazy-lock.el")
;; (customize-option 'font-lont-support-mode)

;; (find-eev "META" "htmlize")
;; (load-library "~/elisp/htmlize.el")
;; (find-fline "~/elisp/htmlize.el")
;; (find-elnode "Changing Properties")
;; (find-elnode "Narrowing" "save-restriction")

;; (glyphs-faceglyph-to-facechar (aref "*" 0))
;; (glyphs-replace-by-facechars (- (point) 30) (point) "*«»")
;; (eev "rm -v /tmp/stuff.*; cp -v ~/.emacs /tmp/stuff.el")
;; (glyphs-htmlize-file "/tmp/stuff.el")

;; (find-fline "~/elisp/htmlize.el" "defun htmlize-make-hyperlinks")

(defvar glyphs-to-replace-by-facechars "\r*«»")

(defun glyphs-faceglyph-to-facechar (pos)
  (let* ((n (aref (aref standard-display-table pos) 0))
	 (faceid (ash n -19))
	 (face (ee-faceid-to-face faceid (face-list)))
	 (char (logand n 524287))
	 (charstr (format "%c" char)))
    (add-text-properties 0 1 (list 'face face) charstr)
    charstr))

(defun glyphs-replace-by-facechars (start end glyphsstr)
  (save-restriction
    (narrow-to-region start end)
    (let ((i 0) char code replacement)
      (while (< i (length glyphsstr))
	(setq char (substring glyphsstr i (1+ i)))
	(setq code (aref glyphsstr i))
	(setq replacement (glyphs-faceglyph-to-facechar code))
	(save-excursion
	  (goto-char (point-min))
	  (while (search-forward char nil t)
	    (replace-match replacement nil t)))
	(setq i (1+ i))))))

(defun glyphs-htmlize-this-buffer-1 (name-orig)
  (let* ((contents (buffer-substring (point-min) (point-max)))
	 (name-htmlized (concat name-orig " (htmlized)"))
	 (name-html (concat name-orig ".html")))
    (pop-to-buffer name-htmlized)
    (delete-region (point-min) (point-max))
    (insert contents)
    (glyphs-replace-by-facechars (point-min) (point-max)
				 glyphs-to-replace-by-facechars)
    (switch-to-buffer (htmlize-buffer))
    (rename-buffer name-html)))

(defun glyphs-htmlize-file (fname)
  (find-file fname)
  (font-lock-mode 1)
  (jit-lock-fontify-now (point-min) (point-max))
  (glyphs-htmlize-this-buffer-1 (file-name-nondirectory fname))
  (write-file (concat fname ".html")))



;; «fundcomp-menu»  (to ".fundcomp-menu")
'
(easy-menu-define
 fundcomp-menu global-map
 "FundComp menu."
 '("FundComp"
   ["c:/FundComp/lab/"              (find-fline "$LAB/") t]
   "--"
   ["scheme.txt"                    (find-fline "$LAB/scheme.txt") t]
   ["leitao.txt"                    (find-fline "$LAB/leitao.txt") t]
   ["eng-por.dict"                  (find-fline "$LAB/eng-por.dict") t]
   ["keys.e"                        (find-eevfile "keys.e") t]
   "--"
   ["(info \"(emacs)Top\")"         (info "(emacs)Top") t]
   ["(info \"(elisp)Top\")"         (info "(elisp)Top") t]
   ["(info \"(eintr)Top\")"         (info "(eintr)Top") t]
   ))

;; «menu-bar»  (to ".menu-bar")
;; «tool-bar»  (to ".tool-bar")
;; (find-enode "Menu Bars")
;; (find-enode "Tool Bars")
;; (find-enode "Scroll Bars")
(if (fboundp 'menu-bar-mode)   (menu-bar-mode 0))
(if (fboundp 'tool-bar-mode)   (tool-bar-mode 0))
(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))

;; (find-efunction 'toggle-horizontal-scroll-bar)
(if (fboundp 'horizontal-scroll-bar-mode)
    (horizontal-scroll-bar-mode 0))

;; 2011nov28: Commented out:
;;   (if (fboundp 'auto-image-file-mode) (auto-image-file-mode 1))
;; On recent Emacsen auto-image-file-mode is on by default, but
;; running (auto-image-file-mode 1) explicitly is bad, as it triggers
;; a bug - on big images <left> and <right> will scroll horizontally
;; too much. Curiously, this doesn't happen for images in zip files or
;; tarballs.



;; «show-as-image»  (to ".show-as-image")
;; (find-es "emacs" "keymap-property")
;; (find-es "emacs" "display-property")
;; (find-node "(elisp)Image Descriptors")
;; (show-as-png "~/IMAGES/kaoya.png")
;;
(setq show-as-image-keymap
      '(keymap (?q . show-as-image-unshow))) ; `q' makes the image text again

(defun show-as-image-unshow (&optional s e)
  (interactive)
  (setq s (or s (previous-single-property-change (1+ (point)) 'display)
	      (point-min)))
  (setq e (or e (next-single-property-change (point) 'display) (point-max)))
  (remove-text-properties s e '(display keymap)))

(defun show-as-image (type fname &optional s e)
  (if (not s) (save-excursion
		(setq s (eek-backward-sexp))
		(setq e (eek-forward-sexp))))
  (let* ((image-data (with-temp-buffer
		       (set-buffer-multibyte nil)
		       (insert-file-contents-literally fname)
		       (buffer-string))))
    (add-text-properties s e
      `(display (image :type ,type :data ,image-data)
	keymap ,show-as-image-keymap))))

(defun show-as-png (fname &optional s e)
  (show-as-image 'png fname s e))



;; «ptexts»  (to ".ptexts")
;; (find-elnode "Output Variables" "print-escape-newlines")
;; (find-elnode "Formatting Strings" "with quoting")

(defun ptexts-build-alist (f pos posmax)
  (let ((nextpos (next-property-change pos)))
    (if nextpos
        (cons (funcall f pos nextpos)
	      (ptexts-build-alist f nextpos posmax))
      (funcall f pos posmax))))

(defun ptexts (&optional pos posmax)
  (ptexts-build-alist
   (lambda (start end)
     (cons (buffer-substring-no-properties start end)
	   (text-properties-at start)))
   (or pos (point-min))
   (or posmax (point-max))))

(defun ptexts-as-string (&optional pos posmax)
  (mapconcat (lambda (ptext) (format "%S\n" ptext))
	     (ptexts pos posmax)
	     ""))

;; (setq ptexts (ptexts (point) (mark)))
;; (find-evardescr 'ptexts)





(setq outline-minor-mode-prefix "\C-c")
;; (find-eevfile "eev-dev.el")


;; «underline-as-green»  (to ".underline-as-green")
;; (find-angg ".zshrc" "underline_as_green")
;; (find-man "4 console_codes" "Set color n as the underline color")
;; (set-face-foreground 'underline "green")
;; (set-face-foreground 'underline nil)
;; (find-efacedescr 'underline)
;;
(if (equal (getenv "TERM") "linux")
    (set-face-foreground 'underline "green"))

(defun eeapti (packages)
  (interactive (list (ee-debpkgname-ask)))
  (eev (format "apti %s" packages)))


;; «r0r2»  (to ".r0r2")
;; (defun tp-find-file-r2-then-r0 (r2-fname r0-fname)
;;   (find-fline r2-fname)

(setq lua50ref-r0-file "~/LUA/lua50ref.r0")
(setq lua50ref-r2-file "~/LUA/lua50ref.r2")

;; Obsolete:
' (defun find-lua50ref (&rest rest)
    (interactive)
    (if (not (file-exists-p lua50ref-r0-file))
	(progn (find-fline lua50ref-r2-file)
	       (tp-r2-write-r0-file)))
    (apply 'find-anchor lua50ref-r0-file rest))

;; «find-ebuffer+»  (to ".find-ebuffer+")

(defun read-file-as-sexp (fname)
  (with-temp-buffer
    (insert-file-contents fname)
    (read (buffer-substring (point-min) (point-max)))))

(defun my-insert-str-props (str-props)
  (if (cdr str-props) (insert (apply 'propertize str-props))
    (insert (car str-props))))

(defun find-ebuffer+ (bufname &rest pos-spec-list)
  "Like `find-ebuffer', but for buffers that are constructed in special ways.
See `find-ebuffer+-alist'."
  (if (get-buffer bufname)
      (apply 'find-ebuffer bufname pos-spec-list)
    (find-ebuffer bufname)
    (let ((a (assoc bufname find-ebuffer+-alist)))
      (if (not a) (error "Not in `find-ebuffer+-alist': %S" bufname))
      (let ((buffer-undo-list t))
	(eval (cons 'progn (cdr a))))
      (set-buffer-modified-p nil)
      (apply 'ee-goto-position pos-spec-list))))

(defvar find-ebuffer+-alist nil)

(setq find-ebuffer+-alist
      '(("Lua50ref"
	 (mapc 'my-insert-str-props
	       (let ((coding-system-for-read 'utf-8-unix))
		 (read-file-as-sexp "~/LUA/lua50ref.r2")))
	 (normal-mode))
	("UserModeLinux-HOWTO"
	 (insert-file-contents
	  (ee-udfile "user-mode-linux-doc/html/UserModeLinux-HOWTO.txt.gz"))
	 (Man-fontify-manpage))
	("MuttManual"
	 (insert-file-contents
	  (ee-udfile "mutt/manual.txt.gz"))
	 (Man-fontify-manpage))
	))

(defun find-Lua50ref (&rest pos-spec-list)
  (interactive)
  (apply 'find-ebuffer+ "Lua50ref" pos-spec-list))

;; (find-epp (assoc "Lua50ref" find-ebuffer+-alist))
;; (find-Lua50ref)
;; (find-ebuffer+ "UserModeLinux-HOWTO")




;; (pc-selection-mode)

;; «hippie-expand»  (to ".hippie-expand")
;; (find-es "emacs" "hippie-expand")
;; (find-node "(autotype)Hippie Expand")
;; (find-efile "hippie-exp.el")
;;
(global-set-key [f11] 'hippie-expand)
(setq hippie-expand-try-functions-list
  '(try-complete-file-name-partially
    try-complete-file-name
    try-complete-lisp-symbol-partially
    try-complete-lisp-symbol
    try-expand-all-abbrevs
    try-expand-list
    try-expand-line
    try-expand-dabbrev
    try-expand-dabbrev-all-buffers
    try-expand-dabbrev-from-kill
    ))



;; (find-sh0 "echo foo >&2 > /dev/null")


;; Obsolete thanks to tramp and $ASROOT
' (defun sudoemacs (fname)
    (interactive (list (read-file-name "sudo emacs ")))
    (eev (format "sudo emacs %s &" fname)))

' (defun sudoemacs-nw (fname)
    (interactive (list (read-file-name "sudo emacs -nw ")))
    (eev (format "sudo emacs -nw %s" fname)))

' (defun whoami ()
    (interactive)
    (message (shell-command-to-string
              "echo \"$(whoami) (HOME=$HOME)\"")))




;; «dfs»  (to ".dfs")
;; (find-sh "cd /var/lib/dpkg/info/; 'ls' -X | awk -F . '{print $NF}' | uniq")
;; (ee-dfss "#" "less")
;;
;; (setq ee-dfs-extensions
;;       (mapcar 'symbol-name
;; 	      '(preinst postinst prerm postrm
;; 		conffiles config templates
;; 		md5sums shlibs)))
;;
;; (defun ee-dfs (N)
;;   (interactive "p")
;;   (dotimes (i N)
;;     (let* ((bol (save-excursion (beginning-of-line) (point)))
;; 	   (eol (save-excursion (end-of-line) (point)))
;; 	   (pkgname (buffer-substring bol eol))
;; 	   (prefix (ee-comment-prefix))
;; 	   (links (ee-dfss prefix pkgname ee-dfs-extensions)))
;;       (if (not links)
;; 	  (error "Not an installed package: %s" pkgname))
;;       (delete-and-extract-region bol (1+ eol))
;;       (insert links))))
;;
;; (defalias 'dfs 'ee-dfs)



;; «eesteps»  (to ".eesteps")
;;
;; (defun eesteps-set (list)
;;   (setq eesteps-pos 0)
;;   (setq eesteps-list list))
;;
;; (defun eesteps-do-step ()
;;   (interactive)
;;   (if (>= eesteps-pos (length eesteps-list))
;;       (error "No more steps"))
;;   (eval (nth eesteps-pos eesteps-list))
;;   (setq eesteps-pos (1+ eesteps-pos)))
;;
;; (global-set-key [f12] 'eesteps-do-step)

;; A test:
;; (eesteps-set '((insert "foobar") (backward-char 3) (insert "!")))

;; «my-ins»  (to ".my-ins")
;; (find-elnode "Markers")
;; (find-elnode "Marker Insertion Types")
;;

(defun ins-here ()
  (setq ins-marker (make-marker))
  (set-marker-insertion-type ins-marker t)
  (set-marker ins-marker (point)))

(defun ins (&rest stuff)
  (with-current-buffer
      (or (marker-buffer ins-marker)
	  (error "ins-marker points nowhere"))
    (save-excursion
      (goto-char ins-marker)
      (apply 'insert stuff))))

(defun ins-expr (expr) (ins (format "%S\n" expr)) expr)


(defun my-set-marker ()
  (setq my-marker (make-marker))
  (set-marker-insertion-type my-marker t)
  (set-marker my-marker (point)))

(defun my-ins (&rest stuff)
  (save-excursion
    (set-buffer (or (marker-buffer my-marker)
		    (error "my-marker points nowhere")))
    (goto-char my-marker)
    (apply 'insert stuff)))

;; a demo:
' (eesteps-set '(
    (next-line 2) (ins-here) (next-line 2)
    (ins "a") (ins "b") (ins "c")
    ))


;; «chowns»  (to ".chowns")
;; A test: (eesteps-set '((find-fline "/etc/fstab") (chowns)))

(defun chowns-string (fname)
  (shell-command-to-string (concat "FNAME=" fname "
function sudolink () { echo \"# (find-sh0 \\\"sudo chown $1 $2\\\")\"; }
sudolink $(stat -c %U:%G $FNAME) $FNAME
sudolink $(id -gn):$(id -un)     $FNAME")))

(defun chowns (&optional fname) (interactive)
  "Insert in the kill ring two hyperlinks to toggle the ownership of this file"
  (let ((result (chowns-string (or fname (buffer-file-name))))
	(message-truncate-lines nil))
    (kill-new result)
    (message "%s" (substring result 0 -1))))

;; (find-find-links-links "{k}" "chown" "fname")
;; (find-chown-links "/etc/hosts")
;;
(defun find-chown-links (&optional fname &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
  (interactive (list (or (buffer-file-name) default-directory)))
  (setq fname (or fname "{fname}"))
  (apply 'find-elinks
   `((find-chown-links ,fname ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-chown-links)
     ""
     (find-fline ,(file-name-directory fname)
		 ,(format " %s" (file-name-nondirectory fname)))
     (find-sh0 ,(format "sudo chown -v edrx. %s" fname))
     (find-sh0 ,(format "sudo chmod 666      %s" fname))
     (find-sh0 ,(format "sudo chmod 777      %s" fname))
     )
   pos-spec-list))


(code-brfile 'find-chown-links  :dired 'chown)




;; «find-eimage»  (to ".find-eimage")
;; obsolete: see (find-efunction 'auto-image-file-mode)
;; ' (defun find-eimage (fname)
;;     (let ((buffername (format "*image %s*" fname))
;;           (substitutedfname (ee-expand fname)))
;;       (switch-to-buffer buffername)
;;       (delete-region (point-min) (point-max))
;;       (cd (file-name-directory substitutedfname))
;;       (insert-image (create-image substitutedfname))))




;; «to-netbotanic-test»  (find-angg ".zshrc" "to-netbotanic-test")
(defun to-netbotanic-test () (interactive)
  (find-angg ".zshrc" "to-netbotanic-test"))

;; «to-install-beth»  (find-eev "examples/eev-tests.e" "to-install-beth")
(defun to-install-beth () (interactive)
  (find-eev "examples/eev-tests.e" "to-install-beth"))

;; «to-eev-current»  (find-angg ".zshrc" "to-eev-current")
(defun to-eev-current () (interactive)
  (find-angg ".zshrc" "to-eev-current"))

;; (find-dpkg-l)
(defun find-dpkg-l (&rest rest)
  (interactive)
  (apply 'find-sh "dpkg -l" rest))

;; «find-zsh»  (to ".find-zsh")
;; (find-zsh "alias")
;; (find-zsh "set")

(defun find-zsh00 (command)
  (find-callprocess00
   `("zsh" "-c" ,(format "export TERM=emacs\n. ~/.zshrc\n%s" command))))

;; 2007dec13: bad news: the clean solution above does not work for
;; aliases, I need some hack... like the two below.
;; (find-zsh "installeddebs")

(defun find-zsh00 (command)
  (eev command nil "$EEVTMPDIR/ee.zsh")
  (find-callprocess00
   `("zsh" "-c" ,(format "export TERM=emacs\n. ~/.zshrc\n%s"
			 ". $EEVTMPDIR/ee.zsh"))))

(defun find-zsh00 (command)
  (eev command nil "$EEVTMPDIR/ee.zsh")
  (find-callprocess00
   `("zsh" "-c" ,(format "export TERM=emacs\n. ~/.zshrc\n%s"
			 "eval \"$(cat $EEVTMPDIR/ee.zsh)\""))))

(defun find-zsh0 (command)
  (ee-no-trailing-nl (find-zsh00 command)))

(defun find-zsh (command &rest rest)
  (apply 'find-eoutput-reuse
         (or ee-buffer-name (format "zsh: %s" command))
         `(insert (find-zsh00 ,command))
         rest))

;; (defun find-zsh (command &rest rest)
;;   (interactive "MCommand: ")
;;   (ee-write command nil ". ~/.zshrc\n" "" "$EEVTMPDIR/ee.zsh")
;;   (apply 'find-sh "TERM=emacs zsh $EEVTMPDIR/ee.zsh" rest))
;;
;; (defun find-zsh0 (command)
;;   (interactive "MCommand: ")
;;   (ee-write command nil ". ~/.zshrc\n" "" "$EEVTMPDIR/ee.zsh")
;;   (find-sh0 "TERM=emacs zsh $EEVTMPDIR/ee.zsh"))

;; «upload»  (to ".upload")
;; (find-angg ".zshrc" "upload")
(defun upload (fname)
  (interactive "fFile name: ")
  (setq fname (ee-expand (or fname (buffer-file-name))))
  (eev (format "upload %s" fname)))




;; «eev-current-make-htmls»  (to ".eev-current-make-htmls")
;; (find-angg ".zshrc" "eev-current")
;; (eev "eev-current-upload")
;; (eev-current-make-htmls)
;;
;; (find-eevexfile "eev-make.e" "make-htmls")
;; (find-eevexfile "tools.el")


(defun ee-info-page-url (book+ node)
  (let ((book- (file-name-nondirectory book+)))
    (cond ((equal book- "emacs")
	   (format "http://www.fsf.org/software/emacs/manual/html_node/%s.html"
		   (replace-regexp-in-string "[ /]" "-" node)))
	  ((or (equal book- "emacs-lisp-intro")
	       (equal book- "elintro")
	   (format "http://www.fsf.org/software/emacs/emacs-lisp-intro/html_node/%s.html"
		   (replace-regexp-in-string "[ /]" "-" node))))
	  )))

(defun ee-sexp-to-url (sexp)
  (let ((first (car sexp))
	(second (cadr sexp)))
    (cond ((member first '(info find-node))
	   (if (string-match "^(\\([^()]*\\))\\(.*\\)" second)
	       (ee-info-page-url (match-string 1 second)
				 (match-string 2 second))))
	  ((eq first 'find-enode)   (ee-info-page-url "emacs" second))
	  ((eq first 'find-elnode)  (ee-info-page-url "elisp" second))
	  ((eq first 'find-elinode) (ee-info-page-url "elintro" second))
	  )))

;; (ee-info-page-url "emacs" "Calendar/Diary")
;; (ee-sexp-to-url '(find-enode "Calendar/Diary"))

;;---------------------------------------------------------
;; «eesteps-insert-longkey»  (to ".eesteps-insert-longkey")
;; (find-estring "" "" '(eesteps-insert-longkey+ (kbd "M-h M-k")))
;;
(defun eesteps-insert-longkey (key)
  (interactive "kInsert longkey: ")
  (insert (ee-pp0 (format-kbd-macro key))))

(defun eesteps-insert-longkey+ (key)
  (interactive "kInsert longkey with comment: ")
  (insert (ee-pp0 (replace-regexp-in-string
		   "[ \t][ \t]+" "  "
		   (format-kbd-macro key t)))))

' (define-key eev-mode-map [f7] 'eesteps-insert-longkey)
' (define-key eev-mode-map [f8] 'eesteps-insert-longkey+)



;;---------------------------------------
;; «my-screenshot»  (to ".my-screenshot")
;; «emacs-ascii-screenshots»  (to ".emacs-ascii-screenshots")
;; Moved to:
;;   (find-eev "eev-tlinks.el" "find-escreenshot-links")

;; (find-node "(elisp)Emulating Mode Line")
;; TODO: change the prefix "my-" (to "shot-", maybe?)
;;       use (format-mode-line nil nil t)
;; (my-2uple-to-string  '("foo" "/") 7)
;; (my-2uples-to-rect   '(("foo" "/") ("b" ".")) 5)
;; (my-max-width-2uples '(("foo" "/") ("b" ".")))
;; (my-max-width        '("foo" "b"))

(defun my-untabify-string (string)
  (with-temp-buffer
    (insert string)
    (untabify 0 (point-max))
    (buffer-substring 0 (point-max))))

(defun my-max-width (strings)
  (apply 'max 0 (mapcar 'length strings)))

(defun my-max-width-2uples (2uples)
  (my-max-width (mapcar 'first 2uples)))

(defun my-2uple-to-string (2uple targetwidth)
  (let* ((s    (nth 0 2uple))
	 (fill (nth 1 2uple))
	 (code (aref fill 0))		; ascii code of the first char of fill
	 (slen (length s)))
    (concat s (make-string (- targetwidth slen) code))))

(defun my-2uples-to-rect (2uples width)
  (mapcar (lambda (2uple) (my-2uple-to-string 2uple width)) 2uples))

(defun my-2uples-to-rect+ (2uples extra)
  (let ((width (+ (my-max-width-2uples 2uples) extra)))
    (my-2uples-to-rect 2uples width)))

(defun my-add-walls-to-rect (rect pre post &optional pre0 post0)
  (if pre0 (cons (concat pre0 (car rect) post0)
		 (my-add-walls-to-rect (cdr rect) pre post))
    (mapcar (lambda (str) (concat pre str post)) rect)))

(defun my-window-to-2uples (top strs modeline minibuffer)
  (let ((2uples (append (mapcar (lambda (str) (list str " ")) strs)
			`((,modeline "-")))))
    (if top (setq 2uples (append '(("" "_")) 2uples)))
    (if minibuffer (setq 2uples (append 2uples `((,minibuffer "_")))))
    2uples))

(defun my-window-to-shot-rect (prepre strs modeline minibuffer extra fixed)
  (let* ((pre0 (concat prepre " ")) (post0 " ")
	 (pre  (concat prepre "|")) (post  "|")
	 (2uples (my-window-to-2uples t strs modeline minibuffer))
	 (rect (if extra (my-2uples-to-rect+ 2uples extra)
		 (my-2uples-to-rect 2uples fixed))))
    (my-add-walls-to-rect rect pre post pre0 post0)))

(defun my-concat-lines (rect)
  (apply 'concat (mapcar (lambda (s) (concat s "\n")) rect)))

;; A demo:
' (find-estring
   (my-concat-lines
    (my-window-to-shot-rect
     ";; "
     (split-string "foo\nbar\n" "\n")
     "-:**-F1  TODO  (Emacs-Lisp)--L706--79%--"
     "M-x foo"
     2
     nil)))

(defvar my-screenshot-prefix "  ")

;; «my-screenshot»  (to ".my-screenshot")
(defun my-screenshot (extra)
  (interactive "P")
  (find-estring
   (my-concat-lines
    (my-window-to-shot-rect
     my-screenshot-prefix
     (split-string (buffer-substring (point) (mark)) "\n")
     (format-mode-line mode-line-format 0)
     ""
     (or extra 6)
     nil))))


;; «find-mode-line-links» (to ".find-mode-line-links")
(defun find-mode-line-links (&rest pos-spec-list)
"Visit a temporary buffer containing an skeleton for an ascii screenshot."
  (interactive)
  (apply 'find-elinks
   `((find-mode-line-links  ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-mode-line-links)
     (define-key eev-mode-map "\M-U" 'eewrap-screenshot)
     (setq ee-screenshot-width ,ee-screenshot-width) ; current value
     ""
     (find-elnode "Emulating Mode Line")
     (find-epp (format-mode-line mode-line-format))
     (find-epp (format-mode-line mode-line-format 'header-line))
     (ee-no-properties (format-mode-line mode-line-format))
     ""
     "   ________________________________________________________"
     "  |                                                        |"
     "  |                                                        |"
     "  |                                                        |"
     ;; "  |"
     ;; "  |"
     ,(format "  |%s|" (ee-no-properties (format-mode-line mode-line-format)))
     "  |________________________________________________________|"
     )
   pos-spec-list))

;; (key "\M-U")

;; Test: (find-mode-line-links)

(defvar ee-screenshot-width 70)
(defun  ee-screenshot-width () (interactive)
  (find-elinks
   `((ee-screenshot-width)
     ;; Convention: the first sexp always regenerates the buffer.
     (setq ee-screenshot-width ,ee-screenshot-width) ; current value
     ""
     (setq ee-screenshot-width 70)
     )))

(defun ee-to-screenshot-line (&optional str width)
  (setq width (or width ee-screenshot-width))
  (setq str (replace-regexp-in-string "^ *|\\(.*?\\) *| *$" "\\1" str))
  (let* ((len   (length str))
	 (needs (- width (length str)))
	 (spaces (make-string (max 0 needs) 32)))
    (format "  |%s%s|" str spaces)))

(defun eewrap-screenshot () (interactive)
  (ee-this-line-wrapn 1 'ee-to-screenshot-line))

;; (ee-to-screenshot-line " abcd ")
;; (ee-to-screenshot-line " abcd " 4)
;; (ee-to-screenshot-line " | abcd | " 4)
;; (find-elnode "Creating Strings" "Function: make-string")



;; «ee-svg-screenshot»  (to ".ee-svg-screenshot")
;; (find-es "emacs" "screenshot-svg")
;; (find-esetkey-links   (kbd "<f12>") 'ee-svg-screenshot)
' (define-key eev-mode-map (kbd "<f12>") 'ee-svg-screenshot)

(defun ee-svg-screenshot (&optional fname)
  (interactive)
  (ee-write-string
   (x-export-frames nil 'svg)
   (or fname "/tmp/screenshot.svg"))
  (find-svg-screenshot-links))

;; «find-svg-screenshot-links»  (to ".find-svg-screenshot-links")
;; Skel: (find-find-links-links-new "svg-screenshot" "stem" "")
;; Test: (find-svg-screenshot-links "foo")
;;
(defun find-svg-screenshot-links (&optional stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for svg-screenshot."
  (interactive)
  (setq stem (or stem "{stem}"))
  (apply
   'find-elinks
   `((find-svg-screenshot-links ,stem ,@pos-spec-list)
     (find-svg-screenshot-links "test")
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-svg-screenshot-links)
     ""
     ,(ee-template0 "\
(find-fline \"/tmp/screenshot.svg\")
(find-fline \"~/INKSCAPE/\")
(find-fline \"~/INKSCAPE/\" \"{stem}.svg\")
(find-sh0 \"cp -v /tmp/screenshot.svg ~/INKSCAPE/{stem}.svg\")
(find-bgprocess            \"inkscape ~/INKSCAPE/{stem}.svg\")
")
     )
   pos-spec-list))

;; «sshot-run»  (to ".sshot-run")
;; (find-angg ".emacs.templates" "find-sshot-links")
;; (find-ekeymapdescr eev-mode-map)
;; (define-key eev-mode-map (kbd "<f11>") nil)
(define-key eev-mode-map (kbd "<f12>") 'sshot-run)
;;
(defun sshot-run ()
  (interactive)
  (find-bgprocess '("sh" "-c" "sleep 5 && scrot -o --select /tmp/sshot.png"))
  (sshot)
  (message "Running: sleep 5 && scrot -o --select /tmp/sshot.png"))



;; «find-svgbuffer»  (to ".find-svgbuffer")
;; (find-es "svg" "demo-1")
;;
(defun find-svgbuffer (bufname svgobject)
  (if (get-buffer bufname)
      (find-ebuffer bufname)
    (find-ebuffer bufname)
    (svg-insert-image svgobject)
    (setq cursor-type nil)))

(defun ee-xml-to-string (xml)
  (with-temp-buffer
    (xml-print xml)
    (buffer-substring (point-min) (point-max))))








;; «my-modes»  (to ".my-modes")
;; (find-fvwmhelp "")
(defun fvwm-sloppy-focus   () (interactive) (find-fvwm0 "Style * SloppyFocus"))
(defun fvwm-click-to-focus () (interactive) (find-fvwm0 "Style * ClickToFocus"))

(setq my-modes-table
      '((:no-scroll-bar (scroll-bar-mode -1))
	(:scroll-bar    (scroll-bar-mode 1))
	(:no-blink      (blink-cursor-mode 0))
	(:blink         (blink-cursor-mode 1))
	(:no-erc-track  (erc-track-disable))
        (:erc-track     (erc-track-enable))
        (:no-pager      (find-fvwm0 "KillModule FvwmPager"))
	(:pager         (find-fvwm0 "Module FvwmPager"))
	(:no-fringe     (fringe-mode '(0)))
	(:fringe        (fringe-mode '(nil)))
	(:width80       (set-frame-width nil 80))
	(:long-flash    (setq ee-highlight-spec  '(highlight 7)
			      eeb-highlight-spec '(highlight 7)
			      eek-highlight-spec '(region    7)))
	(:normal-flash  (setq ee-highlight-spec  '(highlight 0.75)
			      eeb-highlight-spec '(highlight 0.5)
			      eek-highlight-spec '(region    0.75)))
	))

(defun my-modes (&rest args)
  (while args
    (let* ((keyword (car args))
	   (assoc (assoc keyword my-modes-table)))
      (setq args (cdr args))
      (if assoc (eval (cons 'progn (cdr assoc)))
	(error "Keyword %S not in my-modes-table" keyword)))))

;; (require 'erc)
;; (my-modes :scroll-bar    :pager    :erc-track    :fringe    :width80)
;; (my-modes :no-scroll-bar :no-pager :no-erc-track :no-fringe :width80)
;; (my-modes :long-flash   :no-blink)
;; (my-modes :normal-flash :blink)


;; «linuxconfvar»  (to ".linuxconfvar")
;; «code-c-d-linux26»  (to ".code-c-d-linux26")

(defun ee-linuxconfvarname-around-point (&optional show-it)
  (interactive "p")
  (ee-stuff-around-point "A-Z0-9_" show-it))

(defun ee-linuxconfvarname-ask (&optional prompt show-it)
  (interactive (list nil t))
  (ee-maybe-showing-it
   (read-string (or prompt "Linux confvar (usually CONFIG_xxx): ")
		(ee-linuxconfvarname-around-point))))

'(
(defun code-c-d-linux26 (c d)
  (code-c-d c d)
  (ee-eval-read-format "
    (defun find-%sconfvar (var &rest rest)
      (interactive (list (ee-linuxconfvarname-ask)))
      (apply 'find-%sfile \".Configure.help\"
	     (concat \"\\n\" var \"\\n\") rest))" c c))

(code-c-d-linux26 "k26" "~/bigsrc/kernel-source-2.6.8/")
(code-c-d-linux26 "linux26" "~/bigsrc/kernel-source-2.6.8/")
)

;; (find-es "kernel" "k26.Configure.help")
;; (find-k26confvar "CONFIG_BLK_DEV_LOOP")
;; (find-fline "~/LINUX/2.6.28-persephone1.conf")



(setq ee-file-html (ee-expand "$EEVTMPDIR/ee.html"))
(setq ee-file-html "/tmp/ee.html")

;; (eeurl "http://www.cs.utah.edu/dept/old/texinfo/emacs18/emacs_21.html")

;; (find-enode "Variable Index" "* large-file-warning-threshold:")
;; (find-evariable                'large-file-warning-threshold)
(setq large-file-warning-threshold 15000000)


;; «intermail»  (to ".intermail")
;; (find-angg ".zshrc" "intermail")
;; (find-angg "bin/intermail")
;; (find-fline "~/INTERMAIL/")
;;
;; (setq sendmail-program "~/bin/intermail")
;; (setq sendmail-program "/usr/lib/sendmail")
;; (setq sendmail-program "/usr/sbin/sendmail")
;; (makunbound 'sendmail-program)
;;
;; (setq sendmail-program "~/bin/intermail")

;; (defun eebgPUC ()
;;   (interactive)
;;   (eebg-channel-xterm "PUC" "Sucuri")
;;   (eechannel "PUC"))
;;
;; (defun eebgTWU ()
;;   (interactive)
;;   (eebg-channel-xterm "TWU" "Twu")
;;   (eechannel "TWU"))
;;
;; (defun eechannel-PUC () (interactive) (eechannel-xterm "PUC" "Sucuri"))
;; (defun eechannel-TWU () (interactive) (eechannel-xterm "TWU" "Twu"))
;; (defalias 'eebgPUC 'eechannel-PUC)
;; (defalias 'eebgTWU 'eechannel-TWU)
;;
;; (defun eebgLua () (interactive) (eechannel-xterm "Lua" "lua50"))

;; «eechannel-TWU» (to ".eechannel-TWU")
(defun eechannel-TWU () (interactive)
  (eechannel-xterm "TWU"
    "~/EXPECT/autopasswd ssh edrx@angg.twu.net"
    "-geometry +785+0"))


;;-------------------------------------------------
;; «remove-from-keymap»  (to ".remove-from-keymap")
;;
(defun remove-from-keymap (keymap key-to-remove)
  (unless (eq (car keymap) 'keymap) (error "Not a sparse keymap"))
  (setcdr keymap (remq (assoc key-to-remove keymap)
		       (cdr keymap))))

;; «tex-insert-quote»  (to ".tex-insert-quote")
;; (find-es "emacs" "eval-after-load")
;; (find-evariable 'tex-mode-map "tex-insert-quote")
;; (find-evardescr 'tex-mode-map)
;;
(eval-after-load "tex-mode"
  '(remove-from-keymap tex-mode-map ?\"))




;; (find-eetcfile "NEWS" "undo-outer-limit")
;; (setq undo-outer-limit-function 'undo-outer-limit-truncate)
;; Always accept truncation of undo data, never ask:
;;
(defun undo-outer-limit-my-truncate (&rest rest) t)
(setq undo-outer-limit-function 'undo-outer-limit-my-truncate)

(setq ee-hyperlink-prefix "# ")
(setq add-log-full-name "Eduardo Ochs")
(setq add-log-mailing-address "eduardoochs@gmail.com")
;; (setq add-log-mailing-address "edrx@mat.puc-rio.br")

;; (find-efile "")
;; (find-efile "progmodes/tcl.el")
;;
(setq tcl-proc-list
  '("proc" "method" "itcl_class" "body" "configbody" "class"
    "pseudoproc"))
;; (tcl-set-proc-regexp)
;; (tcl-set-font-lock-keywords)



;; For zsh:
;;   (setq-default comint-process-echoes t)
;; The default is:
;;   (setq-default comint-process-echoes nil)
;; 2011nov03: I discovered that
;;   (setq-default comint-process-echoes t)
;; was the cause of a long-standing bug...
;;   (find-es "emacs" "comint-gets-stuck")
;;   (find-es "emacs" "comint-process-echoes")




;; (find-sitelispfile "debian-el/deb-view.el")
(autoload 'deb-find            "deb-view" "Debian Archive File Finder" t)
(autoload 'deb-view-mode       "deb-view" "Debian Archive File Mode" t)
(autoload 'deb-view            "deb-view" "Debian Archive File Viewer" t)
(autoload 'deb-view-dired-view "deb-view" "Debian Archive File Viewer" t)
(setq auto-mode-alist (append '(("\\.deb$" . deb-view-mode)) auto-mode-alist))
;; (define-key dired-mode-map     "\C-d"     'deb-view-dired-view)


(add-hook 'dired-load-hook
          '(lambda ()
	     (define-key dired-mode-map     "\C-d"     'deb-view-dired-view)))



;;-----------------------------------------------
;; «hscroll-keys-mode»  (to ".hscroll-keys-mode")
;; (find-eevnewfile "eev-dev.el" "define-minor-mode eegud-keys-mode")
;; (hscroll-keys-mode)
;;
(define-minor-mode hscroll-keys-mode
  "Use M-> and M-< for horizontal scrolling."
  :global nil
  :lighter " hscr-k"
  '(("\M->" . (lambda (arg) (interactive "p") (scroll-left (or arg 1))))
    ("\M-<" . (lambda (arg) (interactive "p") (scroll-right (or arg 1))))))

;; Or:
' (global-set-key (kbd "s-.")
    (lambda (arg) (interactive "p") (scroll-left (or arg 1))))
' (global-set-key (kbd "s-,")
    (lambda (arg) (interactive "p") (scroll-right (or arg 1))))



;;-----------------------------------------------
;; «unquote-printable»  (to ".unquote-printable")
(defun unquote-printable () (interactive)
  (while (and (re-search-forward "=\\([0-9A-Fa-f][0-9A-Fa-f]\\|\n\\)"
				 (mark) t)
	      (y-or-n-p "Unquote this? ")
	      (let ((q (match-string 1)))
		(if (equal q "\n")
		    (replace-match "")
		  (replace-match
		   (format "%c" (read (concat "?\\x" q)))
		   'fixedcase))
		t))))



;;---------------------
;; «date»  (to ".date")
;; (find-enode "Single Shell")
;; (describe-function 'shell-command-on-region)
;; (date)
;; (date+time)
;; (format-time-string "%Y%b%d")
;; (find-elnode "Time Parsing")
;; (find-sh "date")
;; (find-sh "date --help")
;; (find-sh "date +%d/%b/%Y | tr A-Z a-z")
;;
;; This version runs both on *nix and on M$. 2005nov16
(defun date-as-string (&optional arg) (interactive "P")
  "Return the current date as a string; ARG determines the format."
  (cond ((eq arg 1) (downcase (format-time-string "%Y%b%d %k:%M")))
	((eq arg 2) (format-time-string "%Y%b%d %k:%M"))
	((eq arg 3) (format-time-string "%Y%m%d55555")) ; for makecdrdaotoc
	((eq arg 4) (format-time-string "%k:%M:%S "))
	((eq arg 5) (format-time-string "%Y%m%d"))      ; for eev.deb
	((eq arg 7) (format-time-string "%02H:%M"))
	((eq arg 8) (format-time-string "%Y-%m-%d"))
	((eq arg 9) (downcase (format-time-string "%d/%b/%Y %k:%M")))
	((eq arg 99) (downcase (format-time-string "%Y%b%d %a")))
	(t          (downcase (format-time-string "%Y%b%d")))))

(defun date (&optional arg) (interactive "P")
  "Insert the current date."
  (insert (date-as-string arg)))

;; (eev "dpkg-reconfigure locales")
;; (find-node "(gawk)String Functions")
;; (find-node "(coreutils)Padding and other flags")
;; (find-node "(coreutils)Relative items in date strings")
;; (find-node "(libc)Locale Categories")
;;
(defun Data (&optional yesterday)
  (interactive "P")
  (insert (shell-command-to-string
           (format "LC_ALL=pt_BR \\
                    date -d '%d days' '+%%A, %%-e de %%B, %%Y' \\
                      | awk '{print toupper(substr($0,1,1)) substr($0,2)}'"
		   (if yesterday -1 0)))))

(define-key eev-mode-map "\M-d"  'date)
;; (global-set-key "\M-d" 'date)




;;-------------------------------------------
;; «yank-first-line»  (to ".yank-first-line")
;;
(defun yank-first-line () (interactive)
  "Yanks the first line of the killed text and does a RET.
Insert the first line from the latest kill-ring entry and run the
action associated to the RET key.  The kill-ring entry is then altered
so that subsequent calls of yank-first-line will return successive
lines."
  (let ((bigstr (car kill-ring)))
    (cond ((string-match "^\\([^\n]*\\)\n" bigstr)
	   (let ((firstline (match-string 1 bigstr))
		 (rest (substring bigstr (match-end 0))))
	     (insert firstline)
	     (call-interactively (key-binding "\r"))
	     (setcar kill-ring rest)))
	  ((equal bigstr ""))
	  (t (insert bigstr)
	     (call-interactively (key-binding "\r"))
	     (setcar kill-ring "")))))

;; (global-set-key "\M-P" 'yank-first-line)
;; (find-elongkey-links "M-P  ;; eewrap-pdflike")




;;---------------------
;; «myip»  (to ".myip")
;; (find-angg ".zshrc" "myip-ppp0")
;; (find-sh  "sudo ifconfig")
;; (find-sh "/sbin/ifconfig")
;; (defun myip () (interactive) (insert (find-zsh0 "myip-ppp0")))
;; (defun myip-as-string ()
;;   (find-sh0 "ifconfig ppp0 | awk 'NR==2' | tr : ' ' | awk '{print $3}'"))
(defun myip-ppp0-as-string ()
  (find-sh0 "ifconfig ppp0 | awk 'NR==2' | tr : ' ' | awk '{print $3}'"))
(defun myip-ppp1-as-string ()
  (find-sh0 "ifconfig ppp1 | awk 'NR==2' | tr : ' ' | awk '{print $3}'"))
(defun myip-eth0-as-string ()
  (find-sh0 "ifconfig eth0 | awk 'NR==2' | tr : ' ' | awk '{print $3}'"))
(defun myip-ppp0 () (interactive) (insert (myip-ppp0-as-string)))
(defun myip-eth0 () (interactive) (insert (myip-eth0-as-string)))

;; (find-efunction 'network-interface-info)
;; (network-interface-info "eth0")
;; (network-interface-info "lo")
;; (network-interface-info "ppp0")
;; (network-interface-info "ppp1")
;; (interface-ip "ppp0")
;; (interface-ip "ppp1")
;;
(defun interface-ip (ifname)
  (let* ((ifinfo (network-interface-info ifname)))
    (if (and ifinfo (car ifinfo))
	(let* ((addr (car ifinfo))
	       (a0 (aref addr 0))
	       (a1 (aref addr 1))
	       (a2 (aref addr 2))
	       (a3 (aref addr 3)))
	  (format "%d.%d.%d.%d" a0 a1 a2 a3)))))

(defun myip-ppp0-or-ppp1-as-string ()
  (or (interface-ip "ppp0") (interface-ip "ppp1")))

(defun myip-as-string () (myip-ppp0-as-string))
(defun myip-as-string () (myip-ppp1-as-string))
(defun myip-as-string () (myip-ppp0-or-ppp1-as-string))
(defun myip () (interactive) (insert (myip-as-string)))

(defun myip-persephone-as-sexp ()
  `(progn (kill-new ,(format "%s persephone" (myip-as-string)))
	  (find-fline "$ASROOT/etc/hosts")))

(defun myip-persephone ()
  (interactive)
  (insert (format "%S" (myip-persephone-as-sexp))))

;; (myip-persephone-as-sexp)
;; (myip-persephone)


(seen 4179)


;;-----------------------------
;; «eeblogme»  (to ".eeblogme")
;;
;; (find-blogmefile "")
(code-c-d "blogme"  "~/blogme/"  :anchor)
(code-c-d "blogme3" "~/blogme3/" :anchor :grep)
(code-c-d "blogme4" "~/blogme4/" "blogme4" :anchor :grep)
(setq ee-file-html   "/tmp/ee.html")

(setq ee-file-blogme "/tmp/ee.blogme")
(setq ee-blogme-prog  "~/blogme/blogme2.lua")
(setq ee-blogme-command
      (format "%s -o %s -i %s" ee-blogme-prog ee-file-html ee-file-blogme))
(setq ee-blogme3-prog "lua51 ~/blogme3/blogme3.lua")
(setq ee-blogme-command
      (format "%s -o %s -i %s" ee-blogme3-prog ee-file-html ee-file-blogme))
(setq ee-blogme-header (format "[htmlize %s\n" ee-file-blogme))
(setq ee-blogme-footer "\n]\n\n[#
 # Local Variables:
 # coding: raw-text-unix
 # modes: (fundamental-mode blogme-mode)
 # End:
 #
 #]
")

;; Check the footer: (eeblogme-now "[ERR]")

;; «eeblogme-now»  (to ".eeblogme-now")
;;
(defun eeblogme (s &optional e)
  (interactive "r")
  (ee-write s e ee-blogme-header ee-blogme-footer ee-file-blogme))

(defun eeblogme-now (s &optional e)
  (interactive "r")
  (eeblogme s e)
  (let ((output (find-sh0 ee-blogme-command)))
    (eev (format "firefox %s" ee-file-html))
    (if (string= output "") (message "ok") (find-estring output))))

;; (eeb-define 'eeblogme-bounded     'eeblogme     'ee-delimiter-hash nil t t)
;; (eeb-define 'eeblogme-now-bounded 'eeblogme-now 'ee-delimiter-hash nil t t)



;;-------------------------------------------------------------
;; «blogme-mode-syntax-table»  (to ".blogme-mode-syntax-table")
;; «blogme-mode»  (to ".blogme-mode")
;; (find-elnode "Syntax Table Functions")
;; (find-eapropos "syntax-table")
;; (with-syntax-table blogme-mode-syntax-table (describe-syntax))
;;
(setq blogme-mode-syntax-table
	(copy-syntax-table text-mode-syntax-table))
(modify-syntax-entry ?\( "." blogme-mode-syntax-table)
(modify-syntax-entry ?\) "." blogme-mode-syntax-table)
(modify-syntax-entry ?{  "." blogme-mode-syntax-table)
(modify-syntax-entry ?}  "." blogme-mode-syntax-table)

;; (find-angg "elisp/hisex.el")
(autoload 'hisex-mode "hisex")
(defface hisex-face '((t :background "red4"))
  "The face used to highlight sexps.")

(defun hisex-mode-off () (interactive) (hisex-mode 0))

;; (find-node "(elisp)Major Mode Basics")
;; (find-efunction 'generic-mode-internal)
(defun blogme-mode ()
  (interactive)
  (kill-all-local-variables)
  (setq major-mode 'blogme-mode)
  (setq mode-name "Blogme")
  (setq font-lock-defaults '())
  (set-syntax-table blogme-mode-syntax-table)
  (add-hook 'change-major-mode-hook 'hisex-mode-off nil 'local)
  (hisex-mode 1))

;;------------------------------------------------/

;; «blogme4»  (to ".blogme4")

;; eepitch-comint-at is defined at:
;; (find-eev "eepitch.el")
;; (find-eev "eepitch.el" "eepitch-comint-at")
;; (find-eev "eepitch.el" nil "eepitch-comint-at")

;; (code-c-d "blogme4" "~/blogme4/" "blogme4" :anchor :grep)
(code-c-d "blogme4" "~/blogme4/" "blogme4" :anchor)
(defun eepitch-blogme4 () (interactive)
  (eepitch-comint-at "~/blogme4/" "blogme4" "lua5.1 -l blogme4 -i"))

;; «dednat5»  (to ".dednat5")
;; (find-dn5 "")
;; (find-dn5 "build.lua")
;; (find-dn5 "options.lua")
;; (find-dn5 "repl.lua")
;; (find-angg "bin/dednat5")
(code-c-d "dn5" "~/dednat5/" :anchor)
(code-c-d "dn6" "~/LATEX/dednat6/" :anchor)
(code-c-d "dednat6"    "~/dednat6/" :anchor)
(code-c-d "dednat6lua" "~/dednat6/dednat6/" :anchor)
;; (defun eepitch-dednat5 () (interactive)
;;   '(eepitch-comint-at "~/dednat5/" "dednat5" "lua5.1 -l dednat5 -i"))
(defun eepitch-dednat5 () (interactive)
  (eepitch-comint "dednat5" "dednat5 -e repl()"))
(defun eepitch-dn5 () (interactive)
  (eepitch-comint "dednat5" "dednat5 -e repl()"))


;;------------------------------------------------/


(defun u8-to-l1 (s e)
  (interactive "r")
  (shell-command-on-region s e "recode u8..l1" nil t))
(defun l1-to-u8 (s e)
  (interactive "r")
  (shell-command-on-region s e "recode l1..u8" nil t))

(defalias 'u8   'u8-to-l1)
(defalias 'u8l1 'u8-to-l1)
(defalias 'l1   'l1-to-u8)
(defalias 'l1u8 'l1-to-u8)

(defun find-file-this-line () (interactive)
  (find-fline (ee-url-to-fname (buffer-substring (ee-bol) (ee-eol)))))

;; «eevnow»  (to ".eevnow")
;; (find-fline "~/EXPECT/eevsh")
;; (find-eevnewfile "eevsh") <-- not yet
;;
;; (defun eevnow (s e suffix)
;;   (interactive "rsSuffix: ")
;;   (eev s e)
;;   (ee-write "ee\r" nil "" "" "~/eev-0.94/ee.eeg.onsigdo")
;;   (shell-command-to-string
;;    (format "kill -USR1 $(cat ~/eev-0.94/ee.eeg.pid.%s); echo -n $?"
;;            suffix)))

;; (defun eevnow (s &optional e)
;;   (interactive "r")
;;   (eev s e)
;;   (eech "ee\n"))
;;
;; (defmacro ee-at (anchor &rest body)
;;   `(save-excursion
;;      (ee-goto-position (format ee-anchor-format ,anchor))
;;      . ,body))
;;
;; (defmacro ee-at-file (fname anchor &rest body)
;;   (with-current-buffer (find-file-noselect fname)
;;     (apply 'ee-goto-position (format ee-anchor-format ,anchor))
;;     . ,body))



(defmacro if-xemacs    (&rest body) `(when   (featurep 'xemacs) . ,body))
(defmacro if-gnu-emacs (&rest body) `(unless (featurep 'xemacs) . ,body))

(code-c-d "xe"    "/usr/share/xemacs-21.4.15/lisp/" "xemacs21/xemacs")
(code-c-d "xel"   "/usr/share/xemacs-21.4.15/lisp/" "xemacs21/lispref")
(code-c-d "xefaq" "/usr/share/xemacs-21.4.15/lisp/" "xemacs21/xemacs-faq")

;; (find-xenode "")
;; (find-xelnode "")
;; (find-xefaqnode "")



;;-----------------------------------------
;; «find-w3m-links»  (to ".find-w3m-links")
(defun ee-links-for-findxxxw3m-1 (c d path)
  (list (intern (format "find-%sw3m" c))
	(ee-remove-prefix d path)))

(defun ee-links-for-findxxxw3m (path)
  (mapcar (lambda (c-d) (ee-pph (ee-links-for-findxxxw3m-1
				 (car c-d) (nth 1 c-d) path)))
	  (code-c-d-prefixes path)))

(defun find-w3m-links-old (fname &rest rest)
  (interactive (list (or w3m-current-url (buffer-file-name) default-directory)))
  (if (ee-prefixp "file://" fname)
      (setq fname (ee-remove-prefix "file://" fname)))
  (apply 'find-elinks-old
	 (list (ee-links-for-findxxxw3m (ee-expand fname)))
	 rest))

(defun ee-find-xxxw3m-sexps (fname)
  (ee-code-c-d-pairs-eval
   fname
   '(list (ee-intern "find-%sw3m" c) fname-)))

(defun find-w3m-links (fname &rest rest)
  (interactive (list (or w3m-current-url (buffer-file-name) default-directory)))
  (if (ee-prefixp "file://" fname)
      (setq fname (ee-remove-prefix "file://" fname)))
  (apply 'find-elinks
	 `((find-w3m-links ,fname ,@rest)
	   ,(concat "file://" fname)
	   ,fname
	   ,@(ee-find-xxxw3m-sexps (ee-expand fname)))
	 rest))

;; (define-key eev-mode-map "\M-hw"    'find-w3m-links)
;; (define-key eev-mode-map "\M-h\M-w" 'find-w3m-links)

(defun find-w3m-anchors (&rest rest)
  (interactive)
  (apply 'find-epp
	 (with-current-buffer "*w3m*"
	   (get-char-property (point) 'w3m-name-anchor2))
	 rest))

;; (define-key eev-mode-map "\M-h3"    'find-w3m-anchors)
;; (define-key eev-mode-map "\M-h\M-3" 'find-w3m-anchors)




;;--------[ etc ]--------

;; (find-es "busybox" "busybox-1.2.0")
(code-c-d "busybox" "~/usrc/busybox-1.2.0/")
;; (code-c-d "uclibc" "~/bigsrc/uclibc/uclibc-0.9.26-cvs20040816/")
;; (find-es "anatocc" "uclibc-upstream")
(code-c-d "uclibc" "~/bigsrc/uClibc-0.9.29/" :grep)


;; «safe-local-variable»  (to ".safe-local-variable")
;; (find-elnode "File Local Variables" "safe-local-variable")
;; (find-elnode "Property Lists")
;; (find-elnode "Symbol Plists")
;; (find-egrep "grep -nH -e safe-local *.el")
;; (find-eevgrep "grep -nH -e comment-prefix *.el")
;;
;; (find-efunction 'risky-local-variable-p)
;; (find-es "emacs" "safe-local-variable")
;; (find-elnode "File Local Variables" "`-function'")
;; `ee-temp-bounded-function' isn't used anymore, and the warning is
;; annoying.
;;
(put 'ee-temp-bounded-function 'safe-local-variable t)
(put 'ee-comment-prefix        'safe-local-variable 'stringp)
;; (symbol-plist 'ee-comment-prefix)

;; (code-c-d-anchor "eeva" "$EEVDIR/article/")
;; (code-c-d-old    "eeva" "$EEVDIR/article/" :anchor :xdvi)
;; (find-eevafile "")





;; «latexbase» (to ".latexbase")
(code-c-d "latexbase" "/usr/share/texlive/texmf-dist/tex/latex/base/")
;; (find-latexbasefile "")
;; (find-latexbasefile "latex.ltx")
;; (find-latexbasefile "article.cls")
;; (find-latexbasefile "size12.clo")



;;-----------------------------
;; «classes» (to ".classes")
;; (find-es "tex" "classes")
;; (find-tlsh "find * | sort | grep classes.pdf")
;; (find-fline "/usr/local/texlive/2019/texmf-dist/doc/latex/base/" "classes.pdf")
(code-pdf-page "classes"  "/usr/local/texlive/2019/texmf-dist/doc/latex/base/classes.pdf")
(code-pdf-text "classes"  "/usr/local/texlive/2019/texmf-dist/doc/latex/base/classes.pdf")
;; (find-classespage)
;; (find-classestext)

;; (find-classespage 42 "the figure environment")
;; (find-classestext 42 "the figure environment")
;; (find-classespage 43 "\\abovecaptionskip")
;; (find-classestext 43 "\\abovecaptionskip")

;; Old:
;; «classes.dtx»  (to ".classes.dtx")
;; (find-es "tex" "classes.dtx-dvi")




;;-----------------------------
;; «source2e»   (to ".source2e")
;; (find-angg ".emacs.papers" "source2e")
;; (find-es "tex" "source2e")
;; (find-tlsh "find * | sort | grep source2e")
;; (find-fline "/usr/local/texlive/2018/texmf-dist/doc/latex/base/" "source2e.pdf")
;;(code-c-d      "source2e" "/usr/local/texlive/2018/texmf-dist/doc/latex/base/")
;;(code-pdf-page "source2e" "/usr/local/texlive/2018/texmf-dist/doc/latex/base/source2e.pdf")
;;(code-pdf-text "source2e" "/usr/local/texlive/2018/texmf-dist/doc/latex/base/source2e.pdf" 10)
;; (find-source2efile "" "source2e.pdf")
;; (find-source2epage)
;; (find-source2etext)
;; (find-source2epage (+ 10 609) "Index")
;; (find-source2etext (+ 10 609) "Index")




;; 2017ago15:
;; (find-fline "/usr/share/doc/texlive-doc/latex/base/")
;; (code-xpdf     "source2e" "/usr/share/doc/texlive-doc/latex/base/source2e.pdf")
;; (code-pdf-text "source2e" "/usr/share/doc/texlive-doc/latex/base/source2e.pdf" 8)
;; (find-source2epage)
;; (find-source2etext)
;; (find-source2epage        1  "Contents")
;; (find-source2etext        1  "Contents")

;; (find-source2epage 'ltoutput)
;; (find-texbookpage 'appendixI)
;; http://lists.gnu.org/archive/html/eev/2005-06/msg00000.html

;; (find-es "tex" "source2e.dvi")
;; (find-source2exdvi "source2e.dvi")
;; (find-source2efile "ltlists.dtx")
;; (find-source2efile "")
;; (find-source2efile "source2e.ind")
;; (find-source2efile "source2e.toc")
;; (find-source2esh "grep dtx source2e.toc")
;; (find-source2epage)
;; (find-source2epage 'ltdefns 2)
;; (find-source2epage 'lttab)

;; (find-eevex "")
;; (find-eevex "tex.e" "find-source2epage")

;; «find-source2epage»  (to ".find-source2epage")
;; Very old - and commented out.

;; (code-c-d-old "source2e" "~/usrc/latex/base/" :xdvi)
;;
;; (defvar ee-source2e-plist
;;   '(ltdirchk   1 ltplain   13 ltvers    24 ltdefns   26 ltalloc   40
;;     ltcntrl   42 lterror   46 ltpar     55 ltspace   57 ltlogos   69
;;     ltfiles   70 ltoutenc  80 ltcounts 112 ltlength 116 ltfssbas 117
;;     ltfsstrc 137 ltfsscmp 160 ltfssdcl 165 ltfssini 186 fontdef  192
;;     preload  209 ltfntcmd 213 ltpageno 221 ltxref   222 ltmiscen 226
;;     ltmath   235 ltlists  245 ltboxes  260 lttab    271 ltpictur 293
;;     ltthm    315 ltsect   319 ltfloat  329 ltidxglo 345 ltbibl   347
;;     ltpage   350 ltoutput 353 ltclass  408 lthyphen 426 ltfinal  428
;;     index    487)
;; "A plist that says at which page of source2e.dvi each .dtx file begins.
;; The plist is hand-built from (find-source2esh \"grep dtx source2e.toc\")
;; and is used by `find-source2epage'.")
;;
;; (defun find-source2epage (&optional pagespec add &rest rest)
;;   (interactive)
;;   (let* ((n (plist-get ee-source2e-plist pagespec))
;; 	 (page (if n (+ 9 n (if (numberp add) add 0)) pagespec)))
;;     (find-source2exdvi "source2e.dvi" page)))

;; (find-eevex "tex.e" "find-texbookpage")

;; (code-c-d-old "texbook" "~/usrc/texbook/" :xdvi)
;;
;; (defvar ee-texbook-plist
;;   '(chapter1    1 chapter2    3 chapter3    7 chapter4   13 chapter5   19
;;     chapter6   23 chapter7   37 chapter8   43 chapter9   51 chapter10  57
;;     chapter11  63 chapter12  69 chapter13  85 chapter14  91 chapter15 109
;;     chapter16 127 chapter17 139 chapter18 161 chapter19 185 chapter20 199
;;     chapter21 221 chapter22 231 chapter23 251 chapter24 267 chapter25 285
;;     chapter26 289 chapter27 295
;;     appendixA 305 appendixB 339 appendixC 367 appendixD 373 appendixE 403
;;     appendixF 427 appendixG 441 appendixH 449 appendixI 457 appendixJ 483)
;; "A plist that says at which page of texbook.dvi each chapter begins.
;; The plist is hand-built from:
;;   (find-texbookfile \"texbook.tex\" \"1. The Name of the Game. 1.\")
;; and is used by `find-texbookpage'.")

;; «find-texbookpage-old»  (to ".find-texbookpage-old")
;; Very old - commented out

;; (defun find-texbookpage (&optional pagespec add &rest rest)
;;   (interactive)
;;   (let* ((n (plist-get ee-texbook-plist pagespec))
;;         (page (if n (+ 11 n (if (numberp add) add 0)) pagespec)))
;;     (find-texbookxdvi "texbook.dvi" page)))


;; «find-texbookpage»  (to ".find-texbookpage")
;; (find-angg ".emacs.papers" "texbook")
;; (find-es "tex" "texbook")
;; (find-texbookfile "")
;; (find-eevex "tex.e" "find-texbookpage")
(code-c-d      "texbook" "~/usrc/texbook/")
(code-dvi      "texbook" (ee-texbookfile "texbook.dvi"))
(code-pdf-page "texbook" (ee-texbookfile "texbook.pdf"))
(code-pdf-text "texbook" (ee-texbookfile "texbook.pdf") 12)
;; (find-texbookfile "texbook.tex")
;; (find-texbookpage 1)
;; (find-texbooktext)

;; (find-es "tex" "mfbook")
;; (find-mfbookfile "")
(code-c-d       "mfbook" "~/usrc/mfbook/")
(code-dvi       "mfbook" (ee-mfbookfile "mfbook.dvi"))
(code-pdftotext "mfbook" (ee-mfbookfile "mfbook.pdf"))
;; (find-mfbookfile "mfbook.tex")
;; (find-mfbookpage 1)
;; (find-mfbooktext)

;; «find-amsmathpage» (to ".find-amsmathpage")
;; (find-es "tex" "amslatex")
;; (find-es "tex" "MaxMatrixCols")
;;
;; (find-fline         (ee-amslmathfile ""))
;; (find-pspage        (ee-amslmathfile "amsldoc.pdf"))
;; (find-pspage-links '(ee-amslmathfile "amsldoc.pdf"))
;; (code-xpdf      "amsldoc" (ee-amslmathfile "amsldoc.pdf"))
;; (code-pdftotext "amsldoc" (ee-amslmathfile "amsldoc.pdf"))
;; (code-xpdf      "amsmath" (ee-amslmathfile "amsmath.pdf"))
;; (code-pdftotext "amsmath" (ee-amslmathfile "amsmath.pdf"))
;;
;; (find-fline "/usr/share/doc/texlive-doc/latex/")
(code-xpdf      "amsldoc" "/usr/share/doc/texlive-doc/latex/amsmath/amsldoc.pdf")
(code-pdftotext "amsldoc" "/usr/share/doc/texlive-doc/latex/amsmath/amsldoc.pdf")
(code-xpdf      "amsmath" "/usr/share/doc/texlive-doc/latex/amsmath/amsmath.pdf")
(code-pdftotext "amsmath" "/usr/share/doc/texlive-doc/latex/amsmath/amsmath.pdf")
;; (find-amsldocpage 1)
;; (find-amsldoctext)
;; (find-amsmathpage 1)
;; (find-amsmathtext)




;; «wdg»  (to ".wdg")
;; (find-es "html" "wdg-upstream")
;; (find-es "html" "wdg")
;;
;; (code-c-d "wdgref" "/usr/share/doc/wdg-html-reference/reference/")
;; (code-c-d "wdg40"  "/usr/share/doc/wdg-html-reference/reference/html40/")
;; (code-c-d "wdgcss" "/usr/share/doc/wdg-html-reference/reference/css/")
(code-c-d "wdgref" "~/usrc/wdg/")
(code-c-d "wdg40"  "~/usrc/wdg/html40/")
(code-c-d "wdgcss" "~/usrc/wdg/css/")
;;
;; (find-wdgreffile "")
;; (find-wdg40w3m "index.html")
;; (find-wdg40w3m "alist.html")
;; (find-wdgrefw3m "css/index.html")
;; (find-wdgrefw3m "css/structure.html")
;; (find-wdgcssw3m "font/index.html")
;; (find-wdgcssw3m "font/index.html" "backup")
;; (find-wdgcssgrep "grep -niH -e font *")

;; http://www.mozilla.org/docs/dom/domref.pdf
(code-xpdf      "domref" "$S/http/www.mozilla.org/docs/dom/domref.pdf")
(code-pdftotext "domref" "$S/http/www.mozilla.org/docs/dom/domref.pdf")
;; (find-domrefpage         1  "Contents")
;; (find-domrefpage        12  "Testing the DOM API")
;; (find-domrefpage (+ 16  73) "DOM window Reference")
;; (find-domrefpage (+ 26 307) "DOM HTML Elements Reference")
;; (find-domreftext "")



;;---------[ tese de doutorado + etc ]------------
(code-c-d "dout" "/oldfs/7/pandahome/edrx/LATEX/dout/" :anchor)
(code-dvi "dout" "/oldfs/7/pandahome/edrx/LATEX/dout/chapters.dvi")
;; (find-doutfile "")
;; (find-doutpage 1)
(code-c-d "doutslides" "/oldfs/7/pandahome/edrx/LATEX/" :anchor)
(code-dvi "doutslides" "/oldfs/7/pandahome/edrx/LATEX/2003a-slides.dvi")
;; (find-doutslidesfile "")
;; (find-doutslidesfile "2003a-slides.tex")
;; (find-doutslidespage 1)




;;--------[ howm ]--------
;; «howm»  (to ".howm")
;; I am not using Howm anymore - I'm using Org instead.
;; (find-es "howm")
;; (find-fline "~/DTO/.emacs.howm")
;;
;; (code-c-d "howm"        "~/usrc/howm-1.3.2/")
;; (add-to-list 'load-path "~/usrc/howm-1.3.2/")
;; (code-c-d "howm"        "~/usrc/howm-test/")
;; (add-to-list 'load-path "~/usrc/howm-test/")
;; (autoload 'howm-mode "howm" nil t)

;;;_  , howm-view-*
;; (setq howm-view-summary-persistent nil)
;; (setq howm-view-contents-persistent nil)
;; (setq howm-view-keep-one-window t)  ; when you press '1' it sticks
;; (setq howm-view-summary-name "*howm S:%s*")
;; (setq howm-view-contents-name "*howm C:%s*")

;; (require 'howm nil t)
;; (setq howm-directory "~/HOWM/")
;; ;; (setq howm-file-name-format "%Y-%m-%d.howm")
;; (setq howm-file-name-format "%Y-%m-%d")
;; (setq howm-menu-file ".howm")
;; (howm-menu)

;; «howm-create-named-file»  (to ".howm-create-named-file")
;; ;; http://lists.sourceforge.jp/mailman/archives/howm-eng/2005/000010.html
;; ;; (find-howm "")
;; (defun howm-create-named-file (fname)
;;   (interactive (list (read-file-name "New howm file: " howm-directory)))
;;   (cond ((find-buffer-visiting fname) (error "File being visited"))
;; 	((file-exists-p fname)        (error "File already exists"))
;; 	(t (write-region (format "  -*- coding: raw-text -*-\n= %s\n"
;; 				 (file-name-nondirectory fname)) nil
;; 				 fname))))
;; 
;; ;; The default binding for (kbd "C-c , a") is howm-list-all - replace
;; ;; it with something that makes it easy to use several directories.
;; ;;
;; ;; (find-ekeymapdescr global-map "C-c , a")
;; ;; (global-set-key (kbd "C-c , a") 'howm-list-all-with-edrx-arg)
;; ;; (global-set-key (kbd "C-c , a") 'howm-list-all)
;; ;; (eek "M-h M-k C-c , a")
;; ;; (find-fline "~/HOMW/")
;; ;; (find-fline "~/HOMW4/")
;; 
;; (defun howm-list-all-with-edrx-arg (arg)
;;   "Like `howm-list-all', but when invoked with an argument set `howm-directory'.
;; When ARG is nil use \"~/HOMW/\", when ARG is a number, for
;; example, 32, use \"~/HOMW32/\"."
;;   (interactive "P")
;;   (if arg (setq howm-directory
;; 		(format "~/HOWM%s/" (if (eq arg 0) "" arg))))
;;   (howm-list-all))
;; 
;; (global-set-key (kbd "C-c , a") 'howm-list-all-with-edrx-arg)
;; 
;; ;; (find-howmfile "howm.el" "(require 'riffle)")
;; ;; (find-howmfile "riffle.el" "[backspace] 'scroll-other-window-down")
;; ;; (find-howmfile "riffle.el" "\"\\C-h\" 'scroll-other-window-down")
;; ;; (find-ekeymapdescr riffle-summary-mode-map)
;; 
;; (when (boundp 'riffle-summary-mode-map)
;;   (remove-from-keymap riffle-summary-mode-map 'backspace)
;;   (remove-from-keymap riffle-summary-mode-map ?\C-h))
;; 
;; ;; (find-howmfile "")
;; ;; (find-howmfile "doc/")
;; ;; (find-howmfile "doc/README.rd")
;; ;; (progn (find-howmfile "doc/README.rd") (howm-mode))
;; ;; (find-howmfile "howm.el")
;; ;; (find-howmfile "howm-mode.el")
;; 
;; ;; (find-efunction 'howm-menu)
;; ;; (require 'howm)


;; «hm»  (to ".hm")
;; (defun hm (&optional arg)
;; "Like howm-mode, but shorter, smarter, and more adequate (2005jul29)"
;;   (interactive)
;;   (if (null arg)
;;       (if howm-mode (normal-mode) (howm-mode 1))
;;     (if (> arg 0) (howm-mode 1) (normal-mode))))

;; «find-edrxhowm»  (to ".find-edrxhowm")
;; (code-c-d "edrx" "~/HOWM/")
;; (defun find-edrxhowm (file &rest pos-spec-list)
;;   (interactive (list ""))
;;   (setq howm-directory "~/HOWM/")
;;   (find-edrxfile file)
;;   (unless (string= file "") (hm 1))
;;   (apply 'ee-goto-position pos-spec-list))
;;
;; (defun find-edrxhowm+ (file &rest pos-spec-list)
;;   (interactive
;;    (let ((stuff (ee-no-properties (ee-stuff-around-point "A-Za-z0-9-+_:."))))
;;      ;; (list (read-file-name "Howm page: " "~/HOWM/" "" nil stuff))
;;      (list (read-string "Howm page: " stuff))
;;      ;; (list stuff)
;;      ))
;;   (apply 'find-edrxhowm file pos-spec-list)
;;   (if (= (point-min) (point-max))
;;       (let ((m (buffer-modified-p (current-buffer))))
;;         (insert "= " file "\n")
;;         (set-buffer-modified-p m)))
;;   (hm 1))
;;
;; (define-key eev-mode-map "\M-\r" 'find-edrxhowm+)
;;
;; test on this word: Heroes

;; ;; http://lists.sourceforge.jp/mailman/archives/howm-eng/2005/000004.html
;; ;;
;; ' (defun find-filehowm (file &optional title)
;;     (find-file (expand-file-name file howm-directory))
;;     (howm-mode 1)
;;     (when title
;;       (goto-char (point-min))
;;       (re-search-forward (concat "^= +" (regexp-quote title) "$"))))





;; «iheader»  (to ".iheader")
;; See: (find-node "(emacs)File Variables")
;;      (find-node "(emacs)Initial Options" "`--unibyte'")
(defun iheader ()
  (interactive)
  (setq buffer-file-coding-system 'raw-text-unix)
  (insert " -*- encoding: raw-text-unix -*-\n"))

;; «reload»  (to ".reload")
;; See: (find-efunction 'add-file-local-variable-prop-line)
;;      (find-elfile "files-x.el" "For this change to take effect")
;;      (find-efunction 'revert-buffer)
(defun reload ()
  "Reload the current file. Like `normal-mode', but stronger."
  (interactive)
  (let ((bfn (buffer-file-name))
        (lin (line-number-at-pos)))
    (save-buffer)
    (kill-buffer nil)
    (find-fline bfn lin)))

;; «no-mode-line»  (to ".no-mode-line")
;; (find-evardescr 'mode-line-format "nil means don" "t display a mode line")
(defun no-mode-line ()
  (interactive)
  (setq mode-line-format nil))




;;---------------------------------
;; «dednat4»  (to ".dednat4")
;; (find-dn4ex "dednat4.el")
;; (find-node "(web2c)tex invocation")
;; (find-node "(kpathsea)Path sources")
;; (find-es "tex" "TEXINPUTS")
;;
;; (find-dednat4 "examples/edrxmain.tex")
;; (find-dn4 "README" "eedn4-lisp")
;; (find-dn4file "")
;; (find-fline "~/LATEX/
;;
;; «dednat4-setup»  (to ".dednat4-setup")
;; (find-dn4ex "")
;; (find-dn4 "dednat4.el")
;; (find-dn4 "downloads/")
;; (find-dn4 "Makefile")
;; (eev "cd ~/dednat4/; make downloads")
;; (find-sh "cd ~/dednat4/; cp -v proof.sty diagxy.tex ~/LATEX/")

(defun eedn4 (s e)
"Write the region between S and E to ~/LATEX/ee.tex and write an
e-script to $EE; then running `ee' in a shell will run
dednat4.lua and after that latex on ~/LATEX/tmp.tex (tmp.tex is a
wrapper around ee.tex) and display the resulting DVI file.
See: (find-efunction 'eedn4)
     (find-fline \"~/LATEX/tmp.tex\")
     (find-fline \"~/LATEX/ee.tex\")"
  (interactive "r")
  (ee-write s e "" "" "~/LATEX/ee.tex")
  (eev "cd ~/LATEX/ &&
        cp -v edrxmain41.tex tmp.tex &&
        ~/dednat4/dednat4.lua tmp.tex &&
        latex tmp.tex &&
        rexdvi tmp.dvi"))

;; (eeb-define 'eedn4-bounded     'eedn4  'ee-delimiter-percent nil t t)
;; (eeb-define 'eedn4-%%-bounded  'eedn4  "\n%%*\n" nil t t)

(defun eedn4-script (&optional dir tmptex prog)
  (ee-template
   `(("~/LATEX/"       ,(or dir    "~/LATEX/"))
     ("edrxmain41.tex" ,(or tmptex "edrxmain41.tex"))
     ("dednat4"        ,(or prog   "~/dednat4/dednat41"))
     ("rexdvi"         ,(or rexdvi "rexdvi")))
   "cd {~/LATEX/} &&
    cp -v {edrxmain41.tex} tmp.tex &&
    {dednat4} tmp.tex &&
    latex tmp.tex &&
    rexdvi tmp.dvi"))

;; (eedn4-script)


;; «eedn4-51»  (to ".eedn4-51")
;; (find-dn4ex "edrxmain41.tex")
;;
(defun eedn4-51 (s &optional e)
  "Same as eedn4, but using lua51"
  (interactive "r")
  (ee-write s e "" "" "~/LATEX/ee.tex")
  (eev "cd ~/LATEX/ &&
    cp -v edrxmain41.tex tmp.tex &&
    ~/dednat4/dednat4 tmp.tex &&
    latex tmp.tex &&
    rexdvi tmp.dvi"))

(defun eedn4-51 (s &optional e)
  "Same as eedn4, but using dednat4, which uses lua51.
See: (eedn4-script \"~/LATEX/\" \"edrxmain41.tex\" \"~/dednat4/dednat41\")"
  (interactive "r")
  (ee-write s e "" "" "~/LATEX/ee.tex")
  (eev (eedn4-script "~/LATEX/" "edrxmain41.tex" "~/dednat4/dednat41")))


;; (eeb-define 'eedn4-51-bounded  'eedn4-51  'ee-delimiter-percent nil t t)

;; «eedn4a»  (to ".eedn4a")
;; (to "dn4-block")
;; (find-dn4ex "edrxmain41a.tex")
;; (find-dn4 "Makefile" "dednat41")
;;
(defun eedn4a (s &optional e)
  "Same as eedn4-51, but using \\documentclass[article]."
  (interactive "r")
  (ee-write s e "" "" "~/LATEX/ee.tex")
  (eev "cd ~/LATEX/ &&
        cp -v edrxmain41a.tex tmp.tex &&
        ~/dednat4/dednat41 tmp.tex &&
        latex tmp.tex &&
        rexdvi tmp.dvi"))

;; (eeb-define 'eedn4a-bounded  'eedn4a  'ee-delimiter-percent nil t t)

;; See: (find-bounded-intro "Defining new bounded functions")
;; (find-code-bounded 'eedn4a-bounded 'eedn4 "\n%*\n" nil t t)
;;      (code-bounded 'eedn4a-bounded 'eedn4 "\n%*\n" nil t t)
;;      (code-bounded 'eedn4a-bounded 'eedn4 "\n%*\n")

;; (find-code-bounded 'eev-bounded 'eev "\n#*\n")
;;      (code-bounded 'eev-bounded 'eev "\n#*\n")
;; (find-code-bounded 'eev-bounded 'eev 'ee-delimiter-hash)




(seen 4904)




;;;  ____      _          
;;; |  _ \ ___(_)_ __ ___ 
;;; | |_) / __| | '__/ __|
;;; |  _ < (__| | | | (__ 
;;; |_| \_\___|_|_|  \___|
;;;                       
;; «rcirc»  (to ".rcirc")
;; (find-angg ".emacs.mini" "rcirc")
;; (to "erc-freenode-join")
;; (find-es "emacs" "rcirc")
;;
(code-c-d "rcirc" "~/usrc/rcirc/" "rcirc")
;; (add-to-list 'load-path "~/usrc/rcirc/")
;; (add-to-list 'load-path "~/usrc/rcirc/" 'append)
;; (find-rcircnode "")
;; (find-rcircnode "Configuration" "`chanserv'")

;; (require 'rcirc)
;; (require 'rcirc nil 'no-error)
;; (find-fline "~/.passwds.sh")
;; (find-sh0 "~/.passwds.sh libera")

;; (find-rcircnode "Configuration" "rcirc-default-user-name")
;; (find-rcircnode "Configuration" "rcirc-default-full-name")
;; (find-rcircnode "Configuration" "rcirc-authinfo")
;; (find-evariable 'rcirc-scroll-show-maximum-output)
(setq rcirc-default-user-name      "Eduardo Ochs <http://anggtwu.net/>")
(setq rcirc-default-user-full-name "Eduardo Ochs <http://anggtwu.net/>")
(setq rcirc-default-full-name      "Eduardo Ochs <http://anggtwu.net/>")
(setq rcirc-authinfo
      `(("libera" nickserv "edrx" ,(find-sh0 "~/.passwds.sh libera"))
	))

(defun rcirc-defs () (interactive)
  (require 'rcirc)
  (rcirc-track-minor-mode 1)
  (setq rcirc-read-only-flag nil)
  (setq rcirc-time-format "")
  (setq                      rcirc-prompt "(%n) ")
  (set-face-foreground      'rcirc-prompt "sienna")
  (make-face                'rcirc-mode-line-nick)
  (set-face-bold-p          'rcirc-mode-line-nick nil)
  (set-face-foreground      'rcirc-mode-line-nick "sienna")
  (make-face                'rcirc-track-nick)
  (set-face-inverse-video-p 'rcirc-track-nick nil)
  (set-face-foreground      'rcirc-track-nick "sienna")
  (make-face                'rcirc-nick-in-message-full-line)
  (set-face-bold-p          'rcirc-nick-in-message-full-line nil)
  (setq                      rcirc-scroll-show-maximum-output nil)
  (global-set-key      [f2] 'rcirc-next-active-buffer)
  (define-key rcirc-mode-map (kbd "C-x C-s") 'ee-rcirc-save-buffer)
  )

(rcirc-defs)

;; (find-rcircfile "")
;; (find-rcircfile "rcirc.el")
;; (find-efunction 'save-buffer)
;; (find-efunction 'rename-buffer)
;; (find-elnode "Buffer File Name")
;; (find-elnode "Buffer File Name" "Command: set-visited-file-name")

;; «rcirc-save-buffer»  (to ".rcirc-save-buffer")
(defalias 'save-buffer-keep-buffer-name 'ee-rcirc-save-buffer)

(defun ee-rcirc-save-buffer (&rest args)
  "Like save-buffer, but doesn't changes the buffer name or the major mode."
  (interactive "p")
  (let ((bname (buffer-name))
	(change-major-mode-with-file-name nil))
    (save-excursion (apply 'save-buffer args))
    (rename-buffer bname)))

;; (find-ecolors)
;; (find-efaces "rcirc-special-modeline-face")
;; (find-efunction 'set-face-attribute)
;; (set-face-attribute  'rcirc-special-modeline-face nil :inherit 'mode-line)
;; (set-face-attribute  'rcirc-special-modeline-face nil :inherit nil)

;; «rcirc-channels»  (to ".rcirc-channels")

;; (find-freenode-links "e" "#eev")
;; (find-rcirc-intro)
(setq ee-freenode-ichannels "#eev")
(setq ee-freenode-achannels "#eev")
(setq ee-freenode-ichannels "#eev #emacs #emacsconf #emacs-beginners")
(setq ee-freenode-achannels "#eev #emacs #emacsconf #emacs-beginners")
(setq ee-freenode-ichannels "#eev #emacs #emacsconf #emacs-beginners #idris")
(setq ee-freenode-achannels "#eev #emacs #emacsconf #emacs-beginners #idris")
(setq ee-freenode-ichannels "#emacsconf #org-mode")
(setq ee-freenode-achannels "#emacsconf #org-mode")
(setq ee-freenode-ichannels "#eev #emacs #idris")
(setq ee-freenode-achannels "#eev #emacs #idris")
(setq ee-libera-ichannels "#eev #emacs #emacsconf #emacsconf-dev #emacsconf-gen")
(setq ee-libera-achannels "#eev #emacs #emacsconf #emacsconf-dev #emacsconf-gen")
(setq ee-libera-ichannels "#eev #emacs")
(setq ee-libera-achannels "#eev #emacs")

;; (defun e2 () (interactive) (find-freenode-2a "#eev"))
;; (defun e3 () (interactive) (find-freenode-3a "#eev"))
;; (defun m2 () (interactive) (find-freenode-2a "#emacs"))
;; (defun m3 () (interactive) (find-freenode-3a "#emacs"))
;; (defun h2 () (interactive) (find-freenode-2a "#haskell"))
;; (defun h3 () (interactive) (find-freenode-3a "#haskell"))
(defun e2 () (interactive) (find-libera-2a "#eev"))
(defun e3 () (interactive) (find-libera-3a "#eev"))
(defun m2 () (interactive) (find-libera-2a "#emacs"))
(defun m3 () (interactive) (find-libera-3a "#emacs"))
(defun f2 () (interactive) (find-libera-2a "#fennel"))
(defun f3 () (interactive) (find-libera-3a "#fennel"))
(defun h2 () (interactive) (find-libera-2a "#haskell"))
(defun h3 () (interactive) (find-libera-3a "#haskell"))
(defun a2 () (interactive) (find-libera-2a "#agda"))
(defun a3 () (interactive) (find-libera-3a "#agda"))
(defun t2 () (interactive) (find-libera-2a "#tcl"))
(defun t3 () (interactive) (find-libera-3a "#tcl"))
(defun x2 () (interactive) (find-libera-2a "#maxima"))
(defun x3 () (interactive) (find-libera-3a "#maxima"))

(defun b2 () (interactive) (find-libera-2a "#emacs-beginners"))
(defun b3 () (interactive) (find-libera-3a "#emacs-beginners"))
(defun g2 () (interactive) (find-libera-2a "#git"))
(defun g3 () (interactive) (find-libera-3a "#git"))
(defun c2 () (interactive) (find-libera-2a "#emacsconf"))
(defun c3 () (interactive) (find-libera-3a "#emacsconf"))
(defun q2 () (interactive) (find-libera-2a "#emacsconf-questions"))
(defun q3 () (interactive) (find-libera-3a "#emacsconf-questions"))
(defun p2 () (interactive) (find-libera-2a "#python"))
(defun p3 () (interactive) (find-libera-3a "#python"))
(defun i2 () (interactive) (find-libera-2a "#idris"))
(defun i3 () (interactive) (find-libera-3a "#idris"))
(defun o2 () (interactive) (find-libera-2a "#org-mode"))
(defun o3 () (interactive) (find-libera-3a "#org-mode"))
(defun l2 () (interactive) (find-libera-2a "#lua"))
(defun l3 () (interactive) (find-libera-3a "#lua"))
(defun g2 () (interactive) (find-libera-2a "#grub"))
(defun g3 () (interactive) (find-libera-3a "#grub"))
(defun d2 () (interactive) (find-libera-2a "#dependent"))
(defun d3 () (interactive) (find-libera-3a "#dependent"))
(defun eb2 () (interactive) (find-libera-2a "#emacs-br"))
(defun eb3 () (interactive) (find-libera-3a "#emacs-br"))



;; «rcirc-spotchat»  (to ".rcirc-spotchat")
;; (find-es "mint" "irc-channel")
;; (find-spotchat-3a "#linuxmint-help")

(defvar ee-spotchat-server "irc.spotchat.org")

(defvar ee-spotchat-ichannels "#linuxmint-help"
  "The list of initial channels to connect to at spotchat.")

(defvar ee-spotchat-achannels nil
  "The list of channels that `find-spotchat' always reconnects to.
When this is nil act as if this was a copy of `ee-spotchat-ichannels'.")

(defun find-spotchat (&optional channel &rest pos-spec-list)
  "Connect to spotchat and switch to the buffer for channel CHANNEL.
This is like `find-rcirc-buffer', but uses the variables
`ee-spotchat-ichannels' and `ee-spotchat-achannels'."
  (apply 'find-rcirc-buffer
	  ee-spotchat-server
	  ee-spotchat-ichannels
	  ee-spotchat-achannels channel pos-spec-list))

(defun find-spotchat-2a (channel)
  (find-rcirc-buffer-2a ee-spotchat-server
			ee-spotchat-ichannels
			ee-spotchat-achannels
			channel))

(defun find-spotchat-3a (channel)
  (find-rcirc-buffer-3a ee-spotchat-server
			ee-spotchat-ichannels
			ee-spotchat-achannels
			channel))

;; See: (find-efunction 'eepitch)
;;      (find-efunction 'eepitch-to-buffer)
(defun eepitch-spotchat (channel)
  (interactive) (eepitch '(find-spotchat channel)))




;;;   ____ _              
;;;  / ___(_)_ __ ___ ___ 
;;; | |   | | '__/ __/ _ \
;;; | |___| | | | (_|  __/
;;;  \____|_|_|  \___\___|
;;;                       
;; «circe»  (to ".circe")
;; (find-es "circe" "circe-elpa")
;; (find-fline    "~/.emacs.d/elpa/circe-20190322.1242/")
(code-c-d "circe" "~/.emacs.d/elpa/circe-20190322.1242/")
;; (find-circefile "")

(setq circe-network-options
      `(("Freenode"
         :tls t
         :nick "edrx"
         :sasl-username "edrx"
         :sasl-password ,(find-sh0 "~/.passwds.sh freenode")
         :channels ("#emacs-circe")
         )))






;;---------------------------------------------------------------
;; a control panel for X (currently only for repeat speed and keymap)

;; «find-xkbprint»  (to ".find-xkbprint")
;; (eev "xkbprint $DISPLAY /tmp/o.ps; gv --orientation=seascape /tmp/o.ps &")
(defun find-xkbprint (&optional server psfile)
  "Display X's current keymap using xkbprint and gv (in background)."
  (if (not server) (setq server (ee-expand "$DISPLAY")))
  (if (not psfile) (setq psfile (ee-expand "~/o.ps")))
  (prog1 (find-sh0 (format "xkbprint %s %s" server psfile))
    (start-process "gv" "*Messages*"
		   "gv" "--orientation=seascape" psfile)))

;; «prep-X»  (to ".prep-X")
;; «prep-all»  (to ".prep-all")
(defun prep-X () (interactive) (find-angg ".emacs" "prep-X"))
(defun prep-all () (interactive) (find-angg ".emacs" "prep-all"))


;; «prep-X-kbdmap»  (to ".prep-X-kbdmap")
;; (find-man "setxkbmap")
;; My default:   (find-sh0 "setxkbmap -model pc104 -layout us")
;; US w/d.k.s:   (find-sh0 "setxkbmap -model pc104 -layout us_intl")
;; ABNT w/d.k.s: (find-sh0 "setxkbmap -model abnt2 -layout br -variant abnt2")
;; (find-xkbprint)
;;
;; Keymap captions:
;; My default:   "Group 1   Layout: pc/pc(pc104)+pc/us        Generic 104"
;; US w/d.k.s:   "Group 1   Layout: pc/pc(pc104)+pc/us_intl   Generic 104"
;; ABNT w/d.k.s: "Group 1   Layout: us(pc101)+br              Generic 101"

;; «prep-X-kbdrate»  (to ".prep-X-kbdrate")
;; (find-es "x" "X-kbdrate")
;; (find-man "1 xset" "repeat rate")
;; Default rate:         (find-sh0 "xset r rate")
;; My preferred setting: (find-sh0 "xset r rate 250 30")
;; Very fast:            (find-sh0 "xset r rate 250 75")

;; (find-angg ".Xdefaults")
;; (find-sh  "cd ~/eev-current/; ./eev-rctool prepare")
;; (find-sh0 "mkdir -p ~/tmp ~/usrc")

;; (find-angg ".Xdefaults")

;; «prep-X-font»  (to ".prep-X-font")
;; (find-sh "xlsfonts")
;; (find-sh "xlsfonts | grep -v ^-")
;; (find-sh "xlsfonts | grep ^terminus")
;; (find-sh "xlsfonts | grep ^terminus | grep bold")
;; (find-sh "xlsfonts | grep ^terminus | grep bold | grep 20\\$")
;; (set-frame-font "fixed")
;; (set-frame-font "terminus-iso8859-1-20")
;; (eev "ae -fn terminus-bold-20")
;; (find-sh0 "xfd -fn ")
;; (find-sh0 "xfd -fn terminus-bold-20")
;; (find-sh0 "xfd -fn terminus-iso8859-1-bold-20")




;;-------------
;; «gnus»  (to ".gnus")
;; (find-es "mail" "dovecot")
;; (find-gnusnode "Index")
;; (find-gnusnode "Index" "nnimap-authinfo-file")
;; (find-fline "~/.authinfo")
;; machine localhost login edrx password xxxx port imap

;; (find-fline "~/DTO/")
;; (find-fline "~/DTO/.gnus")

(code-c-d "gnus" (ee-efile "gnus/") "gnus")

;; (find-node "(gnus)Smileys")
(setq gnus-treat-display-smileys nil)

;; (setq user-mail-address "eduardoochs\100fastmail.fm")
;; (setq user-mail-address "edrx\100mat.puc-rio.br")
(setq user-mail-address "eduardoochs\100gmail.com")
(setq user-full-name "Eduardo Ochs")
(setq gnus-select-method '(nntp "news.gmane.org"))
(setq gnus-secondary-select-methods
      '((nnimap "localhost"
		(nnimap-authenticator login)
		(nnimap-authinfo-file "~/.authinfo")
		(nnimap-stream ssl))))

;; «gnus-quimby»  (to ".gnus-quimby")
;; (find-node "(gnus)Top")
;; (find-node "(gnus)Starting Up")
;; (find-node "(gnus)The First Time")
;; (find-node "(gnus)Startup Files")
;; (find-node "(gnus)Fetching a Group")
(setq gnus-select-method '(nntp "quimby.gnus.org"))
;; Already set:
;; user-full-name
;; user-mail-address

;; «lists.gnu.org»  (to ".lists.gnu.org")
;; http://lists.gnu.org/archive/html/index.html
;; (find-sh "cat  $S/http/lists.gnu.org/archive/html/index.html | grep listName")
;; (find-sh "sort $S/http/lists.gnu.org/archive/html/index.html | grep listName")

;; (find-es "gnus" "browse-foreign-server")
;; (gnus-group-browse-foreign-server '(nntp "quimby.gnus.org"))

;; «gnu.emacs.bugs»  (to ".gnu.emacs.bugs")
;; This group is at quimby and at gmane:
;; (setq gnus-select-method '(nntp "quimby.gnus.org"))
;;      (gnus-fetch-group   "gnu.emacs.bug")
;; http://lists.gnu.org/archive/html/bug-gnu-emacs/
;; (setq gnus-select-method '(nntp "news.gmane.org"))
;;      (gnus-fetch-group   "gmane.emacs.bugs")
;;     http://news.gmane.org/gmane.emacs.bugs
;; http://www.gnu.org/software/emacs/#HelpMailing

;; «gnu.emacs.sources»  (to ".gnu.emacs.sources")
;; This group is at quimby and at gmane:
;; (setq gnus-select-method '(nntp "quimby.gnus.org"))
;;      (gnus-fetch-group           "gnu.emacs.sources")
;; http://lists.gnu.org/archive/html/gnu-emacs-sources/
;; (setq gnus-select-method '(nntp "news.gmane.org"))
;;      (gnus-fetch-group   "gmane.emacs.sources")
;;     http://news.gmane.org/gmane.emacs.sources

;; (gnus-fetch-group   "gnu.emacs.sources")
;; (gnus-fetch-group "gmane.emacs.bugs")

;; «gnu.emacs.devel»  (to ".gnu.emacs.devel")
;; This group is not at quimby (afaik).
;; http://lists.gnu.org/archive/html/emacs-devel/
;; (setq gnus-select-method '(nntp "news.gmane.org"))
;;      (gnus-fetch-group   "gmane.emacs.devel")
;;     http://news.gmane.org/gmane.emacs.devel

;; (setq gnus-select-method '(nntp "quimby.gnus.org"))

;; «gmane.emacs.eev.devel»  (to ".gmane.emacs.eev.devel")
;; http://lists.gnu.org/archive/html/eev/
;; (setq gnus-select-method '(nntp "news.gmane.org"))
;;      (gnus-fetch-group   "gmane.emacs.eev.devel")
;;     http://news.gmane.org/gmane.emacs.eev.devel

;; «comp.lang.forth»  (to ".comp.lang.forth")
;; http://en.wikipedia.org/wiki/Nntp
;; http://www.dmoz.org/Computers/Usenet/Public_News_Servers/
;; http://www.freeusenetnews.com/newssrch.html?group=comp.lang.forth&active=1
;; (setq gnus-select-method '(nntp "dscnews2.dcccd.edu"))
;; (setq gnus-select-method '(nntp "news.cnusenet.org"))
;; (setq gnus-select-method '(nntp "web.aioe.org"))
;;      (gnus-fetch-group   "comp.lang.forth")



;; http://users.pepperfish.org/vivek/unihacks.el
;; http://www.kollektiv-hamburg.de/~forcer/unicode-helper.el
;; http://www.emacswiki.org/cgi-bin/wiki/UnicodeHelperMode



;; «super-key»  (to ".super-key")
;; (find-elnode "Other Char Bits" "super")
;; (global-set-key (kbd "s-s") 'scroll-bar-mode)
;; (find-esetkey-links (kbd "s-m") 'menu-bar-mode)
(global-set-key (kbd "s-s") 'toggle-scroll-bar)
(global-set-key (kbd "s-t") 'tool-bar-mode)
(global-set-key (kbd "s-m") 'menu-bar-mode)
(global-set-key (kbd "s-f") 'toggle-frame-fullscreen)
(global-set-key (kbd "s-x") 'toggle-frame-maximized)
(global-set-key (kbd "s-d") 'display-time-mode)
(global-set-key (kbd "s-b") 'blink-cursor-mode)
(global-set-key (kbd "s-w") 'wrap)


(defalias 'sbm 'scroll-bar-mode)

;; s-0 -> C-x 0 -> delete-window
;; s-1 -> C-x 1 -> delete-other-windows
;; s-2 -> C-x 2 -> split-window-vertically
;;
(global-set-key (kbd "s-0") 'delete-window)           ; (eek "M-h M-k C-x 0")
(global-set-key (kbd "s-1") 'delete-other-windows)    ; (eek "M-h M-k C-x 1")
(global-set-key (kbd "s-2") 'split-window-vertically) ; (eek "M-h M-k C-x 2")
(global-set-key (kbd "s-3") 'split-window-horizontally) ; (eek "M-h M-k C-x 3")
(global-set-key (kbd "s-o") 'other-window)            ; (eek "M-h M-k C-x o")
(global-set-key (kbd "s-,") 'prev-buffer)         ; (eek "M-h M-k C-x <left>")
(global-set-key (kbd "s-.") 'next-buffer)         ; (eek "M-h M-k C-x <right>")

;; (global-set-key "\M-s" 'search-forward)




;; (defun ei ()
;;   (interactive)
;;   (find-eevfile "doc/eev.texi")
;;   (find-estring
;;    (format "%s\n%S"
;;            (find-sh0 "cd ~/eev-current/doc/; makeinfo eev")
;;            ' (find-node "(eev)Top")
;;            )))


;; «hh»  (to ".hh")
;; (find-angg ".zshrc" "hh")
;; http://article.gmane.org/gmane.emacs.eev.devel/22
;; http://lists.gnu.org/archive/html/eev/2005-07/msg00019.html
(defun hh ()
  (interactive)
  (find-fline "$EEVTMPDIR/hh"))



;; Experimental - an alternative to `to'.
;; 2005aug08. Try these:
;; (index "foo")
;; (index "foo")
;; (index "foo")
' (defun index (str)
    (let ((bigstr (format "(index %S)" str)))
      (or (search-forward bigstr nil 'no-error)
	  (ee-goto-position bigstr))))


(defun unfill-paragraph (&optional arg)
  (interactive "P")
  (let ((fill-column (or arg 99999))) (fill-paragraph nil)))
;;
(global-set-key (kbd "M-Q") 'unfill-paragraph)

;; Recommended by dto:
' (add-hook 'find-file-hook 'auto-insert)

(defun downcase-to-eol ()
  (interactive)
  (downcase-region (point) (point-at-eol)))




;;;;;;
;;
;; find-eregion, find-eunicodeucs
;; 2005aug16
;;
;;;;;;

;; (find-fline "$VWT/o.el")

(defun find-eregion (s e &rest rest)
  (interactive "r")
  (apply 'find-estring (buffer-substring s e) rest))

(defun find-ebuffer-or-output (ee-buffer-name code &rest rest)
  (if (get-buffer ee-buffer-name)
      (apply 'find-ebuffer ee-buffer-name rest)
    (apply 'find-eoutput code rest)))

(defun ee-find-cd-sh (dir command &rest pos-spec-list)
  (find-ebuffer-or-output
   (format "cd %s; %s" dir command)
   `(progn (cd (ee-expand ,dir))
	   (insert (shell-command-to-string ,command))
	   (goto-char (point-min)))
   pos-spec-list))

;; «find-eunicode»  (to ".find-eunicode")
;; «find-eunicodeucs»  (to ".find-eunicodeucs")
;; Moved to:
;;   (find-eev "eev-blinks.el" "find-eunicode")
;; Inspired by:
;;   http://www.kollektiv-hamburg.de/~forcer/unicode-helper.el
;;   https://www.emacswiki.org/emacs/UnicodeHelperMode

(defun ee-to-ucs-link (c)
  (if (>= c 256)
      (format ";; %04X (find-eunicodeucs ?%c)\n"
	      (encode-char c 'ucs) c)
    ""))
(defun eeucs (s e)
  (interactive "r")
  (find-estring (mapconcat 'ee-to-ucs-link (ee-se-to-string s e) "")))


;; (find-elnode "Syntax Tables")
;; (find-esyntaxtable blogme-mode-syntax-table)
;; (find-esyntaxtable text-mode-syntax-table)
;; (find-eapropos "syntax-table")
(defun find-esyntaxtable (syntax-table &rest ignore)
  (with-syntax-table syntax-table (describe-syntax)))





;; (find-enode "Expanding Abbrevs" "`C-x a e'")
;; (find-enode "Defining Abbrevs" "M-x define-global-abbrev")
(define-global-abbrev "tabular" "\\begin{tabular}{ll}\n\\end{tabular}\n")
(define-global-abbrev "array" "\\begin{array}{ll}\n\\end{array}\n")
;;
' (eesteps '((find-estring "tabular")
	     (eek "C-e")
             (eek "C-x a e")))


;; (defun code-ps (code psfile)
;;   (ee-eval-read-format
;;    "(defun find-%spage (&optional n &rest comments) (interactive)
;;        (find-pspage %S n))"
;;    code psfile))

;; (defun code-dvi (code dvifile)
;;   (ee-eval-read-format
;;    "(defun find-%spage (&optional n &rest comments) (interactive)
;;        (find-dvipage %S n))"
;;    code dvifile))

;; «diagxy»  (to ".diagxy")
;; (find-angg ".emacs.papers" "diagxy")
;; (find-es "xypic" "diagxy")
(code-c-d       "diagxy" "~/usrc/diagxy/")
(code-dvi       "diagxy" "~/usrc/diagxy/diaxydoc.dvi")
(code-pdftotext "diagxy" "~/usrc/diagxy/diaxydoc.pdf")
;; (find-efunction 'find-dvipage)
;; (find-efunction 'find-dvipagenow)
;; (find-diagxypage)
;; (find-diagxyfile "")
;; (find-diagxypage 25)
;; (find-diagxyfile "diaxydoc.tex" "\\two/<-`->/<100>")

;; (find-sh "locate diagxy")
;; (find-sh "locate diaxydoc")
(code-c-d      "diagxy" "/usr/local/texlive/2019/texmf-dist/doc/generic/barr/")
(code-xpdf     "diagxy" "/usr/local/texlive/2019/texmf-dist/doc/generic/barr/diaxydoc.pdf")
(code-pdf-text "diagxy" "/usr/local/texlive/2019/texmf-dist/doc/generic/barr/diaxydoc.pdf")
;; (find-diagxyfile "")
;; (find-diagxypage)
;; (find-diagxytext)

;; «diaxydoc-and-barrdoc»  (to ".diaxydoc-and-barrdoc")
;; (find-es "dednat" "diaxydoc-and-barrdoc")
;; http://tug.ctan.org/tex-archive/macros/latex/contrib/xypic/doc/barrdoc.pdf
;; (find-fline "/usr/local/texlive/2018/texmf-dist/doc/generic/barr/")
;; (find-fline "/usr/local/texlive/2018/texmf-dist/doc/generic/xypic/")
;;
(code-pdf-page "diaxydoc" "/usr/local/texlive/2019/texmf-dist/doc/generic/barr/diaxydoc.pdf")
(code-pdf-text "diaxydoc" "/usr/local/texlive/2019/texmf-dist/doc/generic/barr/diaxydoc.pdf" 0)
(code-pdf-page "barrdoc"  "/usr/local/texlive/2019/texmf-dist/doc/generic/xypic/barrdoc.pdf")
(code-pdf-text "barrdoc"  "/usr/local/texlive/2019/texmf-dist/doc/generic/xypic/barrdoc.pdf" 0)
;; (find-diaxydocpage)
;; (find-diaxydoctext)
;; (find-barrdocpage)
;; (find-barrdoctext)
;; (find-diaxydocpage 1 "Version 2015-09-26")
;; (find-diaxydoctext 1 "Version 2015-09-26")
;; (find-barrdocpage  1 "Version 2011-06-18")
;; (find-barrdoctext  1 "Version 2011-06-18")
;; (find-barrdocpage  2 "\\usepackage[barr,pdf]{xy}")
;; (find-barrdoctext  2 "\\usepackage[barr,pdf]{xy}")
;; (find-diaxydocpage 3 "so that \\node lays down ink")
;; (find-diaxydoctext 3 "so that \\node lays down ink")
;; (find-diaxydocpage 19 "4.1     Nodes and arrows")
;; (find-diaxydoctext 19 "4.1     Nodes and arrows")
;; (find-barrdocpage 20 "5.1    Nodes and arrows")
;; (find-barrdoctext 20 "5.1    Nodes and arrows")
;; (find-barrdocpage 24 "5.3    Empty placement and moving labels")
;; (find-barrdoctext 24 "5.3    Empty placement and moving labels")
;; (find-barrdocpage 33 "5.9   A few samples")
;; (find-barrdoctext 33 "5.9   A few samples")





;; «libgtk-docs»  (to ".libgtk-docs")
;; (find-angg ".eev/HELP-gtk")
;; (find-status   "libgtk2.0-doc")
;; (find-vldifile "libgtk2.0-doc.list")
;; (find-udfile   "libgtk2.0-doc/")
;; (find-libgtkdocfile "")
(code-c-d "libgtkdoc" "/usr/share/doc/libgtk2.0-doc/")
(code-c-d "gdkdoc"    "/usr/share/doc/libgtk2.0-doc/gdk/")
(code-c-d "gtkdoc"    "/usr/share/doc/libgtk2.0-doc/gtk/")
(code-c-d "gtkfaqdoc" "/usr/share/doc/libgtk2.0-doc/gtk-faq/")
(code-c-d "gtktutdoc" "/usr/share/doc/libgtk2.0-doc/gtk-tutorial/")
;; (find-gdkdocfile "")
;; (find-gtkdocfile "")
;; (find-gtkfaqdocfile "")
;; (find-gtktutdocfile "")
;; (find-gdkdocw3m "index.html")
;; (find-gdkdocw3m "ix01.html")
;; (find-gtkdocw3m "index.html")
;; (find-gtkdocw3m "ix01.html")
;; (find-gtkfaqdocw3m "book1.html")
;; (find-gtktutdocw3m "book1.html")



;; (find-es "lua5" "pil")
;; (find-pilw3m "index.html")
;; (find-pilw3m "4.3.5.html" "Generic for")
(code-c-d "pil" "$S/http/www.lua.org/pil/")


(seen 5352)

(seen 5500)


(seen 5511)


(code-c-d "luagtk" "~/usrc/lua-gtk2-0.3/")
;; (find-luagtkfile "")
;; (find-es "lua5" "luagtk")
;; (find-es "lua5" "luagtk_pixmaps")


;; (find-eevfile "eev-langs.el" "ee-gdb-start")
;; (find-eevfile "eev.el" "setq code-c-d-keywords")

;; (defun ee-gdb-start (dir &optional fname)
;;   (if (= emacs-major-version 21)
;;       (gdb (format "gdb %s%s" dir (or fname "")))
;;     (gdb (format "gdb --annotate=3 %s%s" dir (or fname ""))))
;;   (eegud-keys-mode))

;; (defun eeb-gdb-start (dir &optional fname)
;;   (eegdb-bounded)
;;   (ee-gdb-start dir fname))

;; (add-to-alist 'code-c-d-keywords
;;   '(:gdb
;;     (ee-eval-read-format "
;;        (defun eeb-%sgdb-start (&optional fname)
;;          (ee-use-%s-tags)
;;          (eeb-gdb-start ee-%sdir fname))" c c c)
;;     (code-c-d-rest (cdr rest))))

(code-dvi "uff" "~/LATEX/2005oct20-seminar.dvi")
;; (code-c-d "uff" "~/LATEX/")
(defun find-uff (&rest rest) (interactive)
  (apply 'find-anchor "~/LATEX/2005oct20-seminar.tex" rest))

;; (find-uffpage 1)
;; (find-uff)

(code-dvi "2002cms"  "$S/http/anggtwu.net/math/2002cms.dvi.gz")
(code-dvi "2002fmcs" "$S/http/anggtwu.net/math/2002fmcs.dvi.gz")
;; (find-2002cmspage)
;; (find-2002fmcspage)



;; «color-theme»  (to ".color-theme")
;; (find-fline "~/elisp/color-theme.el")
;; (find-fline "~/DTO/color-theme-stanley-mk91.el")
;;
;; (require 'color-theme)
;; (load "~/DTO/color-theme-stanley-mk91.el")
;; (color-theme-stanley-mk91)

(defun color-theme-snap (name)
  "Write this color theme to a snapshot file."
  (interactive "MName of color-theme: ")
  (let* ((theme  (concat "color-theme-" name))
	 (file (concat dto/eefolder "/" theme ".el")))
    (progn (color-theme-print)
	   (replace-string "my-color-theme" theme)
	   (write-file file nil)
	   (eval-buffer))))


(seen 5599)

;; «my-make-face»  (to ".my-make-face")
;; (find-efaces)
;; (find-efacedescr 'variable-pitch)
;; (find-node "(elisp)Face Attributes")
;;
(defun my-make-face (face frame &rest args)
  (make-face face)
  (face-spec-reset-face face frame)
  (apply 'set-face-attribute face frame args)
  face)

;; (my-make-face 'my-face nil :foreground "#ffbc03" :inherit 'variable-pitch)
;; (put-text-property (point) (ee-search-forward "\n;;-\n") 'face 'my-face)
;; Blah Blah Blah
;;-

;; «myxpm»     (to ".myxpm")
;; «find-xpm»  (to ".find-xpm")
;; (find-angg "elisp/myxpm.el")
(autoload 'find-myxpm        "myxpm" nil t)
(autoload 'find-myxpmscaled  "myxpm" nil t)
(autoload 'find-myxpmscaled+ "myxpm" nil t)





;; (find-sh0 "convert ~/.eev/ee.xpm /var/www/favicon.ico")
;; (find-sh0 "convert ~/.eev/ee.xpm ~/favicon.ico")
;; (find-sh0 "convert ~/.eev/ee.xpm ~/eev-current/favicon.png")
;; (find-sh0 "display /var/www/favicon.ico")




;;;;;;
;;
;; Links for a symbol
;;
;;;;;;

;; (find-elnode "Symbol Components" "The four functions")
;; Links for a symbol: the four cells of the symbol, apropos, its
;; entry in the elisp manual, maybe its entries at the emacs manual
;; too... are there any alists or stuff the define where they have
;; been defined?




;;;;;;
;;
;; Links to all the active keymaps (minor modes, major, etc)
;; 2005nov11
;;
;;;;;;

;; (find-elnode "Minor Modes")
;; (find-elnode "Keymaps and Minor Modes")
;; (find-elnode "Active Keymaps")
;; (ee-active-minor-modes-having-keymaps)
;; (ee-minor-mode-keymap 'eev-mode)
;; (find-eminormodekeymapdescr 'eev-mode)
;; (find-ekeymapdescr (ee-minor-mode-keymap 'eev-mode))

;; Moved to eev.el
;; (defun ee-minor-mode-keymap (mode-symbol)
;;   (cdr (assq mode-symbol minor-mode-map-alist)))

;; (find-eev "eev-blinks.el" "find-eminorkeymapdescr")

' (defun find-eminormodekeymapdescr (mode-symbol &rest rest)
    (apply 'find-ekeymapdescr (ee-minor-mode-keymap mode-symbol) rest))

(defun ee-active-minor-modes-having-keymaps ()
  (delq nil (mapcar (lambda (m) (if (symbol-value m) m))
		    (mapcar 'car minor-mode-map-alist))))

;; (find-efunctionpp 'howm-view-summary-mode)
;; (find-howmfile "howm-view.el" " howm-view-summary-mode")
;; (find-efunctiond 'fundamental-mode)
;; (find-efunctiond 'emacs-lisp-mode)

;; Missing: a find-xxx-links function that creates links to the major
;; mode (symbol, pp, d, etc), to its keymap, and to all the keymaps of
;; active minor modes

;; Idea: I can use local variables at the *elisp hyperlinks* buffer to
;; store variables from the buffer where we came from... I need a
;; prefix for those vars.

(seen 5688)



;;;;;;
;;
;; ee-other-buffer
;; 2005nov12
;;
;;;;;;

;; (with-current-buffer nil default-directory)
;; (with-current-buffer "tmp" default-directory)
;; (setq ee-other-buffer "...")
;; (find-xxx (ee-other-buffer ...))

(defvar ee-other-buffer nil)
(make-variable-buffer-local 'ee-other-buffer)

(defmacro ee-other-buffer (&rest sexps)
  `(with-current-buffer ee-other-buffer . ,sexps))



;; (find-angg ".emacs.local.w32")
(when (eq window-system 'w32)
  (load-library  "~/.emacs.local.w32"))


;; «squeak»  (to ".squeak")
;; (find-es "squeak")
;; (find-angg ".zshrc" "mysqueak")
(code-c-d "squeak"       "~/SQUEAK/")
(code-c-d "squeakshared" "~/SQUEAK/Squeak5.3-19459-64bit-202003021730-Linux/shared/")
(code-c-d "squeakshared" "~/SQUEAK/Squeak6.0-22104-64bit-202206021410-Linux-x64/shared/")
(code-c-d "squeakshared" "~/SQUEAK/Squeak6.0-22104/shared/")
;; (find-squeakfile "")
;; (find-squeaksharedfile "")

;; (find-books "__comp/__comp.el" "squeak-by-example")
;; (find-es "squeak" "etoys")
(code-pdf-page "squeakbyex" "$S/http/anggtwu.net/SQUEAK/squeak-by-example-5.3.pdf")
(code-pdf-text "squeakbyex" "$S/http/anggtwu.net/SQUEAK/squeak-by-example-5.3.pdf" 16)
(code-pdf-page "etoysqg" "$S/http/www.squeakland.org/content/articles/attach/The_Etoys_Quick_Guides.pdf")
(code-pdf-text "etoysqg" "$S/http/www.squeakland.org/content/articles/attach/The_Etoys_Quick_Guides.pdf")
;; (find-etoysqgpage)
;; (find-etoysqgtext)


;; «smalltalk»  (to ".smalltalk")
;; (find-es "smalltalk" "gnu-smalltalk")
;; (find-es "squeak")
(code-c-d "gst"     "/usr/share/gnu-smalltalk/" "gst")
(code-c-d "gstbase" "/usr/share/gnu-smalltalk/" "gst-base")
(code-c-d "gstlibs" "/usr/share/gnu-smalltalk/" "gst-libs")
;; (find-gstfile "")
;; (find-gstfile "examples/")
;; (find-gstfile "examples/README")
;; (find-gstnode "")
;; (find-gstnode "Invocation")
;; (find-gstnode "Syntax")
;; (find-gstnode "Namespaces")
;; (find-gstnode "Disk file-IO")
;; (find-gstnode "Blox")
;; (find-gstnode "Seaside")
;; (find-gstnode "SUnit")
;; (find-gstnode "Editing")
;; (find-gstnode "Interactor")
;; (find-gstnode "Tutorial")
;; (find-gstnode "Files")
;; (find-gstnode "Arrays")
;; (find-gstnode "Dictionaries")
;; (find-gstlibsnode "BLOX package")
;; (find-gstbasenode "Array")

;; (code-c-d "gst" "~/usrc/smalltalk-2.1.9/" "~/usrc/smalltalk-2.1.9/doc/gst")
;; (code-c-d "gstlibs" "" "~/usrc/smalltalk-2.1.9/doc/gst-libs")
;; (code-c-d "gstbase" "" "~/usrc/smalltalk-2.1.9/doc/gst-base")
;; (find-gstnode "")
;; (find-gstlibsnode "")
;; (find-gstbasenode "")
;; (find-gstbasenode "Base classes")
;; (find-gstnode "Arrays")
;; (find-gstnode "Math in Smalltalk")

;; For gst and smalltalk-mode:
;; (find-gstfile "")
;; (find-gstfile "smalltalk-mode.el")
;; (find-gstfile "gst-mode.el")
;; (add-to-list 'load-path "~/usrc/smalltalk-2.1.9/")
;; (autoload 'smalltalk-mode "smalltalk-mode" nil t) ; GNU SmallTalk
;; (autoload 'gst            "gst-mode" nil t)       ; GNU SmallTalk

;; «visualworks»  (to ".visualworks")
;; (find-es "smalltalk" "visualworks")
(code-c-d "visualworksdoc" "~/vw7.8nc/doc/")
;; (find-visualworksdocfile "")
(code-xpdf      "vwwalkthrough" (ee-visualworksdocfile "WalkThrough.pdf"))
(code-pdftotext "vwwalkthrough" (ee-visualworksdocfile "WalkThrough.pdf"))
;; (find-vwwalkthroughpage      3  "Contents")
;; (find-vwwalkthroughpage (+ 1 1) "Index")
;; (find-vwwalkthroughtext "")

(code-xpdf      "vwinstall" "~/vw7.8nc/Install.pdf")
(code-pdftotext "vwinstall" "~/vw7.8nc/Install.pdf")
;; (find-vwinstallpage      3  "Contents")
;; (find-vwinstallpage      9  "Running the VisualWorks Installer")
;; (find-vwinstallpage     13  "Launching from the Command Line")
;; (find-vwinstallpage (+ 1 1) "Index")
;; (find-vwinstalltext "")



;; (car grep-history)
;; (find-grep ee-preemgstondir "grep -niH -e bprra *")
;; (find-code-c-d "preemgston" "~/src/mvgest/preemgston/" :grep)



;; For some reason in W$ f10 is bound to something else.
;;
(global-set-key (kbd "<f10>") 'tmm-menubar)



;; (find-angg ".emacs" "date")
(defun org-today-file-name (&optional date)
  (format "~/ORG/%s.org" (downcase (format-time-string "%Y-%m-%d"))))

(defun coding-footer () (interactive)
  (insert (format (concat
   "\n"
   "%sLocal Variables:\n"
   "%scoding: %S\n"
   "%sEnd:\n")
   ee-hyperlink-prefix ee-hyperlink-prefix buffer-file-coding-system
   ee-hyperlink-prefix)))

(defun org-footer () (interactive)
  (insert
   "\n"
   "* Local variables:\n"
   "\f\n"
   "#  Local Variables:\n"
   "#  coding: raw-text-unix\n"
   "#  modes: (my-org-mode emacs-lisp-mode)\n"
   "#  End:\n"))

(defun c-footer () (interactive)
  (insert
   "\n\f\n"
   "/*\n"
   " * Local variables:\n"
   " * coding: raw-text-unix\n"
   " * c-file-style: \"ellemtel\"\n"
   " * End:\n"
   " */\n"
   ))


;; «terminus» (to ".terminus")
;; Tests:
;; (set-frame-font "5x7" t)
;; (set-frame-font "6x13" t)
;; (ee-set-font-terminus 320)
;; (ee-set-font-terminus 200)
;; (ee-set-font-terminus 160)
;;
(defun ee-set-font-terminus (height)
  (set-frame-font "6x13" t)   ; to override the last ee-set-frame-font
  (set-face-attribute 'default nil :height height)
  (set-face-attribute 'default nil :family "Terminus"))




;; «find-sidebyside»  (to ".find-sidebyside")
(defun find-sidebyside (sexp1 sexp2)
  (eek "C-x 1")       (eval sexp1)
  (eek "C-x 3 C-x o") (eval sexp2))

' (find-sidebyside
   ' (find-rfcfile "rfc3550.txt")
   ' (find-rfcfile "rfc3551.txt")
     )

;; «eejump-define»  (to ".eejump-define")
;; «eejump-plists»  (to ".eejump-plists")
;; «eejump»  (to ".eejump")
;; (define-key eev-mode-map "\M-j" 'eejump)
;; (find-eev "eejump.el" "eejump-*")
(require 'eejump)

;; (defun eejump-* () (find-efunction 'eejump-*))
(defun eejump-1*  () (find-efunction 'eejump-1*))
(defun eejump-10  () (ee-set-frame-font "5x7"   t))
(defun eejump-11  () (ee-set-frame-font "fixed" t))
(defun eejump-11  () (ee-set-frame-font "6x13" t))
(defun eejump-110 ()    (set-frame-font "6x13" t))
;; (defun eejump-15  () (ee-set-font-terminus 180))
;; (defun eejump-16  () (ee-set-font-terminus 200))
;; (defun eejump-17  () (ee-set-font-terminus 320))
(defun eejump-14  () (set-frame-font "Monospace 14" t))
(defun eejump-16  () (set-frame-font "Monospace 16" t))
(defun eejump-111 () (find-wset "12_o_" '(eejump-1) '(eejump-0)))

(defun eejump-2* () (find-efunction 'eejump-2*))

;; (defun eejump-24* () (find-efunction 'eejump-24*))
;; (defun eejump-24  () (find-blogme4 ""))
;; (defun eejump-240 () (find-blogme4 "README"))
;; (defun eejump-241 () (find-blogme4 "blogme4.lua"))
;; (defun eejump-242 () (find-blogme4 "Makefile"))
;; (defun eejump-244 () (find-blogme4 "anggdefs.lua"))
;; (defun eejump-245 () (find-blogme4    "elisp.lua"))
;; (defun eejump-246 () (find-blogme4 "angglisp.lua"))
;; (defun eejump-248 () (find-blogme4 "doc/blogme4.b4texi"))
;; (defun eejump-249 () (find-blogme4 "doc/eev.b4texi"))

(defun eejump-23  () (find-blogme3 ""))
(defun eejump-24  () (find-blogme3 "anggdefs.lua"))
;; (defun eejump-25  () (find-blogme3 "youtube.lua"))
;; (defun eejump-255 () (find-TH "videos-locais"))
(defun eejump-26  () (find-blogme3 "anggmake.lua"))
;; (defun eejump-200 () (find-angg "TH/blogme3.blogme"))

;; (defun eejump-235 () (find-blogme3    "elisp.lua"))
;; (defun eejump-236 () (find-blogme3 "angglisp.lua"))

(defun eejump-20  () (find-booksfile ""))
(defun eejump-201 () (find-booksfile "__alg/__alg.el"))
(defun eejump-202 () (find-booksfile "__analysis/__analysis.el"))
(defun eejump-203 () (find-booksfile "__cats/__cats.el"))
(defun eejump-204 () (find-booksfile "__comp/__comp.el"))
;; (defun eejump-205 () (find-booksfile "__etc/__etc.el"))
;; (defun eejump-206 () (find-booksfile "__gender/__gender.el"))
;; (defun eejump-206 () (find-booksfile "__frege/__frege.el"))
;; (defun eejump-207 () (find-booksfile "__habermas/__habermas.el"))
(defun eejump-208 () (find-booksfile "__logic/__logic.el"))
;; (defun eejump-209 () (find-booksfile "__modal/__modal.el"))
(defun eejump-210 () (find-booksfile "__phil/__phil.el"))
;; (defun eejump-211 () (find-booksfile "__piaget/__piaget.el"))
;; (defun eejump-212 () (find-booksfile "__politics/__politics.el"))
;; (defun eejump-213 () (find-booksfile "__shibari/__shibari.el"))
;; (defun eejump-204 () (find-angg "TH/blogme3-angg.blogme"))
  ;;
  ;; (find-blogme3 "lstoindexhtml.lua")
  ;; (find-blogme3 "notes.e.lua")
  ;; (find-blogme3 ".files.sh")
  ;; (find-blogme3 "Makefile")
  ;;
  ;; 24 (find-TH "emacs"  "a-2D-map-of-eev")
  ;; 241 (find-angg "DAVINCI/intro.lua")
  ;; 242 (find-angg "TH/davinci.blogme")
  ;; 25  (find-es   "iup")

(defun eejump-3* () (find-efunction 'eejump-3*))
(defun eejump-30 () (find-es "lua5"))
(defun eejump-300 () (find-angg "LUA/lua50init.lua"))
;; (defun eejump-301 () (find-angg "eev-puro/mini-lua-intro.e"))
;; (defun eejump-302 () (find-dn5 "eoo.lua"))
(defun eejump-3000 () (find-es "lua-intro"))
;; (defun eejump-3001 () (find-es "lua-intro"))
;; (defun eejump-302 () (find-es "lua-intro" "bytecode:captures"))
(defun eejump-31 () (find-es "lua5" "lpeg-quickref"))
;; (defun eejump-34 () (find-TH "dednat4"))
;; (defun eejump-36 () (find-TH "dednat6"))
  ;; (defun eejump-32 () (find-angg "eev-puro/"))
  ;; 32 (find-angg "LUA/middle-c.lua")
  ;; 33 (find-angg "peek/ctypes.lua")
  ;; (defun eejump-33 () (find-angg "peek/ctypes2.lua"))
  ;; (defun eejump-34 () (find-LATEX "2011ebl-abs.tex"))
  ;; (defun eejump-35 () (find-LATEX "2011ebl-slides.tex"))
  ;; (defun eejump-36 () (find-fline "~/tmp/abstract_EBL_2011_ochs.tex"))
  ;; 32 (find-angg "CV/cv-edrx-2008-pt.tex")
  ;; 33 (find-miniforth "miniforth5.lua")
  ;; 34  (find-angg "TH/miniforth-article.blogme")
  ;; 333 (find-miniforth "miniforth6.lua")
  ;; 33  (find-es "lua5" "xpcall")
  ;; 333 (find-fline "~/ORG/Categories.org")
  ;; 34  (find-es "kepler")
  ;; 34 (find-fline "$S/http/primero.ricilake.net/lua/ldb.lua")
  ;; 37  (find-angg "LUA/luatclbridge.c")
  ;; (defun eejump-37 () (find-angg "CV/cv-edrx-2010-pt.tex"))
  ;; (defun eejump-377 () (find-angg "LUA/interactive.lua"))
  ;; (defun eejump-38 () (find-angg "TH/luainteractive.blogme"))
  ;; (defun eejump-384 () (find-angg "LATEX/chaui-hch.tex"))
  ;; (defun eejump-39 () (find-angg "elisp/cheap-face.el"))

;; See: (to "hydra-r")
;; (defun eejump-34 () (find-2a nil '(find-eejumps 2 "eejump-34" '(eek "M-0 C-l"))))
;; (defun eejump-35 () (eek "C-a M-x r"))
;; (defun eejump-36 () (eek "C-a <up> C-a C-k C-k"))
;; (defun eejump-37 () (clear-fbclids))
;; (defun eejump-38 () (eek "C-a http://archive.md/ C-a"))
;; (defun eejump-39 () (brg))

(defun eejump-4* () (find-efunction 'eejump-4*))
(defun eejump-4  () (find-angg ".zshrc"))
;; (defun eejump-44 () (find-dn4 ""))
;; (defun eejump-44 () (find-angg "quadradinho/"))
;; (defun eejump-444 () (find-angg "quadradinho/quadradinho-texto.tex"))
;; (defun eejump-4444 () (find-xpdfpage "~/quadradinho/quadradinho-a5.pdf"))
;; (defun eejump-445 () (find-angg "quadradinho/quadradinho-a5.tex"))
;; (defun eejump-446 () (find-angg "quadradinho/quadradinho-print.tex"))
;; (defun eejump-42 () (find-angg "LATEX/2009dnc-in-coq.tex"))
;; (defun eejump-43 () (find-TH "math-b"))
;; (defun eejump-433 () (find-xpdfpage "~/PURO/diarios_de_classe/dclas_2009-10-C2.pdf"))
  ;44  (find-es "netbsd" "cvs-emacs-at-caramelo")
  ;44  (find-dn4 "dednat4.el")
  ;; (defun eejump-444 () (find-dn4 "dednat4.lua"))
  ;(defun eejump-44 () (find-dn4 "experimental.lua"))
;; (defun eejump-443 () (find-dn4 "Makefile" "dednat4" "make cleanscripts"))
;; (defun eejump-4433 () (find-sh  "cd ~/dednat4/; make cleanscripts; make S=$S scripts"))
 ;; (defun eejump-445 () (find-dn4 "examples/"))
;; (defun eejump-456 () (find-dn5 "dednat6.lua"))
;; (defun eejump-46  () (find-gab "gab.lua"))
;; (defun eejump-47  () (find-gab "gab-tests.lua"))
  ;; 46   (find-dn5 "gab.lua")
  ;; 47   (find-dn5 "gab-tests.lua")
  ;; 46   (find-dn5 "gabriela.lua")
  ;; 47   (find-dn5 "gabriela-app.lua")
;; (defun eejump-49 () (find-3 '(find-gab "gab.lua") '(find-gab "gabriela-tests.lua")))
;; (defun eejump-452 () (find-3 '(find-blogme4 "build.lua") '(find-dn5 "build.lua")))
;; (defun eejump-455 () (find-dn5 "dednat5.lua"))
;; (defun eejump-456 () (find-dn5 "tests/"))
;; (defun eejump-453 () (find-dn5 "tests/test3.tex"))
(defun eejump-46 () (find-dn6 "dednat6.lua"))
(defun eejump-44 () (find-dednat6 ""))
;; (defun eejump-466 () (find-dn6 "tests/"))
;; (defun eejump-44 () (find-dn6 "tests/4.tex"))
;; (defun eejump-45 () (find-dn6 "tests/5.tex"))
;; (defun eejump-48 () (find-dn4ex "edrx08.sty"))
;; (defun eejump-49 () (find-LATEX "edrx15.sty"))

(defun eejump-5*  () (find-efunction 'eejump-5*))
;; (defun eejump-50 () (find-eev-intro))
(defun eejump-51 () (find-eev "eev-intro.el"))
;;
;; (defun eejump-500 () (find-eevfile "eejump.el" "eejump-*"))
;; (defun eejump-511 () (find-eev "eev-code.el"))
;; (defun eejump-51 () (find-angg "TEXINFO/eev.texi.lua"))
;; (defun eejump-511 () (find-TH   "2011-maio"))
(defun eejump-512 () (find-TH   "2011-cuv-quorum"))
	;; 511 (find-node "(eev)introduction")
;; (defun eejump-508 () (find-dn4ex "edrx08.sty"))
(defun eejump-52  () (find-angg ".emacs.papers"))
(defun eejump-53  () (find-angg ".emacs.templates"))
(defun eejump-54  () (find-angg ".emacs.audios"))
(defun eejump-57  () (find-angg ".emacs.videos"))
;; (defun eejump-535 () (find-eev "eev-mini-steps.el"))
;; (defun eejump-545 () (find-eev "eepitch.readme"))
;; (defun eejump-55  () (find-angg ".emacs"))
;; (defun eejump-550 () (find-angg ".emacs.mini"))
;; (defun eejump-56 () (find-eev "eev-links.el"))
;; (defun eejump-57 () (find-eev "eev-template.el"))
;; (defun eejump-57 () (find-angg "eev-videos/1.sh"))
;; (defun eejump-58 () (find-eev  "eev-readme.el"))
;; (defun eejump-59 () (find-angg "eev-intros/README"))
	;58 (find-eev "eev-pdfpages.el")
	;56 (find-eev "eev-sshot.el")
;; (defun eejump-56 () (find-es  "eev"))
;; (defun eejump-58 () (find-eejumps))
;; (defun eejump-590 () (find-eev "eev-code-old.el"))
;; (defun eejump-551 () (find-eev2-links))
;; (defun eejump-552 () (find-eev "eev2-all.el"))
;; (defun eejump-554 () (find-es "eev" "dh-make-2"))
;; (defun eejump-555 () (find-eev ""))
;; (defun eejump-5554 () (find-eev "debian/"))

(defun eejump-7* () (find-efunction 'eejump-7*))
;; (defun eejump-70 () (find-fline "~/ORG/Lyrics.org"))
;; (defun eejump-7 () (find-angg "eev-videos/video-eev-quick-0.sh"))
;; (defun eejump-7 () (find-angg ".emacs.clg"))
;; (defun eejump-70 () (find-TH "javascript"))
;; (defun eejump-70 () (find-fline "~/ORG/lyrics.org"))
(defun eejump-71  () (find-LATEX ""))
(defun eejump-711 () (find-es "tex"))
(defun eejump-712 () (find-LATEX "tmp.tex"))
(defun eejump-717 () (find-es "luatex"))
(defun eejump-72 () (find-fline "~/tmp/"))
;; (defun eejump-73 () (find-fline "~/e/"))
(defun eejump-75 () (find-fline "/sda5/videos/"))
;; (defun eejump-77 () (find-es "luatex"))
;; (defun eejump-777 () (find-es "luatex" "getting-glyph-data"))

;; (defun eejump-1 () (find-fline (or (getenv "TODOFILE") "~/TODO")))
;; (defun eejump-12 () (find-blogme4 "doc/eev.b4texi"))
;; (defun eejump-13 () (find-TH "eev-article"))
        ;;
;; (defun eejump-120 () (find-ebuffer "*irc.freenode.net*"))
;; (defun eejump-12 () (find-ebuffer "cfa@irc.freenode.net"))
;; (defun eejump-121 () (eepitch '(find-ebuffer "cfa@irc.freenode.net")))
;; (defun eejump-122 () (find-es "clojure"))

(defun eejump-19 () (psne-log))

;; (defun eejump-6* () (find-efunction 'eejump-6*))
;; (defun eejump-65 () (find-TH "2012-greve-fontes-primarias"))
;; (defun eejump-6 () (find-freenode "#eev"))
;; (defun eejump-66 () (find-freenode-3a "#eev"))
;; (defun eejump-67 () (find-freenode "#labmacambira"))

;; (defun eejump-6  () (find-ebuffer "#eev@irc.freenode.net"))
;; (defun eejump-67 () (find-ebuffer "#rcirc@irc.freenode.net"))
;; (defun eejump-67 () (find-ebuffer "#node.js@irc.freenode.net"))
;; (defun eejump-67 () (find-ebuffer "#metareciclagem@irc.freenode.net"))
;; (defun eejump-67 () (find-ebuffer "#labmacambira@irc.freenode.net"))
;; (defun eejump-67 () (find-freenode "#labmacambira"))
;; (defun eejump-677 () (find-es "javascript"))
;; (defun eejump-66 () (progn (rcirc-defs) (find-freenode)))
;; (defun eejump-66 () (progn (rcirc-defs) (find-2a nil '(find-freenode))))
;; (defun eejump-68 () (progn (find-es "gnome" "gwm-keys") (eek "M-0 C-l")))
;; (defun eejump-69 () (find-2a nil '(find-ebuffer eepitch-buffer-name)))

(defun eejump-8* () (find-efunction 'eejump-8*))
(defun eejump-8  () (find-es "page" "upload-edrx.tgz-with-rsync"))
(defun eejump-88 () (find-eev2-links))
;; (defun eejump-88 () (find-pen-links))
(defun eejump-80   () (find-TH "2024.1"))
(defun eejump-800  () (find-TH "2023.2"))
(defun eejump-8000 () (find-es "puro"))
(defun eejump-81   () (find-TH "2019.1-TD"))
(defun eejump-811  () (find-TH "2018.2-MD"))
(defun eejump-8111 () (find-TH "2018.1-GA"))

(defun eejump-82   () (find-TH "2024.1-C2"))
(defun eejump-822  () (find-TH "2023.2-C2"))
(defun eejump-8222 () (find-TH "2023.1-C2"))

(defun eejump-83   () (find-TH "2024.1-C3"))
(defun eejump-833  () (find-TH "2023.2-C3"))
(defun eejump-8333 () (find-TH "2022.2-C3"))

(defun eejump-84   () (find-TH "2023.1-C4"))
(defun eejump-85   () (find-TH "2023.1-ES"))
(defun eejump-86   () (find-TH "2023.1-GA"))
(defun eejump-87   () (find-TH "2023.1-LA"))

;; (defun eejump-821 () (find-LATEX "2010-1-C2-prova-1.tex"))
;; (defun eejump-881 () (find-TH "2009.2-MD"))
;; (defun eejump-882 () (find-TH "2009.2-C2"))
;; (defun eejump-884 () (find-TH "2009.2-C4"))
;; (defun eejump-83  () (find-LATEX "2009-micropol.tex"))
;; (defun eejump-811 () (find-LATEX "2009-2-MD-prova-1.tex"))
;; (defun eejump-812 () (find-LATEX "2009-2-MD-prova-1-notas.tex"))
;; (defun eejump-813 () (find-LATEX "2009-2-MD-comparacao.tex"))
;; (defun eejump-814 () (find-LATEX "2009-2-MD-prova-2.tex"))
;; (defun eejump-821 () (find-LATEX "2009-2-C2-prova-1.tex"))
;; (defun eejump-822 () (find-LATEX "2009-2-C2-prova-1-notas.tex"))
;; (defun eejump-823 () (find-LATEX "2009-2-C2-lista-1.tex"))
;; (defun eejump-824 () (find-LATEX "2009-2-C2-prova-2.tex"))
;; (defun eejump-841 () (find-LATEX "2009-2-C4-prova-1.tex"))
;; (defun eejump-842 () (find-LATEX "2009-2-C4-prova-1-notas.tex"))
;; (defun eejump-843 () (find-LATEX "2009-2-C4-prova-2.tex"))
;; (defun eejump-85 () (find-LATEX "2009unilog-dnc.tex"))
;; (defun eejump-854 () (find-LATEX "2010unilog-current.tex"))
;; (defun eejump-854 () (find-angg ".emacs" "unilog-current"))
;; (defun eejump-855 () (find-LATEX "2010diags.tex"))
;; (defun eejump-86 () (find-LATEX "2010diags.tex"))
;; (defun eejump-850 () (find-LATEX "2010-1-MD-plano-de-aulas.tex"))
;; (defun eejump-851 () (find-TH    "2009-cola"))
;; (defun eejump-852 () (find-LATEX "forest.tex"))
;; (defun eejump-853 () (find-LATEX "2008graphs.tex"))
;; (defun eejump-857 () (find-LATEX "2009-nd-in-hyps.tex"))
;; (defun eejump-858 () (find-LATEX "2009dnc-monads.tex"))
;; (defun eejump-87 () (find-LATEX "2009-defesa.tex"))
;; (defun eejump-888 () (find-es "lenny" "syncing-the-edrx.tgzs"))
;; (defun eejump-8888 () (find-es "eev" "dh-make-2"))
;; (defun eejump-889 () (find-es "rcirc" "eepitch-full"))
;; (defun eejump-899 () (find-es "rcirc" "eepitch-full"))
;; (defun eejump-89 () (find-ebuffer "#eev@irc.freenode.net"))
;; (defun eejump-9 () (find-LATEX "2009-planodetrabalho.tex"))
;; (defun eejump-91 () (find-TH "2009.1-C1"))
;; (defun eejump-911 () (find-LATEX "2009-1-C1-prova-2.tex"))
;; (defun eejump-92 () (find-TH "2009.1-C2"))
;; (defun eejump-93 () (find-LATEX "catsem.bib"))
(defun eejump-93 () (find-LATEX "catsem-u.bib"))
(defun eejump-94 () (find-LATEX "filters.bib"))
;; (defun eejump-96 () (find-TH "2011-eleicoes"))
(defun eejump-0 () (find-fline "~/ORG/index.org"))
	;;
	;; ((eq arg 13) (find-ebuffer "*Messages*"))
	;;
	;; (find-sh "xlsfonts | grep terminus | grep -v ^- | sort")
	;; (find-sh "xlsfonts | grep -v ^- | sort")
(defun eejump-100 () (set-frame-font "nil2"))
	;; (find-fline "/usr/share/fonts/X11/misc/fonts.alias")
(defun eejump-10 () (ee-set-frame-font "5x7"   t))
(defun eejump-11 () (ee-set-frame-font "fixed" t))
(defun eejump-13 () (ee-set-frame-font "9x15"  t))
(defun eejump-14 () (ee-set-frame-font "10x20" t))
(defun eejump-22 () (set-frame-font "terminus-16"))
	;; ((eq arg 33) (set-frame-font "terminus-bold-16"))




;; Beginning of the el4r block:
;; RCtool generated this block automatically. DO NOT MODIFY this block!
(add-to-list 'load-path "/usr/share/emacs/site-lisp")
;; (require 'el4r)
;; (el4r-boot)
;; End of the el4r block.
;; User-setting area is below this line.

;; «find-tkdiff»  (to ".find-tkdiff")

(defun find-tkdiff (f1 f2 &optional suffix)
  (cond (suffix (find-tkdiff (concat f1 suffix) (concat f2 suffix)))
	;; (ee-arg (find-fline-side-by-side f1 f2))
	(t (start-process "tkdiff" "*Messages*"
			  "tkdiff" (ee-expand f1) (ee-expand f2)))))

(defun find-tkdiff> (f1 f2 &optional suffix)
  "Takes the same arguments as find-tkdiff, but copies F1->F2"
  (if suffix
      (find-tkdiff> (concat f1 suffix) (concat f2 suffix))
    (find-sh0 (format "cp -av %s %s" f1 f2))))

(defun find-tkdiff< (f1 f2 &optional suffix)
  "Takes the same arguments as find-tkdiff, but copies F1<-F2"
  (if suffix
      (find-tkdiff> (concat f1 suffix) (concat f2 suffix))
    (find-sh0 (format "cp -av %s %s" f2 f1))))

(defun find-tkdiff1 (prefix1 prefix2 suffix &rest rest)
  (apply 'find-fline (concat prefix1 suffix) rest))

(defun find-tkdiff2 (prefix1 prefix2 suffix &rest rest)
  (apply 'find-fline (concat prefix2 suffix) rest))

(defun find-fline-side-by-side (f1 f2)
  (eek "C-x 1") (find-fline f1)
  (eek "C-x 3 C-x o") (find-fline f2))

;; Uh-oh, isearch-lazy-highlight-face -> lazy-highlight in CVS Emacs,
;; and somehow lazy-highlight stopped getting attributes.
;; (find-efile "isearch.el" "isearch-lazy-highlight-face")
(make-face           'lazy-highlight)
(set-face-background 'lazy-highlight "paleturquoise4")



;; «eekill»  (to ".eekill")
;; (find-es "x" "xclip")
;; (find-enode "Enabling Multibyte")
;; (find-enode "Enabling Multibyte" "nothing precedes the colon")
;; (find-enode "Mode Line" "When multibyte characters")
;;
(defun eekill (s &optional e)
  (interactive "r")
  (let ((str (ee-se-to-string s e)))
    (kill-new
     (with-temp-buffer			; because W32 dislikes unibyte data
       (insert str)
       (buffer-substring (point-min) (point-max))))
    str))

;; 2008may28
;; (find-elnode "Synchronous Processes" "Function: call-process-region")
;;
(defun eekill (s &optional e)
  (interactive "r")
  (let ((origb (current-buffer)))
    (with-temp-buffer
      (let ((tmpb (current-buffer)))
	(with-current-buffer origb
	  (call-process-region (point) (mark) "cat" nil tmpb)))
      (let ((str (buffer-substring (point-min) (point-max))))
	(kill-new str)
	str))))

;; 2014oct19, ugly tentative hack
(defun latkill ()
  (interactive)
  (eek "M-w")
  (let ((fname "/tmp/latin-1")
	(prefix1 " -*- coding: latin-1 -*-\n")
	(prefix2 "(eek \"2*<right> C-SPC M-> <<eekill>> C-x C-x\")\n\n")
	;; (prefix2 "(eekill (+ 2 (point)) (point-max))\n\n")
	(text (ee-last-kill))
	)
    (ee-kill-buffer "latin-1")
    (ee-write-string (concat prefix1 prefix2 text) fname)
    (find-2b nil `(find-fline fname))))




(code-c-d "wb" "$S/http/dto.freeshell.org/e/")
(code-c-d "dtoe" "$S/http/dto.freeshell.org/e/")
;; (find-wbfile "")
;; (find-dtoefile "")

(defun find-whiteboardlinks (&rest rest)
  (interactive)
  (apply 'find-elinks
	 `((eek "C-x 1 C-x b *wb-console* RET C-x 4 b whiteboard RET C-x o")
	   (load (ee-expand "$S/http/dto.freeshell.org/e/whiteboard.el"))
           (setq wb-directory "~/whiteboard")
	   (setq wb-base-port 10191)
	   (setq wb-local-ip ,(myip-as-string))
	   (wb-make-client "edrx" "66.189.73.146")
	   ""
	   (wb-make-server "edrx")
	   (wb-terminate)
	   ""
	   "* (eepitch '(shell))"
	   "psne http://dto.freeshell.org/e/whiteboard.el"
	   "mv whiteboard.el.1 whiteboard.el")
	 rest))

;; (define-key eev-mode-map "\M-h\M-w" 'find-whiteboardlinks)
;; (eek "M-h M-w")






;;;                  _ _       _
;;;   ___  ___ _ __ (_) |_ ___| |__
;;;  / _ \/ _ \ '_ \| | __/ __| '_ \
;;; |  __/  __/ |_) | | || (__| | | |
;;;  \___|\___| .__/|_|\__\___|_| |_|
;;;           |_|

;; «eepitch»  (to ".eepitch")
;; «eepitch-kill»  (to ".eepitch-kill")
;; Code moved to  eev-mini-steps.el.
;; (find-eevfile "eev-mini-steps.el" "defvar eepitch-code")
;; (find-eevfile "eev-steps.el" "defun eepitch-prepare")

;;; --------------------------
;; (find-eevfile "eev-mini-steps.el" "defvar eepitch-code")

;; obsolete!
(defun eepitch-this-buffer ()
  "Set eepitch to copy lines to this buffer."
  (interactive)
  (setq eepitch-file-name (buffer-file-name))
  (eepitch (find-fline eepitch-file-name)))



;; some extra tools and things based on eepitch

(defun ee-to-char (charorstring)
  (if (stringp charorstring)
      (string-to-char charorstring)
    charorstring))

(defun find-eregister (register-char &rest rest)
  (jump-to-register (ee-to-char register-char))
  (ee-goto-rest rest))

(defun eepitch-register (register-char)
  (point-to-register (ee-to-char register-char))
  (eepitch `(find-eregister ,register-char -1)))

(defun ee-add-slash (dir)
  (if (string-match "/$" dir)
      dir
    (concat dir "/")))

(defmacro ee-at-dir (dir &rest body)
  `(let ((default-directory (ee-add-slash (ee-expand ,dir))))
	 . ,body))

;; (find-eev "eev-mini-steps.el")




;; «ee-comint»  (to ".ee-comint")
;; «ee-telnet»  (to ".ee-telnet")
;; (find-angg ".emacs.local.tijuca" "ee-comint")
;; 2005dez22
;;
(defun ee-comint (name program &rest switches)
  (apply 'make-comint name program nil switches)
  (switch-to-buffer (format "*%s*" name)))

;; (defun ee-telnet (name host &rest switches)
;;   (apply 'ee-comint name
;;          "C:/Arquivos de programas/PuTTY/plink.exe" "-telnet"
;;          host switches))

(seen 6268)


'(

(defun ee-telnet (name &optional host &rest switches)
  (apply 'ee-comint name "telnet" (or host name) switches))

(defun ee-telnet-mangaratiba () (interactive) (ee-telnet "mangaratiba"))
(defun ee-telnet-parati      () (interactive) (ee-telnet "parati"))
(defun ee-telnet-trindade    () (interactive) (ee-telnet "trindade"))
(defun eepitch-mangaratiba   () (interactive) (eepitch (ee-telnet-mangaratiba)))
(defun eepitch-parati        () (interactive) (eepitch (ee-telnet-parati)))
(defun eepitch-trindade      () (interactive) (eepitch (ee-telnet-trindade)))

)

(seen 6285)

(defun eepitch-Twu     () (interactive) (eepitch-comint "Twu" "Twu"))
(defun eepitch-Twu     () (interactive) (eepitch-comint "Twu" "~/EXPECT/autopasswd ssh -C edrx@angg.twu.net"))

(defun eepitch-lakh  () (interactive) (eepitch-comint "ssh lakh"  "ssh -C edrx@lakhesys"))
(defun eepitch-lakh2 () (interactive) (eepitch-comint "ssh lakh2" "ssh -C edrx@lakhesys"))
;; (find-fline "/etc/hosts")
(code-c-d "lakh" "/ssh:edrx@lakhesys:/")
;; (find-lakhfile "")



;; (defun eepitch-hallowlua   () (interactive)
;;   (eepitch (let ((default-directory (ee-expand "~/HALLOWEEN/")))
;; 	        (find-comintprocess "halloween: lua" "lua50"))))

(defun eepitch-hallowlua   () (interactive)
  (eepitch-at-dir-comint
   "~/HALLOWEEN/"
   "halloween: lua"
   "lua50"))

(defun eepitch-hallowplot   () (interactive)
  (eepitch-at-dir-comint
   "~/HALLOWEEN/"
   "hallowplot"
   "eegchannel hallowplot gnuplot"))



;; «miniforth»  (to ".miniforth")
;; (find-angg ".emacs.papers" "ochs")
;;
(code-c-d "miniforth" "~/miniforth/" :anchor)
;; (find-miniforthfile "")
;; (find-miniforth "miniforth6.lua" "downloads")
;;
;;    http://anggtwu.net/miniforth-article.html
;; file:///home/edrx/TH/L/miniforth-article.html
;; http://anggtwu.net/miniforth/miniforth-article.pdf
(code-pdf-page "miniforth" "$S/http/anggtwu.net/miniforth/miniforth-article.pdf")
(code-pdf-text "miniforth" "$S/http/anggtwu.net/miniforth/miniforth-article.pdf")
;; (find-miniforthpage)
;; (find-miniforthtext)
;;
;; (find-miniforthfile "miniforth3.lua")
;; (eepitch-miniforth)
;; (eepitch-kill)
(defun eepitch-miniforth () (interactive)
  (ee-eepitch-comint
   "~/miniforth/"
   "miniforth5.lua"
   "lua51 -e dofile[[miniforth5.lua]] -i"))



;; (find-eevfile "eev.el" "defun ee-goto-position")
;; (find-efunction 'ee-goto-position)
;; (find-efile "reveal.el")

(autoload 'reveal-post-command "reveal")

(defun ee-goto-position-orig (&optional pos-spec &rest rest)
  (when pos-spec
    (cond ((numberp pos-spec)
	   (goto-char (point-min))
	   (forward-line (1- pos-spec)))
	  ((stringp pos-spec)
	   (goto-char (save-excursion	          ; This used to be just:
			(goto-char (point-min))	  ; (goto-char (point-min))
			(search-forward pos-spec) ; (search-forward pos-spec)
			(point))))		  ;
	  (t (error "This is not a valid pos-spec: %S" pos-spec)))
    (if rest (ee-goto-rest rest))))

(defun ee-goto-position-reveal (&optional pos-spec &rest rest)
  (let ((search-invisible t))
    (apply 'ee-goto-position-orig pos-spec rest)
    (reveal-post-command)))

' (defun ee-goto-position (&optional pos-spec &rest rest)
    (apply 'ee-goto-position-reveal pos-spec rest))


(seen 6000)

;; (find-trampfile "")
;; (find-trampfile "om")
;; (find-trampfile "lisp/")
;; (find-file "/sudo:root@localhost:/etc/hosts")
;; (find-file "/ftp:guest@127.0.0.1:")
;; (find-file "/ftp:root@127.0.0.1:/")
;; (find-file "/ftp:edrx@parati:")
;; (find-node "(tramp)Top")
;; http://lists.gnu.org/archive/html/tramp-devel/
;; (eekill "make-auto-save-file-name")
;; (find-trampgrep "grep -nH -e make-auto-save-file-name lisp/*.el")
;; (find-efile "files.el")
;; (find-eetcfile "NEWS")
;; (find-eetcfile "NEWS" "`make-auto-save-file-name' is now handled")

(code-c-d "tramp" "~/usrc/tramp/" :grep)

(seen 6375)


;; (if (= emacs-major-version 22)
;;   (add-to-list 'load-path "~/usrc/tramp/lisp/"))



;; «ruby»  (to ".ruby")
;; (find-es "ruby" "rubyri")
;;
(code-c-d "rubybook"   "/usr/share/doc/rubybook/html/")
(code-c-d "rubymanual" "/usr/share/doc/ruby-manual/html/")
(code-c-d "rubyfaq"    "/usr/share/doc/ruby-manual/faq/")
(code-c-d "rubyex"     "/usr/share/doc/ruby1.8-examples/examples/")
(code-c-d "rubylib"    "/usr/lib/ruby/1.8/")

;; (find-rubyri "Test::Unit")
(defun find-rubyri (name &rest rest)
  (apply 'find-sh-man-fontify (format "PAGER=cat ri '%s'" name) rest))

;; (find-rubybookfile "")
;; (find-rubymanualfile "")
;; (find-rubyfaqfile "")
;; (find-rubyexfile "")
;; (find-rubyexfile "webrick/hello.rb")
;; (find-rubyexfile "webrick/hello.cgi")
;; (find-rubylibfile "")
;; (find-rubylibfile "webrick/")
;; (find-rubymanualw3m "syntax.html" "class Foo < Super")

(code-c-d "ruby" "~/usrc/ruby/ruby1.8-1.8.2/")
;; (code-c-d-old "rubysrc" "~/usrc/ruby/ruby1.8-1.8.2/build-tree/ruby-1.8.2/" :gdb)
;; (find-rubyfile "")
;; (find-rubysrcfile "")

;; (find-es "ruby" "postgres-pr")
(code-c-d "postgrespr" "~/usrc/postgres-pr-0.4.0/d/")

;; «ruby-pragmatic»  (to ".ruby-pragmatic")
;; (find-angg ".emacs.papers" "ruby")
;; (find-es "ruby" "pragmatic")
;;
;;(code-xpdf "pragmaticruby" "~/tmp/ruby-pragmatic-2nd-ed.pdf")
;;(code-c-d  "pragmaticruby" "~/tmp/ruby-pragmatic-2nd-ed.txt")
;;(defun find-pragmaticrubytext (&rest rest) (interactive)
;;  (apply 'find-pragmaticrubyfile "" rest))

;; (find-code-c-d "e" ee-emacs-lisp-directory "emacs" :grep :gz)
;; (code-c-d "e" ee-emacs-lisp-directory "emacs" :grep :gz)
(code-c-d "es" "$ES/" :grep)

;; (code-c-d "org" "~/ORG/" :anchor :grep)

;; This should be moved to .emacs.local.sj (sweetjane)
;; (code-c-d "mediador"       "/ftp:edrx@parati:/app/mediador/")
;; (code-c-d "mediadorparati" "/ftp:mediador@parati:/app/mediador/")
;; (code-c-d "parati"   "/ftp:edrx@parati:")
;; (code-c-d "trindade" "/ftp:edrx@trindade:")
;;
;; (code-c-d "paratireadline" "/ftp:edrx@parati:usrc/readline-5.1/")
;; (code-c-d "paratilua50"    "/ftp:edrx@parati:usrc/lua-5.0.2/")
;;
;; (code-c-d "paratioraclehome" "/ftp:edrx@parati:/opt/oracle/product/9.2.0/")


;; «titan»  (to ".titan")
;;
;; ;; (find-titanfile "")
;; ;; (find-titansmsfile "")
;; ;; (find-titansmsfile "titanfilter.h")
;; (code-c-d "titan"    "~/TITAN/" :anchor)
;; (code-c-d "titansms" "~/TITAN/" :anchor)
;; (code-c-d "titansmsdocs" "~/usrc/titan-sms-docs/")
;; ;; (find-titansmsdocsfile "")
;; ;;
;; (code-xpdf "titandic"
;;   "~/usrc/titan-sms-docs/Docionario de dados V1.1.pdf")
;; (code-xpdf "titanspec"
;;   "~/usrc/titan-sms-docs/Especificacao GTW Interceptador SMS - V1.0.pdf")
;; (code-xpdf "titanprojfis"
;;   "~/usrc/titan-sms-docs/TITAN_SMS_PROJ_FISICO.pdf")
;; (code-xpdf "titanprojlog"
;;   "~/usrc/titan-sms-docs/TITAN_SMS_PROJ_LOGICO.pdf")
;; (code-xpdf "titansmsminuta"
;;   "~/usrc/titan-sms-docs/20060607-VIVBRSIP02-Minuta-SMS-V1.5.pdf")
;;
;; (find-titandicpage 1)
;; (find-titanspecpage 1)
;; (find-titanprojfispage 1)
;; (find-titanprojlogpage 1)
;; (find-titansmsminutapage 1)

;; «titand-docs-text»  (to ".titand-docs-text")
;; (find-titan "titan.e" "docsprincipais.txt")
;;
;; (defun find-titanspectext (&rest rest)
;;   (apply 'find-titansmsdocsfile "titanspec.txt" rest))
;; (defun find-titandictext (&rest rest)
;;   (apply 'find-titansmsdocsfile "dicdados.txt" rest))
;; (defun find-titanprojfistext (&rest rest)
;;   (apply 'find-titansmsdocsfile "projfis.txt" rest))
;; (defun find-titanprojlogtext (&rest rest)
;;   (apply 'find-titansmsdocsfile "projlog.txt" rest))

;; (find-titanspectext)
;; (find-titandictext)
;; (find-titanprojfistext)
;; (find-titanprojlogtext)




;; (ee-add-file-name-maybe "/foo/bar/plic" "/tmp/ploc")
;; (ee-add-file-name-maybe "/foo/bar/"     "/tmp/ploc")
;;
(defun ee-add-file-name-maybe (fname-or-dir fname)
  (if (equal (file-name-directory fname-or-dir) fname-or-dir)
      (concat fname-or-dir (file-name-nondirectory fname))
    fname-or-dir))

(defun ee-copy-file- (fname1 fname2)
  (let ((coding-system-for-read  'raw-text-unix)
        (coding-system-for-write 'raw-text-unix))
    (with-temp-buffer
      (insert-file-contents-literally fname1)
      (write-region (point-min) (point-max) fname2))))

(defun ee-copy-file (fname1 fname2)
  (setq fname1 (ee-expand fname1))
  (setq fname2 (ee-expand fname2))
  (setq fname2 (ee-add-file-name-maybe fname2 fname1))
  (ee-copy-file- fname1 fname2))


;; (find-efunction 'org-goto)

(defun my-org-mode ()
  "Like `org-mode', but doesn't change point"
  (interactive)
  (save-excursion (org-mode))
  (reveal-post-command))

;; (find-elnode "Index" "* directory-files:")
;; (find-elnode "Contents of Directories")
;; (find-efunction 'find-frame-font-links)
;; (find-orgfiles)
;;
(defun find-orgfiles (&rest rest)
  (let* ((f (lambda (fname) `(find-orgfile ,fname)))
	 (fnames (directory-files  ee-orgdir nil "^[^#~]+.org$"))
	 (links (mapcar f (reverse fnames))))
    (apply 'find-elinks
	   `((find-orgfiles ,@rest)
	     (find-orggrep "grep -nH -e _ *.org")
	     (find-esgrep "grep -nH -e _ *.e")
	     ,@links)
	   rest)))

;; (code-c-d "mediadorsj" "~/usrc/mediador/" :grep)
;; (find-mediadorsjfile "")

(seen 7130)

;; http://article.gmane.org/gmane.emacs.eev.devel/42
;; http://www.emacswiki.org/cgi-bin/wiki/IndirectBuffers

(defvar indirect-mode-name nil
  "Mode to set for indirect buffers.")
(make-variable-buffer-local 'indirect-mode-name)

(defun indirect-region (start end)
  "Edit the current region in another buffer.
    If the buffer-local variable `indirect-mode-name' is not set, prompt
    for mode name to choose for the indirect buffer interactively.
    Otherwise, use the value of said variable as argument to a funcall."
  (interactive "r")
  (let ((buffer-name (generate-new-buffer-name "*indirect*"))
        (mode
         (if (not indirect-mode-name)
             (setq indirect-mode-name
                   (intern
                    (completing-read
                     "Mode: "
                     (mapcar (lambda (e)
                               (list (symbol-name e)))
                             (apropos-internal "-mode$" 'commandp))
                     nil t)))
           indirect-mode-name)))
    (switch-to-buffer (make-indirect-buffer (current-buffer) buffer-name))
    (narrow-to-region start end)
    (funcall mode)
    (goto-char (point-min))
    ))

(defun eeindirect ()
  "Edit the eev bounded region in another buffer."
  (interactive)
  (let ((eebound-re "^[-;%#]+*\n")      ; bounded region delimiter regexp
        s e)
    (save-excursion
      (when (re-search-backward eebound-re nil t)
        (forward-line -1)
        (setq s (point))))
    (save-excursion
      (when (and s (re-search-forward eebound-re nil t))
        (beginning-of-line)
        (setq e (point))
        (indirect-region s e)))))


;; (global-set-key (kbd "s-s") 'toggle-scroll-bar)
;; (global-set-key (kbd "s-w") 'wrap)

;; (defun upload-changes-sweetjane ()
;;   (interactive)
;;   (find-es "page" "compare-tp-and-home"))
;;
;; ' (defalias 'upload-changes 'upload-changes-sweetjane)


;; «postgres»  (to ".postgres")
;; (find-esfile "postgres.e")
;; Older (debian-ish, non-upstream-ish):
;; (code-c-d "pgdoc"  "/usr/share/doc/postgresql-doc/")
;; (code-c-d "pghtml" "/usr/share/doc/postgresql-doc/html/")
;; (code-c-d "pgtut"  "/usr/share/doc/postgresql-doc/tutorial/")

;; (code-c-d "pg"     "~/usrc/postgresql-7.4.13/" :grep)
;; (code-c-d "pgex"   "~/usrc/postgresql-7.4.13/src/test/examples/")
;; (code-c-d "pgdoc"  "~/usrc/postgresql-7.4.13/doc/html/" :grep)
;; (code-c-d "pghtml" "~/usrc/postgresql-7.4.13/doc/html/" :grep)
;; (code-c-d "psql"   "~/usrc/postgresql-7.4.13/src/bin/psql/" :grep)
;; (setq ee-pgextagsfile  ee-pgtagsfile)
;; (setq ee-pgdoctagsfile ee-pgtagsfile)
;; (setq ee-psqltagsfile  ee-pgtagsfile)
;; ;; (find-psqlfile "")
;; ;; (find-pgdocfile "")



;; «find-C-links»  (to ".find-C-links")
;; Test with M-h c on this: printf
;;
' (define-key eev-mode-map "\M-hc" 'find-C-links)

(defun find-C-links (fstr &rest rest)
  (interactive (list (read-string "C function name: "
				  (ee-stuff-around-point "a-zA-Z0-9_"))))
  (apply 'find-elinks
	 `((find-C-links ,fstr ,@rest)
	   (find-node "(libc)Function Index" ,(concat "* " fstr ":"))
	   (find-man ,(concat "3 " fstr))
	   (find-man ,(concat "2 " fstr))
	   (find-uclibctag ,fstr))
	 rest))



;; ;; «find-postgres-links»  (to ".find-postgres-links")
;; (defun find-postgres-links (symbolstr &rest rest)
;;   (interactive (list (read-string "Postgres function name: "
;; 				  (ee-stuff-around-point "a-zA-Z0-9_"))))
;;   (apply 'find-elinks
;; 	 `((find-postgres-links ,symbolstr ,@rest)
;; 	   (find-pgdocfile "")
;; 	   (find-pgtag ,symbolstr))
;; 	 rest))

;; (define-key eev-mode-map "\M-hp" 'find-postgres-links)


;; «find-grep-links»  (to ".find-grep-links")
'(

(defun ee-findxxxgreps (dir)
"Return the list of `find-xxxgrep' symbols where XXX is associated to DIR"
  ;; Inspired by: (find-efunction 'code-c-d-prefixes)
  (let* ((expdir (ee-expand dir))
	 (c-d-s (ee-filter (lambda (c-d) (equal (nth 1 c-d) expdir))
			   code-c-d-list))
	 (cs (mapcar 'car c-d-s)))
    (mapcar (lambda (c) (intern (format "find-%sgrep" c))) cs)))

;; (ee-trimafter 8 '(a b c d e f))
;; (ee-trimafter 4 '(a b c d e f))
;; (ee-trimafter 0 '(a b c d e f))

(defun ee-trimafter (n list)
"Return a list that has only the first N elements of LIST.
If LIST has N elements or less return it unchanged."
  ;; Inspired by: (find-efunction 'butlast)
  (cond ((<= (length list) n) list)
	((<= n 0) nil)
	(t (let ((newlist (copy-sequence list)))
	      (setcdr (nthcdr (- n 1) newlist) nil)
	      newlist))))

;; (ee-findxxxgrep-links '(f g h) '("a" "b" "c") "foo" "bar")
;;
(defun ee-findxxxgrep-links (find-xxxgreps grep-commands &rest rest)
  "FIND-XXXGREPS is a list of symbols, GREP-COMMANDS a list of strings."
  (let (result)
    (dolist (head find-xxxgreps)
      (dolist (command grep-commands)
	(setq result (cons `(,head ,command ,@rest) result))))
    (nreverse result)))

(defun find-grep-links (&rest rest)
  (interactive)
  (let ((findxxxgreps (ee-findxxxgreps default-directory))
	(grep-commands (ee-trimafter 4 (cons "grep -nH -e _ *" grep-history))))
    (apply 'find-elinks
	   `((find-grep-links ,@rest)
	     ,@(ee-findxxxgrep-links findxxxgreps grep-commands)
	     )
	   nil)))

(define-key eev-mode-map "\M-h\M-g" 'find-grep-links)

)


;; ;; «swig»  (to ".swig")
;; ;; Test with M-h M-p on this: PQexec
;; (code-c-d "swig"       "~/usrc/swig-1.3.29/")
;; (code-c-d "swigmanual" "~/usrc/swig-1.3.29/Doc/Manual/")



;; «eea2ps»  (to ".eea2ps")
;; (find-angg ".a2ps/a2psrc")

(defun find-a2ps (fname)
  (interactive "f")
  (list (find-sh0 (format "a2ps -=p2isol '%s' -o ~/o.ps" (ee-expand fname)))
	(find-pspage "~/o.ps")))

(defun eea2ps (s &optional e) (interactive "r")
  (let ((coding-system-for-write 'latin-1-unix))
    (ee-write s e "" "" "~/o"))
  (find-sh0 "cd; a2ps -=p2isol o")
  (find-pspage "~/o.ps"))

(defun eea2ps1 (s &optional e) (interactive "r")
  (let ((coding-system-for-write 'latin-1-unix))
    (ee-write s e "" "" "~/o"))
  (find-sh0 "cd; a2ps -=p1iso o")
  (find-pspage "~/o.ps"))

(defun eea2ps3 (s &optional e) (interactive "r")
  (let ((coding-system-for-write 'latin-1-unix))
    (ee-write s e "" "" "~/o"))
  (find-sh0 "cd; a2ps -=p3isol o")
  (find-pspage "~/o.ps"))

;; «eea2ps-meta»  (to ".eea2ps-meta")
;; (setq eea2ps-meta "cd; a2ps -=p1iso -l 100 o")
;; (find-eea2ps-links)
(setq  eea2ps-meta "cd; a2ps -=p1iso o")
(defun eea2ps-meta (s &optional e) (interactive "r")
  (let ((coding-system-for-write 'latin-1-unix))
    (ee-write s e "" "" "~/o"))
  (find-sh0 eea2ps-meta)
  (find-pspage "~/o.ps"))

(defun find-eea2ps-links (&rest rest)
  (interactive)
  (find-elinks
   `((find-eea2ps-links ,@rest)
     (find-angg ".a2ps/a2psrc")
     (find-angg ".emacs" "eea2ps-meta")
     (setq eea2ps-meta ,eea2ps-meta)
     (setq eea2ps-meta "cd; a2ps -=p1isol o")
     (setq eea2ps-meta "cd; a2ps -=p1iso o")
     (setq eea2ps-meta "cd; a2ps -=p2iso o")
     "%*"
     "% (eea2ps-meta-bounded)"
     "%*"
     )))

;; (eeb-define 'eea2ps-meta-bounded  'eea2ps-meta  'ee-delimiter-percent nil t t)

;; «eea2pswide»  (to ".eea2pswide")
;; (find-angg ".a2ps/a2psrc" "p1isolwide")
;;
(defun eea2pswide (s &optional e) (interactive "r")
  (let ((coding-system-for-write 'latin-1-unix))
    (ee-write s e "" "" "~/o"))
  (find-sh0 "cd; a2ps -=p1isolwide o")
  (find-pspage "~/o.ps"))

;; (eeb-define 'eea2ps-bounded  'eea2ps  'ee-delimiter-percent nil t t)
;; (eeb-define 'eea2ps3-bounded 'eea2ps3 'ee-delimiter-percent nil t t)

(defun find-a2ps-file (fname)
  (interactive "f")
  (list (find-callprocess0
	 `("a2ps" "-=p2isol" ,(ee-expand fname)
	          "-o"       ,(ee-expand "~/o.ps")))
	(find-pspage "~/o.ps")))

(defun find-a3ps-file (fname)
  (interactive "f")
  (list (find-callprocess0
	 `("a2ps" "-=p3isol" ,(ee-expand fname)
	          "-o"       ,(ee-expand "~/o.ps")))
	(find-pspage "~/o.ps")))


(code-brfile 'find-a2ps-file :local 'bra2psl :dired 'bra2psd)
(code-brfile 'find-a3ps-file :local 'bra3psl :dired 'bra3psd)




;; «fill-rcirc-paragraph»  (to ".fill-rcirc-paragraph")
;; Note: I haven't coded an "unfill-rcirc-paragraph" yet.

(defun fill-rcirc-paragraph ()
"Fill the current line as if it were a long line in an rcirc log.
If it starts with \"<nick>\" then use blanks to the width of
\"<nick>\" (plus one) as the fill-prefix for the other lines of
the paragraph. Lines that are not of that form are not changed.
This function advances point to the beginning of the next line.
Note that I don't use timestamps in my rcirc logs."
  (interactive)
  (save-restriction
    (narrow-to-region (point-at-bol) (1+ (point-at-eol)))
    (goto-char (point-min))
    (if (looking-at "<[-_A-Za-z0-9`]+>")
	(let* ((head (match-string 0))
	       (fill-prefix (make-string (1+ (length head)) 32)))
	  (fill-region-as-paragraph (point-min) (point-max))))
    (goto-char (point-max))))
;;
(global-set-key (kbd "M-R") 'fill-rcirc-paragraph)


;; «find-rcirc-channel-sexps»  (to ".find-rcirc-channel-sexps")
;; 2006sep02
(defun ee-sexp-value (sexp)
  "Example: (ee-sexp-value '(+ 1 2))"
  (list (ee-pp0 sexp) (format "  -> %s" (ee-pp0 (eval sexp)))))

(defun ee-rcirc-channel-sexp (sexp)
  "Internal use. Uses the value and the name of the variable `c'."
  (ee-sexp-value `(with-current-buffer c ,sexp)))

(defun ee-rcirc-server-sexp (sexp)
  "Internal use. Uses the value and the name of the variable `s'."
  (ee-sexp-value `(with-current-buffer s ,sexp)))

(defun ee-rcirc-channel-sexps (c)
  "Example: (find-elinks (ee-rcirc-channel-sexps \"#rcirc@irc.freenode.net\"))"
  `(,@(ee-rcirc-channel-sexp 'rcirc-target)
    ,@(ee-rcirc-channel-sexp '(rcirc-buffer-process))
    ,@(ee-rcirc-channel-sexp 'rcirc-server-buffer)
    ,@(ee-rcirc-channel-sexp 'rcirc-short-buffer-name)
    ,@(ee-rcirc-channel-sexp 'rcirc-topic)
    ,@(ee-rcirc-channel-sexp '(rcirc-nick (rcirc-buffer-process)))
    ,@(ee-rcirc-channel-sexp
       '(rcirc-channel-nicks (rcirc-buffer-process) rcirc-target))
    ))

(defun ee-rcirc-server-sexps (s)
  "Example: (find-elinks (ee-rcirc-server-sexps \"*irc.freenode.net*\"))"
  `(,@(ee-rcirc-server-sexp 'rcirc-server)
    ,@(ee-rcirc-server-sexp 'rcirc-buffer-alist)
    ))

;; (find-elinks (ee-rcirc-channel-sexps "#rcirc@irc.freenode.net"))
;; (find-elinks (ee-rcirc-server-sexps "*irc.freenode.net*"))
;; (find-rcirc-channel-sexps "#rcirc@irc.freenode.net")

(defun find-rcirc-channel-sexps (&optional buffer)
  "Visit a temporary buffer showing data associated to an rcirc channel buffer.
How to use: if you run\n
  (define-key eev-mode-map \"\M-hr\" 'find-rcirc-channel-sexps)\n
and then type `M-h r' when you're inside an rcirc channel buffer -
for example, when you're at the buffer for the channel #rcirc at
irc.freenode.node - then you will get a buffer with several
interesting sexps and their values.\n
This function is mostly a proof of concept at the moment.
We should write something like this to inspect buttons, customize
buffers, and dired buffers."
  (interactive (list (buffer-name (current-buffer))))
  (if (bufferp buffer) (setq buffer (buffer-name buffer)))
  (let ((server-buffer (buffer-name
			(with-current-buffer buffer
			  rcirc-server-buffer))))
    (find-elinks
     `((find-rcirc-channel-sexps ,buffer)
       (progn (make-local-variable 'c) (setq c ,buffer))
       (progn (make-local-variable 's) (setq s ,server-buffer))
       ""
       ,@(ee-rcirc-channel-sexps buffer)
       ""
       ,@(ee-rcirc-server-sexps server-buffer)
       ))))

(define-key eev-mode-map "\M-hr" 'find-rcirc-channel-sexps)








;; http://homepage1.nifty.com/bmonkey/emacs/elisp/screen-lines.el
;; See also: http://www.emacswiki.org/cgi-bin/wiki/VisibleLines
;; '(
;; (autoload 'screen-lines-mode
;;   (ee-expand "$S/http/homepage1.nifty.com/bmonkey/emacs/elisp/screen-lines.el")
;;   "Toggle Screen Lines minor mode for the current buffer." t)
;;
;; (defalias 'slm 'screen-lines-mode)
;; )

;; «display-time-mode»  (to ".display-time-mode")
;; (find-enode "Optional Mode Line")
;; With thanks to Marc Simpson.
(setq display-time-mail-file 'none)
(setq display-time-default-load-average nil)
(setq display-time-24hr-format t)
(setq display-time-format " %H:%M ")
(defalias 'dtm 'display-time-mode)
;; (dtm)

;; (find-evardescr 'mode-line-format)
;; (find-evardescr 'mode-line-format "global-mode-string")

' (defalias 'mkdir 'make-directory)

;; http://www.emacswiki.org/cgi-bin/emacs/eimp.el
;; http://www.emacswiki.org/cgi-bin/emacs/download/eimp.el
;;
;; '(autoload 'eimp-mode
;;   (ee-expand "$S/http/www.emacswiki.org/cgi-bin/emacs/download/eimp.el")
;;   "Emacs Image Manipulation Package." t)


;; «eemklinks-yank-w3m-anchor»  (to ".eemklinks-yank-w3m-anchor")
;; (find-efunction 'eemklinks-yank-pos-spec)
;; (find-efunction 'eemklinks-yank-w3m-anchor)
;;
;; (defun eemklinks-yank-w3m-anchor () (interactive)
;;   (save-excursion
;;     (end-of-line)
;;     (skip-chars-backward ")")
;;     (skip-chars-backward "\"")
;;     (insert "#" (with-current-buffer "*w3m*"
;;                   (car (get-char-property (point) 'w3m-name-anchor2))))))
;;
;; (define-key eev-mode-map "\M-h\M-Y" 'eemklinks-yank-w3m-anchor)


;; «find-C-x»  (to ".find-C-x")
;; (find-es "emacs" "window-configurations")
;; See: (find-eev "eev-multiwindow.el")
;;      (find-multiwindow-intro)
;;
(defun find-C-x (C-x &rest C-x-s)
  (cond ((stringp C-x) (eek (concat "C-x " C-x)))
	((listp C-x)   (eval C-x))
	(t (error "Not a C-x-step: %S" C-x)))
  (if C-x-s (apply 'find-C-x C-x-s)))

' (find-C-x "1" '(find-angg ".emacs" "find-C-x")
	    "3" "o" '(find-node "(emacs)RegConfig" "`C-x r w R'")
	    "o" "r w 1")




;; «find-ebuffer-links»  (to ".find-ebuffer-links")
;; (find-efunction 'find-ekey-links)
;; (find-efunctiondescr 'switch-to-buffer)
;; (find-efunction      'switch-to-buffer)
;; (find-efunctiondescr 'kill-buffer)
;; (find-efunction      'kill-buffer)

(define-key eev-mode-map "\M-h\M-b" 'find-ebuffer-links)

(defun find-ebuffer-links (buffer &rest rest)
  (interactive "bHyperlinks for buffer: ")
  (apply 'find-elinks
	 `((find-ebuffer-links ,buffer ,@rest)
	   (find-ebuffer ,buffer)
	   (eepitch-to-buffer ,buffer)
	   )
	 rest))


;; «freedb-rename»  (to ".freedb-rename")
;; (find-angg ".zshrc" "cddb2rentracks")
;;
;; (defun freedb-rename (N &optional ext)
;;   (interactive "p")
;;   (dotimes (i N)
;;     (let* ((line (ee-delete-and-extract-line))
;; 	   (sline (replace-regexp-in-string "^http://" "$S/http/" line)))
;;       (insert (format "# %s
;; # (find-zsh \"cddb2rentracks < %s\")
;; function rentrack () { mv -iv track$1.cdda.wav $1._$2.wav }
;; function rentrack () { mv -iv track$1.cdda.ogg $1._$2.ogg }
;; cd ~/NICOTINE/\n" line sline)))
;;     (forward-char 1)))



;; «find-pdfpage-pdftotext»  (to ".find-pdfpage-pdftotext")
;; Search for "Kock.zip" at gmail.
;; (find-fline "/tmp/Kock.zip")
;; (find-man "1 unzip" "overwrite existing files")
;; (find-es "ps" "xpdftools")
;; (find-sh "cd /tmp/; unzip -o ~/tmp/Kock.zip")
;; (find-pspage "/tmp/Kock3.pdf" 14)
;; (find-pspage "/tmp/Kock4.pdf" 3)
;; (find-pspage "/tmp/kock1.pdf")
;; (find-pspage "/tmp/kock2.pdf")
;; (find-pdftotext "/tmp/Kock3.pdf" "A simple axiomatics for differentiation")
;; (find-pdftotext "/tmp/Kock4.pdf" "factorization")
;; (find-pdftotext "/tmp/kock1.pdf")
;; (find-pdftotext "/tmp/kock2.pdf")
;;
'(
(defun find-pstotext (fname &rest rest)
  (apply 'find-sh (format "cat %s | pstotext" fname) rest))
(defun find-zpstotext (fname &rest rest)
  (apply 'find-sh (format "zcat %s | pstotext" fname) rest))

(code-brfile 'find-pdftotext
             :local 'brpdftxtl :dired 'brpdftxtd)
(code-brfile 'find-a2ps-file
             :local 'bra2psl :dired 'bra2psd)
(code-brfile 'find-a3ps-file
             :local 'bra3psl :dired 'bra3psd)

(code-brurl 'find-dpkg-build-escript
            :remote 'brdsc :local 'brdscl :dired 'brdscd)
(code-brurl 'find-template-untgz
            :remote 'bruntgz :local 'bruntgzl :dired 'bruntgzd)
(code-brurl 'find-template-untbz2
            :remote 'bruntbz2 :local 'bruntbz2l :dired 'bruntbz2d)

)


;; «find-xxxtkdiff»  (to ".find-xxxtkdiff")
;; 2006jul31; not working yet
;; '
;; (add-to-alist 'code-c-d-keywords
;;  '(:tkdiff
;;    (ee-eval-read-format "
;;     (defun find-%stkdiff (prefix f1 f2)
;;       (find-tkdiff (ee-%sfile prefix) f1 f2))" c c)))


;; AAAARGH, code-c-d doesn't complain when it gets bad tags
;; (code-c-d "mediadorsj" "~/usrc/mediador/" :grep :tkdiff :foo)
;; (code-c-d "dialogex" "/usr/share/doc/dialog/examples/" :grep)

;; (find-mediadorsjfile "")
;; (find-mediadorsjtkdiff "admin/ivr/" "volta_ivr.2006aug01.sh" "volta_ivr.2006jul26.sh")
;; "volta_ivr.2006mar28.sh"


;; «find-cdecl»  (to ".find-cdecl")
;; (find-es "anatocc" "cdecl")
;; (find-node "(cutils)cdecl/cundecl examples")
;; (find-cdecl "explain void (*commands[128])(void)")
;; (find-cdecl "declare commands as array 128 of pointer to function (void) returning void")
;; (find-cdecl "declare cmds as array 128 of ptr to function (void) ret void")
(defun find-cdecl (str) (find-sh0 (format "echo '%s' | cdecl" str)))


;; «eetcc»  (to ".eetcc")
;; (find-es "anatocc" "tcc")
;; (find-eev "eev-langs.el" "eelua0")
;; (find-eev "eev.el")
;; (find-eevexfile "c.e")
;; (find-eevfile "eev-rctool")
;; (find-eevfile "eev-rctool" "EETMPC:=")
;; (find-fline "$EEC")
;; (find-fline "$EETMPC")

(defun eetcc (s &optional e)
  (interactive "r")
  (ee-write-with-nl s e "#include <tcclib.h>\n" "" (ee-expand "$EEC")))

(defun eetccnow  (s &optional e)
  (interactive "r")
  (eetcc s e)
  (find-sh  "tcc -run $EEC"))

(defun eetccnow0 (s &optional e)
  (interactive "r")
  (eetcc s e)
  (find-sh0 "tcc -run $EEC"))

(defun find-tcc (progcode &rest rest)
  (eetcc progcode)
  (apply 'find-sh "tcc -run $EEC" rest))

(defun find-tcc0 (progcode &rest rest)
  (eetcc progcode)
  (apply 'find-sh0 "tcc -run $EEC" rest))

;; (eeb-define 'eeb-tcc  'eetccnow  "\n//*\n" nil t t)
;;(eeb-define 'eeb-tcc0 'eetccnow0 "\n//*\n" nil t t)


;; «figlet»  (to ".figlet")
;; (find-es "figlet")
;; Other nice fonts: ogre, big

(setq figlet-cmd "figlet -f standard | gsub.lua '' ';;; %1'")
(setq figlet-cmd "figlet -f standard | gsub.lua '' '%% %1'")
(setq figlet-cmd "figlet -f standard | gsub.lua '' '# %1'")
(setq figlet-cmd "figlet -f standard | gsub.lua '' ' # %1'")
(setq figlet-cmd "figlet -f standard | gsub.lua '' '-- %1'")
(setq figlet-cmd "figlet -f standard | gsub.lua '' '    -- %1'")
(setq figlet-cmd "figlet -f standard | gsub.lua '' '// %1'")
(setq figlet-cmd "figlet -f standard | gsub.lua '' '*;; %1'")
(setq figlet-cmd "figlet -f standard | gsub.lua '' ' ! %1'")
(setq figlet-cmd "figlet -f standard | gsub.lua '' '     %1'")

(setq figlet-cmd "figlet -f standard | gsub.lua '' '%% %1'")

(defun figlet-region (s e)
  (interactive "r")
  (shell-command-on-region s e figlet-cmd nil t))

;; Tests: (figlet-cmd "!! ")
;;        (find-estring (figlet-string "Foo"))
;;        (find-estring (figlet-string-with "!! " "Foo"))
;;
(defun figlet-cmd (subpat)
  (format "figlet -f standard | gsub.lua '' '%s%%1'" subpat))

(defun figlet-string (str)
  (with-temp-buffer
    (insert str)
    (figlet-region (point-min) (point-max))
    (buffer-substring (point-min) (point-max))))

(defun figlet-string-with (subpat str)
  (let ((figlet-cmd (figlet-cmd subpat)))
    (figlet-string str)))

;; Test: (eek "RET foo <<figlet>>")
(defun figlet (&optional arg)
  "Run `figlet-region' on the current line."
  (interactive "P")
  (if (eq arg 0)
      (progn (find-angg ".emacs" "figlet")
	     (message "Current figlet-cmd: %S" figlet-cmd))
    (figlet-region (ee-bol) (1+ (ee-eol)))))




;; «eshell»  (to ".eshell")
;; (find-es "eshell")
(code-c-d "eshell" (ee-efile "eshell/") "eshell" :gz)
;; (find-eshellfile "")
;; (find-eshellnode "")
;;
;; kensanata
' (add-hook 'eshell-mode-hook
    (lambda ()
      (local-set-key (kbd "C-z") 'bury-buffer)
      (local-set-key (kbd "C-a") 'eshell-bol)
      (local-set-key (kbd "<up>") 'previous-line)
      (local-set-key (kbd "<down>") 'next-line)))

;; (find-efile "eshell/em-hist.el" "defun eshell-save-some-history")
;; (find-efile "eshell/em-hist.el" "defcustom eshell-save-history-on-exit")
;; (setq eshell-save-history-on-exit nil)
;; (find-efile "eshell/em-rebind.el")



;; «unaccent»  (to ".unaccent")
;; (find-angg ".emacs.unibyte" "unaccent")

;; «flip-psne-ness»  (to ".flip-psne-ness")
;; Moved to: (find-eev "eev-edit.el" "ee-flip-psne-ness")
;;
;; (defun flip-psne-ness ()
;;   (interactive)
;;   (if (search-forward-regexp "\\$S/\\(https?\\|ftp\\)/\\|\\(https?\\|ftp\\)://")
;;       (cond ((match-string 1) (replace-match "\\1://"))
;;             ((match-string 2) (replace-match "$S/\\2/")))))

;; (define-key my-mode-map "\M-s" 'flip-psne-ness)


(code-c-d "debfaq" "/usr/share/doc/debian/FAQ/")
;; (find-debfaqfile "debian-faq.en.txt.gz")

;; «find-other-debian-links»  (to ".find-other-debian-links")
;; Add: stuff for unpacking and building from source.
(defun find-other-debian-links (&optional str)
  (interactive (list (ee-no-properties (ee-debpkgname-around-point))))
  (if (or (null str) (equal str ""))
      (setq str "_"))
  (find-elinks `((find-other-debian-links ,str)
		 (find-zsh ,(format "dmissing %s" str))
		 (find-sh  ,(format "apt-file search %s" str))
		 (find-zsh "installeddebs | sort")
		 (find-zsh "installeddebs | sort" ,str)
		 (find-zsh ,(format "installeddebs | sort | grep %s" str))
		 (find-zsh "availabledebs | sort")
		 (find-zsh "availabledebs | sort" ,str)
		 (find-zsh ,(format "availabledebs | sort | grep %s" str))
		 (find-zsh ,(format "acse %s | sort" str))
		 (find-zsh ,(format "acse -i %s | sort" str))
		 (find-zsh ,(format "grep-available %s" str))
		 (find-zsh ,(format "grep-status %s" str)))))

(define-key eev-mode-map "\M-hd" 'find-other-debian-links)



;; «find-ekbmacro-links»  (to ".find-ekbmacro-links")
;; (find-eev "eev-elinks.el" "find-ekbmacro-links")



;; «find-dpkg-build-escript»  (to ".find-dpkg-build-escript")
;; anyone here remembers the precise rules for splitting the names of
;; "dsc" files (a debian source package thing) into parts? I need a
;; regexp for splitting, for example,
;; "http://ftp.debian.org/debian/pool/main/i/imagemagick/imagemagick_6.2.4.5.dfsg1-0.9.dsc"
;; into ("http" "ftp.debian.org/debian/pool/main/i/imagemagick/"
;; "imagemagick" "6.2.4.5.dfsg1" "-0.9")

(defun ee-dsc-url-split (dsc-url)
  "Example:
  (ee-dsc-url-split
   \"http://ftp.debian.org/debian/pool/main/i/imagemagick/imagemagick_6.2.4.5.dfsg1-0.9.dsc\")
  -> (\"http\" \"ftp.debian.org/debian/pool/main/i/imagemagick/\"
      \"imagemagick\" \"6.2.4.5.dfsg1\" \"-0.9\")"
  (let ((prot://dir/ (file-name-directory dsc-url))
	(fname-dsc (file-name-nondirectory dsc-url))
	prot dir/ xxx vvv -sv)
    (if (string-match "^\\([a-z]+\\)://\\(.*\\)" prot://dir/)
	(setq prot (match-string 1 prot://dir/)
	      dir/ (match-string 2 prot://dir/)))
    (if (string-match "^\\([^_]+\\)_\\([^-]+\\)\\(-.*\\)?\\.dsc$" fname-dsc)
	(setq xxx (match-string 1 fname-dsc)
	      vvv (match-string 2 fname-dsc)
	      -sv (or (match-string 3 fname-dsc) "")))
    (list prot dir/ xxx vvv -sv)))

(defun ee-escript-header (title)
  "Example: (find-elinks (ee-escript-header \"Blah blah blah\"))"
  `("#####"
    "#"
    ,(format "# %s" title)
    ,(format "# %s" (date-as-string))
    "#"
    "#####"
    ))

(defun ee-find-dpkg-build-escript (prot dir/ xxx vvv -sv)
  "Example:
  (find-elinks
   (ee-find-dpkg-build-escript
    \"http\" \"ftp.debian.org/debian/pool/main/i/imagemagick/\"
    \"imagemagick\" \"6.2.4.5.dfsg1\" \"-0.9\"))"
  (let ((urld/      (concat prot "://" dir/))
	(localurld/ (concat "$S/" prot "/" dir/)))
    `(,(format "# %s" urld/)
      ,(format "# %s%s_%s%s.dsc"           urld/ xxx vvv -sv)
      ,(format "# %s%s_%s%s.diff.gz"       urld/ xxx vvv -sv)
      ,(format "# %s%s_%s%s.debian.tar.gz" urld/ xxx vvv -sv)
      ,(format "# %s%s_%s.orig.tar.gz"     urld/ xxx vvv)
      "#*"
      ,(format "rm -Rv ~/usrc/%s/"       xxx)
      ,(format "mkdir  ~/usrc/%s/"       xxx)
      ,(format "cd %s"                   localurld/)
      ,(format "cp -v %s_%s* ~/usrc/%s/" xxx vvv xxx)
      ,(format "cd     ~/usrc/%s/"       xxx)
      ,(format "dpkg-source -sn -x %s_%s%s.dsc" xxx vvv -sv)
      ,(format "cd     ~/usrc/%s/%s-%s/"        xxx xxx vvv)
      ,(format "dpkg-buildpackage -us -uc -b -rfakeroot     |& tee odb")
      ""
      "#*"
      ,(format "# (find-fline \"~/usrc/%s/\")" xxx)
      ,(format "* (eepitch-shell)")
      ,(format "cd ~/usrc/%s/"                 xxx)
      ,(format "sudo dpkg -i *.deb")
      ""
      "#*"
      ,(format "# (code-c-d \"%s\" \"~/usrc/%s/%s-%s/\")" xxx xxx xxx vvv)
      ,(format "# (find-%sfile \"\")"                     xxx)
      )))

(defun find-dpkg-build-escript (dsc-url)
"Example: (find-dpkg-build-escript
          \"http://ftp.debian.org/debian/pool/main/g/gv/gv_3.6.2-4.dsc\")"
  (let* ((url-parts (ee-dsc-url-split dsc-url))
	 (xxx (nth 2 url-parts)))
    (find-elinks
     `((find-dpkg-build-escript ,dsc-url)
       ""
       ,@(ee-escript-header (format "%s (from the debian sources)" xxx))
       ""
       ,(format "# <%s-deb-src>" xxx)
       ,@(apply 'ee-find-dpkg-build-escript url-parts)
       ))))

;; (find-efunctiondescr 'find-dpkg-build-escript)
;; (find-efunctiondescr 'ee-find-dpkg-build-escript)
;; (find-efunctiondescr 'ee-escript-header)

;; (find-dpkg-build-escript "http://ftp.debian.org/debian/pool/main/g/gv/gv_3.6.2-4.dsc")
;; (brdsc  "http://ftp.debian.org/debian/pool/main/g/gv/gv_3.6.2-4.dsc")

(code-brurl 'find-dpkg-build-escript
	    :remote 'brdsc :dired 'brdscd)



;; 2006sep09 - overrides the default
;; «find-file-links»  (to ".find-file-links")
;; (find-efunction 'find-file-links)

(defun ee-find-file-extra-links (fname)
  (list
   ""
   (ee-replace-prefix "~/"      "http://anggtwu.net/" fname)
   (ee-replace-prefix "~/TH/L/" "http://anggtwu.net/" fname)
   (ee-replace-prefix "~/"      "file:///home/edrx/TH/L/" fname)
   (ee-replace-prefix "~/TH/L/" "file:///home/edrx/TH/L/" fname)
   ))

;; (find-eevfile "eev-insert.el")
;; (find-eevfile "eev-insert.el" "defun find-file-links")

;; '
;; (defun find-file-links (fname &rest rest)
;;   "Visit a temporary buffer containing hyperlinks related a file."
;;   (interactive (list (or (buffer-file-name) default-directory)))
;;   (apply 'find-elinks
;;          `((find-file-links ,fname)
;;            ""
;;            (find-fline ,fname)
;;            ,@(let ((home (ee-expand "$HOME/")))
;;                (if (ee-prefixp home fname)
;;                    (let ((homeless-fname (ee-remove-prefix home fname)))
;;                      `((find-fline ,(concat "~/" homeless-fname))
;;                        ""
;;                        ,(format "http://anggtwu.net/%s" homeless-fname)
;;                        ,(format "http://anggtwu.net/%s.html" homeless-fname)))))
;;            ,@(let ((vwt (ee-expand "$VWT/")))
;;                (if (ee-prefixp vwt fname)
;;                    (let ((vwtless-fname (ee-remove-prefix vwt fname))
;;                          (vwt-dir-url (format "http://%s/tmp/" (myip-as-string))))
;;                      `((find-fline ,(format "$VWT/%s" vwtless-fname))
;;                        ,(format "%s%s" vwt-dir-url vwtless-fname)))))
;;            ""
;;            ,@(ee-links-for-findxxxfile (ee-expand fname)))
;;          rest))

;; (progn (find-file-links (ee-expand "$VWT/1.txt")))


;; «find-bgprocess»  (to ".find-bgprocess")
;; (ee-unsplit (ee-split "aa   bb cc"))
;; (find-bgprocess `("xzgv" ,(ee-expand "$S/http/www.domai.com/-today/")))
;; (find-bgprocess                 "xzgv $S/http/www.domai.com/-today/" t)
;; (find-efunction 'find-callprocess0)

'(

(defun ee-split (str)
  "Return a list of the \"words\" at STR by splitting it at whitespace.
If STR is already a list return it unchanged."
  (if (stringp str)
      (split-string str "[ \t]+")
    str))

(defun ee-unsplit (list)
  "Concatenate the \"words\" in LIST into a big string, using spaces.
If LIST is already a string return it unchanged."
  (if (listp list)
      (mapconcat 'identity list " ")
    list))

'
(defun find-bgprocess (program-and-args &optional expand)
  "Start the background process PROGRAM-AND-ARGS.
PROGRAM-AND-ARGS can be either a string or a list of strings; see
`ee-split'. If EXPAND is non-nil then run `ee-expand' on each
component of PROGRAM-AND-ARGS. The process runs in background and
its output (including error messages) goes to the buffer
\"*Messages*\". "
  (let ((list (ee-split program-and-args)))
    (if expand (setq list (mapcar 'ee-expand list)))
    (apply 'start-process (car list) "*Messages*" list)))

;;-------
;; (find-eev "eev-mini.el")

)

;;

(defun find-xzgv (dir)
  (find-bgprocess `("xzgv" ,dir)))
(defun find-xzgvf (dir)
  (find-bgprocess `("xzgv" "-f" ,dir)))
(defun find-gqview (dir)
  (find-bgprocess `("gqview" ,dir)))



;; «sshot»  (to ".sshot")
;; (find-angg "elisp/sshot.el")
;; (find-fline "~/flipbooks/" "eesteps")
;; (find-sshot "~/flipbooks/eesteps" 1)

;; 2007nov27: commenting this out - use eev-sshot instead.
'(

;; (find-anggfile "bin/sshot-uniq.lua")
;; (find-efunction 'eeurl-dired-file-name-at-point)
;;
(defun sshot-uniq (stem)
  (interactive
   (list
    (read-string "Screenshot stem: "
		 (file-name-sans-versions (dired-get-filename) t))))
  (find-sh (format "sshot-uniq.lua %s" stem)))

;; A "template" for screenshot-taking:
;;   (set-frame-size (selected-frame) 80 25)
;;   (recenter 12)
;;   (sshot-init "/tmp/sshot/eesteps")
;;   (find-efunctiondescr 'eesteps)
;;   (sshot-blink)
;;   (sshot-write-html)
;;   (find-fline (sshot-dir))
;;   (find-fline "/tmp/sshot/" "eesteps")
;;   (find-sshot "/tmp/sshot/eesteps" 1)
;;   (sshot-uniq "/tmp/sshot/eesteps")
;;   (find-sh  "cd /tmp/sshot/ && tar -cvzf eesteps.tgz eesteps{.html,_*.png}")
;;   (find-sh0 "cp -v /tmp/sshot/eesteps.tgz ~/flipbooks/")
;;   (find-fline  "~/flipbooks/")
;;   (find-sh  "cd ~/flipbooks/ && tar -xvzf eesteps.tgz")

(autoload 'sshot-init "sshot")
(autoload 'find-sshot "sshot")
(autoload 'sshot-write-html "sshot")

)



;; «defalias-hard-maybe»  (to ".defalias-hard-maybe")
;;
(defun defalias-hard (new-symbol old-symbol)
  (fset new-symbol (symbol-function old-symbol))
  new-symbol)

(defun defalias-hard-maybe (new-symbol old-symbol)
  (unless (fboundp new-symbol) (defalias-hard new-symbol old-symbol)))

;; (find-elnode "Function Cells")
;; (require 'rcirc)
;; (fmakunbound         'rcirc-print-orig)
;; (defalias-hard-maybe 'rcirc-print-orig 'rcirc-print)
;; (find-efunctiond     'rcirc-print-orig)

;; How do I make defalias-hard and defalias-hard-maybe fontify as
;; defalias?
;; (find-efunction 'emacs-lisp-mode)
;; (find-ecvsfile "lisp/")
;; (find-elgrep "grep -nH -e font-lock-function-name-face $(find * -name '*.el')")

;; (code-c-d "el"  ee-emacs-lisp-directory "elisp" :grep)




;; «ee-kill-this-buffer»  (to ".ee-kill-this-buffer")
;; (find-enode "Command Index" "* delete-other-windows:")
;; (find-efunction 'kill-buffer-and-window)
;; (find-efunction 'delete-window)

(defvar ee-kill-buffer-kills-window nil)
(make-variable-buffer-local 'ee-kill-buffer-kills-window)

;; Argument: permament

(defun ee-kbkw ()
  "Set `ee-kill-buffer-kills-window' to t in this buffer."
  (interactive)
  (put 'ee-kill-buffer-kills-window 'permanent-local t)
  (setq ee-kill-buffer-kills-window t))

(defun ee-delete-window (&optional window)
  "Like `delete-window', but do not raise an error on failure."
  (interactive)
  (condition-case nil
      (delete-window window)
    (error nil)))

(defun ee-kill-this-buffer-and-window ()
  "Run `kill-this-buffer', then `ee-delete-window'."
  (interactive)
  (kill-this-buffer)
  (ee-delete-window))

;; (defun ee-kill-this-buffer ()
;;   "Like `kill-this-buffer', but might delete the current window too."
;;   (interactive)
;;   (if ee-kill-buffer-kills-window
;;       (ee-kill-this-buffer-and-window)
;;     (kill-this-buffer)))

;; (define-key eev-mode-map "\M-k" 'ee-kill-this-buffer)
;; (define-key eev-mode-map "\M-k" 'kill-this-buffer)

;; Run this at fid-gdb
;; (put 'ee-kill-buffer-kills-window 'permanent-local t)
;; (setq ee-kill-buffer-kills-window t)

;; what about M-K?
;; (find-efunction 'kill-this-buffer)



;; (find-teseleapage 20)
;; (find-teseleatext)
;;
(code-xpdf "teselea" "~/LEA/teselea2006.pdf")
(defun find-teseleatext (&rest rest)
  (interactive)
  (apply 'find-pdfpage-pdftotext "~/LEA/teselea2006.pdf" rest))


;; (find-es "icon" "icon-sarge-source")
;; (find-iconfile "")
(code-c-d "icon" "~/usrc/icon/icon-9.4.2/" :grep)



;; «golisp»  (to ".golisp")
;; http://dto.freeshell.org/notebook/GoLisp.html
;; http://dto.freeshell.org/e/golisp.el
;; (eev "psne http://dto.freeshell.org/e/golisp.el; mv -v golisp.el.1 golisp.el")
;; (find-sh0 "cp -v $S/http/dto.freeshell.org/e/golisp.el ~/elisp/")
;; (find-fline "~/elisp/golisp.el")
;;
;; (code-c-d "golisp" "~/elisp/")
;; (find-golispfile "golisp.el" "defface golisp-xref-face")
;; (find-golispfile "golisp.el" "{{fontlocking}}")
;;
(defface golisp-xref-face '((t (:weight normal :bold nil :foreground "gold")))
  "Face for golisp links.")
;;
(setq golisp-xref-bullet 342435)
(setq golisp-anchor-bullet 343416)
(autoload 'golisp-mode "golisp" nil t)





;; (defun ee-find-dvdcopy-script (name)
;;   (format "\
;; * (eechannel-xterm \"A\")
;; cd
;; umount       /tmp/dvd/
;; mkdir        /oldfs/dvds/%s/
;; mount        /tmp/dvd/
;; cd           /tmp/dvd/
;; du -c
;; cp -diPpvR * /oldfs/dvds/%s/
;; cd           /oldfs/dvds/%s/
;; find
;; du -c\n
;; # (find-man \"growisofs\" \"To master and burn an ISO9660\")
;; # (find-sh \"dvd+rw-mediainfo /dev/hdc\")
;; cd /oldfs/dvds/%s/
;; du -c
;; growisofs -dvd-compat -Z /dev/hdc -R -J -v .
;; " name name name name))
;;
;; (defun find-dvdcopy-script (name &rest rest)
;;   (apply 'find-estring (ee-find-dvdcopy-script name) rest))

;; (find-dvdcopy-script "padrone")
;; (find-dvdcopy-script "sheltering")
;; (find-dvdcopy-script "nossamusica")


;; (defun ee-find-bigdvdcopy-script (isoimagefilename nfiles1)
;;   (format "\
;; * (eechannel-xterm \"A\")
;; * (eepitch-shell)
;; mkdir /tmp/dvd/
;;
;; # Check the size
;; sudo umount /tmp/dvd/
;; mount  /tmp/dvd/
;; du -c  /tmp/dvd/
;; find   /tmp/dvd/
;;
;; # Check for partitions with free space
;; df
;;
;; # Copy the DVD image as an .iso
;; # (find-fline \"%s\")
;; # (find-sh0 \"ls -l %s\")
;; cat /dev/hdc > %s
;;
;; # Play
;; vlc dvd://%s
;;
;; # Mount the the .iso image or the real DVD
;; sudo umount /tmp/dvd/
;; mount | grep dvd
;; mount /tmp/dvd/
;; sudo mount -o loop,ro -t iso9660 %s /tmp/dvd/
;; sudo mount -o loop,ro -t udf     %s /tmp/dvd/
;;
;; # Write the .iso into a single DVD-R
;; # (find-sh \"dvd+rw-mediainfo /dev/hdc\")
;; growisofs -dvd-compat -Z /dev/hdc=%s
;;
;; # Check for how to split
;; # (find-zsh \"laf /tmp/dvd/*/*\")
;; du -c $(find /tmp/dvd/ -type f | sort | awk 'NR <= %d')
;; du -c $(find /tmp/dvd/ -type f | sort | awk 'NR  > %d')
;;
;; # (find-man \"growisofs\" \"To master and burn an ISO9660\")
;; # (find-angg \".zshrc\" \"asgraftpoints\")
;; # (find-sh \"dvd+rw-mediainfo /dev/hdc\")
;; cd /tmp/dvd/
;; du -c
;; growisofs -dvd-compat -Z /dev/hdc -R -J -v \\
;;   $(find * -type f | sort | awk 'NR <= %d' | asgraftpoints)
;; growisofs -dvd-compat -Z /dev/hdc -R -J -v \\
;;   $(find * -type f | sort | awk 'NR  > %d' | asgraftpoints)
;; " (file-name-directory isoimagefilename)
;;   isoimagefilename isoimagefilename isoimagefilename isoimagefilename
;;   isoimagefilename isoimagefilename
;;   nfiles1 nfiles1 nfiles1 nfiles1))
;;
;; ;; «find-bigdvdcopy-script»  (to ".find-bigdvdcopy-script")
;; ;;
;; (defun find-bigdvdcopy-script (isoimagefilename nfiles1 &rest rest)
;;   (apply 'find-estring
;; 	 (ee-find-bigdvdcopy-script isoimagefilename nfiles1) rest))
;;
;; (defun find-bigdvdcopy-script (isoimagefilename nfiles1 &rest rest)
;;   (apply 'find-elinks
;; 	 `((find-bigdvdcopy-script ,isoimagefilename ,nfiles1 . ,rest)
;; 	   ""
;; 	   ,(ee-find-bigdvdcopy-script isoimagefilename nfiles1))
;; 	 rest))

;; (find-bigdvdcopy-script "/oldfs/dvds/pantano.iso" 10)
;; (find-bigdvdcopy-script "/oldfs/dvds/castelo.iso" 15)





;; (find-halloweenfile "")
;; (find-halloweengrep "grep -nH -e '^[A-Za-z]' 2.lua")

;; (code-c-d "halloween" "~/HALLOWEEN/" :anchor :grep)
;;
;; (defun fs (&rest rest) (interactive)
;;   (apply 'find-sh "egrep 'function|return' ~/HALLOWEEN/2.lua" rest))


;; «find-cat-to-lp0-script»  (to ".find-cat-to-lp0-script")
;; (find-angg ".zshrc" "MAKEDEV_create")
;; (find-angg ".zshrc" "gsdj")
;; (find-angg "bin/lpdj-tmp")
;; (find-anggfile "bin/" "lpr -> lpdj-tmp")
;; (find-fline "/dev/" "lp0")
;; (find-fline "/dev/usb/" "lp0")
;;
;; (defun find-cat-to-lp0-script ()
;;   (interactive)
;;   (find-estring (format "\
;; gnudoit \"(find-cat-to-lp0-script)\"\n
;; * (eepitch-shell)
;; R
;;   MAKEDEV_create /tmp/lp0 c 6 0 edrx:edrx 0666
;; # MAKEDEV_create /tmp/lp0 c 180 0 edrx:edrx 0666
;; exit
;; cd /tmp/
;; laf
;; %s
;; rm -v /tmp/lp0
;; " (find-sh00 "cd /tmp
;;       for i in o.p[0-9][0-9][0-9]; do
;;         echo \"cat $i > /tmp/lp0\"
;;       done"))))



;; «cltl»  (to ".cltl")
;; (find-es "lisp" "common-lisp-the-language")
;; (code-c-d "cltl" "~/usrc/cltl_src/")
;; (code-dvi "cltl"    (ee-cltlfile "clm.dvi"))
;; (code-dvi "cltldvi" (ee-cltlfile "clm.dvi"))
;; (code-ps  "cltlps"  (ee-cltlfile "clm.ps"))
;; (find-cltlfile "")
;; (find-cltlpage 2)
;; (find-cltlpage (+ 24 80))
;; (find-cltlpage (+ 24 81))
;; (find-cltlpage (+ 24 84))
;; (find-cltlpage (+ 24 86))
;; (find-cltlpage (+ 24 90))

;; (find-sh "pstotext ~/usrc/cltl_src/clm.ps")



(defun ee-first-directory (fname)
  (replace-regexp-in-string "^\\([^/]*\\)\\(/[^/]*\\)*" "\\1" fname))

(defun ee-tar-tzf-first-line (fname)
  (find-sh0 (format "tar -tzf %s 2>&1 | head -n 1" fname)))

(defun ee-tar-tzf-first-directory (fname)
  (ee-first-directory (ee-tar-tzf-first-line fname)))

;; «find-template-untgz»  (to ".find-template-untgz")
;; Superseded by: (find-angg ".emacs.templates" "find-untgz-links")
;;
(defun ee-template-untgz (url &optional c)
  (let* (;; (shortlurl (eeurl-u-to-f url))
	 (shortlurl (ee-url-to-fname url))
	 (lurl (ee-expand shortlurl))
	 (shortd (ee-tar-tzf-first-directory lurl))
	 (d (format "~/usrc/%s" shortd))
	 (date (downcase (format-time-string "%Y%b%d"))))
    `(,(format "#####")
      ,(format "#")
      ,(format "# %s" shortd)
      ,(format "# %s" date)
      ,(format "#")
      ,(format "#####")
      ,(format "")
      ,(format "# %s" url)
      ,(format "#*")
      ,(format "rm -Rv ~/usrc/%s/" shortd)
      ,(format "tar -C ~/usrc/ -xvzf \\")
      ,(format "  %s" shortlurl)
      ,(format "cd     ~/usrc/%s/" shortd)
      ,(format "")
      ,(format "#*")
      ,(format "# (code-c-d %S \"~/usrc/%s/\")" c shortd)
      ,(format "# (find-%sfile \"\")" c)
      )))

(defun find-template-untgz (url &optional c &rest rest)
  (apply 'find-elinks `
   ((find-template-untgz ,url ,c)
    ""
    ,@(ee-template-untgz url c))
   rest))

;; «bruntgz»  (to ".bruntgz")
;; (find-angg ".emacs.templates" "find-untgz-links")
' (code-brurl 'find-template-untgz :remote 'bruntgz)
  (code-brurl 'find-untgz-links    :remote 'bruntgz)




(defun ee-tar-tjf-first-line (fname)
  (find-sh0 (format "tar -tjf %s | head -n 1" fname)))

(defun ee-tar-tjf-first-directory (fname)
  (ee-first-directory (ee-tar-tjf-first-line fname)))

(defun ee-template-untbz2 (url &optional c)
  (let* (;; (shortlurl (eeurl-u-to-f url))
	 (shortlurl (ee-url-to-fname url))
	 (lurl (ee-expand shortlurl))
	 (shortd (ee-tar-tjf-first-directory lurl))
	 (d (format "~/usrc/%s" shortd))
	 (date (downcase (format-time-string "%Y%b%d"))))
    `(,(format "#####")
      ,(format "#")
      ,(format "# %s" shortd)
      ,(format "# %s" date)
      ,(format "#")
      ,(format "#####")
      ,(format "")
      ,(format "# %s" url)
      ,(format "#*")
      ,(format "rm -Rv ~/usrc/%s/" shortd)
      ,(format "tar -C ~/usrc/ -xvjf \\")
      ,(format "  %s" shortlurl)
      ,(format "cd     ~/usrc/%s/" shortd)
      ,(format "")
      ,(format "#*")
      ,(format "# (code-c-d %S \"~/usrc/%s/\")" c shortd)
      ,(format "# (find-%sfile \"\")" c)
      )))

(defun find-template-untbz2 (url &optional c &rest rest)
  (apply 'find-elinks `
   ((find-template-untbz2 ,url ,c)
    ""
    ,@(ee-template-untbz2 url c))
   rest))

(code-brurl 'find-template-untbz2 :remote 'bruntbz2)


;; «find-code-ps-url-links»  (to ".find-code-ps-url-links")
;; «brcps»  (to ".brcps")

;; (find-code-ps-url-links "http://foo/bar.pdf" "foobar")
;; "dvipdf -" doesn't work:
;; (find-man "dvipdf")
;; (find-sh "cd /tmp/ && cat ~/LATEX/tmp.dvi && dvipdf - foo.pdf")

(defun find-code-ps-url-links (url &optional code &rest rest)
  "Example: (find-code-ps-url-links \"http://foo/bar.pdf\" \"foobar\")"
  (setq code (or code "_"))
  (let* ((ee-hyperlink-prefix ";; ")
	 (localurl (eeurl-u-to-f url))
	 (localdir (file-name-directory localurl))
	 (fname    (file-name-nondirectory localurl))
	 )
    (find-elinks
     `((find-code-ps-url-links ,url ,code ,@rest)
       ""
       ,(format ";; %s" url)
       ,(format ";; (find-sh \"cd %s && zcat %s | ps2pdf - %s.pdf\")" localdir fname fname)
       ,(format "(code-ps        %S %S)" code localurl)
       ,(format "(code-pdftotext %S %S)" code localurl)
       ,(format ";; (find-%spage 1)" code)
       ,(format ";; (find-%stext)"   code)
       ) rest)))

(defun find-code-xpdf-url-links (url &optional code &rest rest)
  "Example: (find-code-xpdf-url-links \"http://foo/bar.pdf\" \"foobar\")"
  (setq code (or code "_"))
  (let ((ee-hyperlink-prefix ";; ")
	(localurl (eeurl-u-to-f url)))
    (find-elinks
     `((find-code-xpdf-url-links ,url ,code ,@rest)
       ""
       ,(format ";; %s" url)
       ,(format "(code-xpdf      %S %S)" code localurl)
       ,(format "(code-pdftotext %S %S)" code localurl)
       ,(format ";; (find-%spage 1)" code)
       ,(format ";; (find-%stext)"   code)
       ) rest)))

(code-brurl 'find-code-ps-url-links
            :remote 'brcps :local 'brcpsl :dired 'brcpsd)
(code-brurl 'find-code-xpdf-url-links
            :remote 'brcxpdf :local 'brcxpdfl :dired 'brcxpdfd)




;; «find-pspage-links»  (to ".find-pspage-links")
;; (find-amslmathfile "")
;; (find-fline         (ee-amslmathfile ""))
;; (find-pspage        (ee-amslmathfile "amsldoc.pdf"))
;; (find-pspage-links '(ee-amslmathfile "amsldoc.pdf") "amsldoc")
;;
(defun find-pspage-links (sexp &optional code &rest rest)
  "Example: see (find-efunction 'find-pspage-links)"
  (setq code (or code "_"))
  (find-elinks
   `((find-pspage-links ',sexp ,code ,@rest)
     ""
     ,(format "(find-pspage        %S)" sexp)
     ,(format "(find-pspage-links '%S)" sexp)
     ,(format "(code-ps        %S %S)" code sexp)
     ,(format "(code-pdftotext %S %S)" code sexp)
     ,(format "(find-%spage 1)" code)
     ,(format "(find-%stext)"   code)
     ) rest))


;; «find-jstor-links»  (to ".find-jstor-links")
;; (define-key eev-mode-map "\M-h\M-j" 'find-jstor-links)
;; (find-efunction 'ee-template)

(defun find-jstor-links (&optional numeric code &rest rest)
  (interactive)
  (setq numeric (or numeric "{2222222}"))
  (setq code (or code "_"))
  (apply 'find-elinks `(
    (find-jstor-links ,numeric ,code ,@rest)
    ,(ee-template `(("2222222" ,numeric) ("code" ,code)) "
;; Author: \"Title\"
;; http://www.jstor.org/stable/info/{2222222}
;; http://www.jstor.org/stable/pdfplus/{2222222}.pdf
;; (find-sh0 \"mv -iv /tmp/{2222222}.pdf $S/http/www.jstor.org/stable/pdfplus/\")
\(code-xpdf      \"{code}\" \"$S/http/www.jstor.org/stable/pdfplus/{2222222}.pdf\")
\(code-pdftotext \"{code}\" \"$S/http/www.jstor.org/stable/pdfplus/{2222222}.pdf\")
;; (find-{code}page 1)
;; (find-{code}text)")
    ) rest))

;; (defun find-arxiv-links (&optional url v code &rest rest)
;;   (interactive)
;;   (setq url (or url "http://arxiv.org/abs/0807.1704"))
;;   (setq v (or v "v1"))
;;   (setq code (or code "_"))
;;   (apply 'find-elinks `(
;;     (find-arxiv-links ,url ,v ,code ,@rest)
;;     (find-efunction 'find-arxiv-links)
;;     ,(ee-template
;;       `(("code" ,code)
;; 	("v1" ,v)
;;         ("http://arxiv.org/abs/12.34" ,url)
;;         ("$S/http/arxiv.org/abs/12.34" ,(eeurl-u-to-f url))
;;         ("$S/http/arxiv.org/abs/" ,(file-name-directory (eeurl-u-to-f url)))
;;         ("12.34" ,(file-name-nondirectory url))
;; 	) "
;; ;; Author: \"Title\"
;; ;; {http://arxiv.org/abs/12.34}
;; ;; {http://arxiv.org/abs/12.34}v1.dvi
;; ;; {http://arxiv.org/abs/12.34}v1.pdf
;; ;; (find-fline \"{$S/http/arxiv.org/abs/}\" \"{12.34}\")
;; ;; (find-sh0 \"mv -iv /tmp/{12.34}* {$S/http/arxiv.org/abs/}\")
;; \(code-dvi       \"{code}\" \"{$S/http/arxiv.org/abs/12.34}{v1}.dvi\")
;; \(code-xpdf      \"{code}\" \"{$S/http/arxiv.org/abs/12.34}{v1}.pdf\")
;; \(code-pdftotext \"{code}\" \"{$S/http/arxiv.org/abs/12.34}{v1}.pdf\")
;; ;; (find-{code}page 1)
;; ;; (find-{code}text)")
;;     ) rest))

;; (find-arxiv-links)

;; (code-brurl 'find-arxiv-links :remote 'brarxiv)






;; http://www.hermetic.com/crowley/aba/
;; (code-c-d "mitap" "$S/http/www.hermetic.com/crowley/aba/" :grep)
;; (find-mitapfile "")
;; (find-mitapw3m "index.html")
;; (find-mitapw3m "chap14.html" "Many ends, many means")



(seen 7953)





;; «wikit-edit»  (to ".wikit-edit")
;; (find-es "tcl" "httpwiki")
(defun wikit-edit (interactive) (find-es "tcl" "httpwiki"))



;; «find-eepitch-links»  (to ".find-eepitch-links")
;; (defun find-eepitch-links (&rest rest)
;;   (interactive)
;;   (apply 'find-elinks
;;          `((find-eepitch-links ,@rest)
;;            "* (eepitch-shell)"
;;            "* (eepitch-lua51)"
;;            "* (eepitch-kill)"
;;            ""
;;            (find-angg ".emacs" "find-eepitch-links")
;;            (find-angg ".emacs" "eepitch-kill")
;;            (find-efunction 'eepitch)
;;            (find-eevfile "eev-steps.el")
;;            (find-eevfile "eev-mini-steps.el"))
;;          rest))
;;
;; (define-key eev-mode-map "\M-h\M-p" 'find-eepitch-links)



;; «find-eevarticle-links»  (to ".find-eevarticle-links")
;; (defun find-eevarticle-links (&rest rest)
;;   (interactive (list ""))
;;   (let* ((anchororempty (if (equal (car rest) "") ""  (car rest)))
;; 	 (anchorornil   (if (equal (car rest) "") nil (car rest)))
;; 	 (htmlanchororempty (if anchorornil (concat "#" anchorornil) ""))
;; 	 (htmlanchorornil   (if anchorornil (concat "#" anchorornil) nil))
;; 	 )
;;     (apply 'find-elinks
;; 	   `((find-eevarticle-links ,@rest)
;; 	     (find-angg "TH/eev-article.blogme")
;; 	     (find-angg ".emacs" "find-eevarticle-links")
;; 	     )
;; 	   rest)))
;;
;; (define-key eev-mode-map "\M-h\M-a" 'find-eevarticle-links)


;; «find-anggrumidiff-links»  (to ".find-anggrumidiff-links")

(defun filename-at-eol ()
  (let ((line (buffer-substring (ee-bol) (ee-eol))))
    (string-match "\\([^ \t]*\\)$" line)
    (ee-no-properties (match-string 1 line))))

(defun find-anggrumidiff-links (fname &rest rest)
  (interactive (list (filename-at-eol)))
  (let ((anggfname (concat "/tmp/page/angg/" fname))
	(rumifname (concat "/tmp/page/rumi/" fname))
	(homefname (concat              "~/" fname))
	)
    (apply 'find-elinks
	   `((find-anggrumidiff-links ,fname)
	     (find-anggfile "LUA/quickdiff.lua")
	     ""
	     (find-tkdiff ,anggfname ,rumifname)
	     (find-fline ,anggfname)
	     (find-fline ,rumifname)
	     (find-fline ,homefname)
	     (find-sidebyside '(find-fline ,anggfname) '(find-fline ,homefname))
	     (find-sh0 ,(format "cp -v %s %s" anggfname rumifname))
	     (find-sh0 ,(format "cp -v %s %s" rumifname anggfname))
	     (find-sh0 ,(format "cp -v %s %s" anggfname homefname))
	     (find-sh0 ,(format "cp -v %s %s" rumifname homefname)))
	   rest)))

(define-key eev-mode-map "\M-ha" 'find-anggrumidiff-links)


;; This is missing from eev.el, why?
' (defmacro eeb-once (&rest body) `(let (eeb-defaults) . ,body))
' (defmacro ee-once  (&rest body) `(let (eeb-defaults) . ,body))


;; «ee-shrink-hyperlink-at-eol»  (to ".ee-shrink-hyperlink-at-eol")
;; (find-eev "eev-edit.el" "ee-shrink-hyperlink-at-eol")



;; 2007apr19
;; (find-angg ".emacs" "eechannel-send-passwd")
;; (find-elnode "Reading a Password")
;; (find-efunction 'ee-hyperlink-prefix)
;; (find-efunction 'eechannel-send)
;; (find-eevfile "eev-steps.el" "defun eechannel-send")
;; (find-eevgrep "grep -nH -e concat *.el")
;; (find-eevgrep "grep -nH -e '\"eev\"' *.el")

;; (code-c-d "eev" "$EEVDIR/" :anchor :grep)
'
(defun eechannel-send (channel &rest strings)
  (if (not channel) (setq channel eechannel-default))
  (ee-write (ee-concat strings) nil "" "" (eechannel-strfile channel))
  (find-sh0 (format "kill -USR1 $(cat %s)" (eechannel-pidfile channel))))

;; «find-setq-links»	(to ".find-setq-links")
;; # (find-setq-links 'k8-password-edrx)
;; # (find-setq-links 'k8-password-root)
;; * (eechannel-xterm "A")
;; ssh edrx@mta13.prv.k8.com.br
;; * (eechannel-send nil k8-password-edrx "\n")
;; su
;; * (eechannel-send nil k8-password-root "\n")
;;
(defun find-setq-links (var &rest rest)
  (interactive)
  (if (not (boundp var)) (set var nil))
  (find-elinks
   `((find-setq-links ',var ,@rest)
     (setq ,var ,(symbol-value var))
     (setq ,var (read-passwd ,(format "%s: " var)))
     )))



;; (code-c-d "rumi" "~/" :anchor)




;; «ee-choosecolor»  (to ".ee-choosecolor")
;; (find-es "tcl" "tk_chooseColor")
;; (find-estring (ee-choosecolor))
;; (find-eev "eev-langs.el" "ee-choosecolor")

;; «find-ecolor-links»  (to ".find-ecolor-links")
;; (find-efunction 'list-colors-display)
;; (find-efunction 'list-colors-print)
;; (find-efunction 'list-colors-print "#%02x%02x%02x")
;; (find-ecolor-links)
;; (find-ecolor-links "sienna")
;; (find-eev "eev-insert.el" "find-ecolor-links")

;; «find-eface»  (to ".find-eface")
;; (find-eev "eev-blinks.el" "find-ebufferandpos" "defun find-eface")
;; (find-eev "eev-blinks.el" "find-wottb")
;; (find-efunction 'find-face-definition)
;; (find-efunction 'find-definition-noselect)
;; (find-egrep "grep -nH -e find-face-definition C*")
;;
;; «find-eface-links»  (to ".find-eface-links")
;; (find-eface-links 'makefile-space)
;; (find-eapropos "foreground")
;; (find-eface-links 'region)
;;
'
(defun find-eface-links (face-symbol &rest rest)
  ;; (interactive (list (read-face-name "Links for face:")))
  (interactive (list (face-at-point)))
  (apply 'find-elinks `(
    (find-eface-links ',face-symbol ,@rest)
    ""
    (find-efacedescr ',face-symbol)
    (find-eface ',face-symbol)
    (customize-face ',face-symbol)
    (set-face-foreground ',face-symbol ,(face-foreground face-symbol))
    (set-face-background ',face-symbol ,(face-background face-symbol))
    (face-id ',face-symbol)
    (find-epp (mapcar (lambda (face) (cons (face-id face) face)) (face-list)))
    (find-ecolors)
    (find-efaces)
    ) rest))

;; (find-eevfile "eev.el" "\\M-h\\M-s")
;; (define-key eev-mode-map "\M-h\M-s" 'find-eface-links)



;; «digirati»  (to ".digirati")
;; (find-rumi "RUMI/baktodo.e" "download-from-svn")
;; (find-baksrvfile "")
(code-c-d "baksrv" "~/svn/adm/todo/bak/srv/" :grep)
;;
;; (find-rumi "RUMI/ruby.e")
;; (find-rumi "RUMI/ruby.e" "rubyway")
;; (find-rubywayfile "")
;; (find-rubywayw3m "toc.html")
(code-c-d "rubyway" "~/usrc/rubyway/0768667208/")
;;
;; (find-es "ruby" "ruby-from-debian-sources-etch")
(code-c-d "rubysrc" "~/usrc/ruby1.8/ruby1.8-1.8.5/" :grep)
(code-c-d "rubysrc" "~/usrc/ruby1.8/ruby1.8-1.8.5/build-tree/ruby-1.8.5/" :grep)

(defun eepitch-osmio () (interactive)
  (eepitch '(find-comintprocess "osmio" "ssh edrx@osmio.prv.k8.com.br")))

(defun eepitch-svl2 () (interactive)
  (eepitch '(find-comintprocess "svl2" "ssh teste@10.7.5.243")))

;; * (eepitch-svl2)
;; * (ansi-color-for-comint-mode-on)

;; (find-es "cvs" "svnbook")
(code-xpdf      "svnbook" "$S/http/svnbook.red-bean.com/en/1.2/svn-book.pdf")
(code-pdftotext "svnbook" "$S/http/svnbook.red-bean.com/en/1.2/svn-book.pdf")
;; (find-svnbookpage 4)
;; (find-svnbookpage (+ 17 44))
;; (find-svnbooktext "Chapter 4. Branching and Merging")

;; A new edition (non-free, on a private machine) of the "pragmatic
;; programmers" etc etc book...
;; http://andre.prv.digirati.com.br/programming_ruby_2nd.pdf
;; (find-es "ruby" "pragmatic")
(code-xpdf      "progruby2" "$S/http/andre.prv.digirati.com.br/programming_ruby_2nd.pdf")
(code-pdftotext "progruby2" "$S/http/andre.prv.digirati.com.br/programming_ruby_2nd.pdf")
;;
;; (find-progruby2page (+ 28 313) "Names")
;; (find-progruby2page (+ 28 343))
;; (find-progruby2page (+ 28 363) "(diagram)")
;; (find-progruby2text)
;; (find-progruby2text "export RI=\"--format ansi --width 70\"")
;; (find-progruby2page (+ 28 330) "Method Definition")
;; (find-progruby2page (+ 28 333) "Invoking a Method")

;; (find-es "ruby" "ruby-in-a-nutshell")
(code-xpdf      "rubynutshell" "~/books/ruby-in-a-nutshell.pdf")
(code-pdftotext "rubynutshell" "~/books/ruby-in-a-nutshell.pdf")
;; (find-rubynutshellpage 45)
;; (find-rubynutshelltext "Among the methods of the modules")

(code-xpdf "railssolutions"
  "~/tmp/FriendsofED.Rails.Solutions.Ruby.on.Rails.Made.Easy.Jan.2007.pdf")
;; (find-railssolutionspage 6)

(code-xpdf      "rubyforrails" "~/tmp/ruby_for_rails.pdf")
(code-pdftotext "rubyforrails" "~/tmp/ruby_for_rails.pdf")
;; (find-rubyforrailspage 1)
;; (find-rubyforrailspage (+ 35 1))
;; (find-rubyforrailspage (+ 35 25) "irb -rrbconfig")
;; (find-rubyforrailstext)
;; (find-rubyforrailstext "irb -rrbconfig")

;; (find-rubyismsfile "")
;; (find-rubyismsw3m "toc.html")
(code-c-d "rubyisms" "~/usrc/rubyisms/0321474074/")

;; «mysql»  (to ".mysql")
;; (find-es "mysql" "mysql-ref")
(code-c-d "mysqlref" "~/usrc/refman-5.0-en.html-chapter/")
;;
;; (find-mysqlrefw3m "index.html")
;; (find-mysqlrefw3m "tutorial.html")
;;
;; (find-es "mysql" "mysql-help")
;; (find-mysqldo "help")
;; (find-mysqldo "help show")
;; (find-mysqldo "help contents")
(defun find-mysqldo (str &rest rest)
  (apply 'find-sh (format "echo '%s' | mysql -u root" str) rest))
(defun find-mysqlvdo (str &rest rest)
  (apply 'find-sh (format "echo '%s' | mysql -u root -t -vvv" str) rest))

;; (defun eepitch-mysql () (interactive)
;;   (eepitch '(let ((process-environment (cons "PAGER=cat" process-environment)))
;;               (find-comintprocess "mysql" "mysql -u root"))))

;; «find-anggupload-links»  (to ".find-anggupload-links")
;; (find-anggupload-links "~/e/sqlite.e")
;;
(defun ee-expand-remove-prefix (prefix fname)
  (ee-remove-prefix (ee-expand prefix) (ee-expand fname)))
;;
(define-key eev-mode-map "\M-h\M-u" 'find-anggupload-links)
(defun find-anggupload-links (fname &rest rest)
  (interactive (list (buffer-file-name)))
  (let ((fnamestem (ee-expand-remove-prefix "~/" fname)))
    (find-elinks
     `((find-anggupload-links ,fname ,@rest)
       (find-angg ,fnamestem)
       ,(format "# http://anggtwu.net/%s"      fnamestem)
       ,(format "# http://anggtwu.net/%s.html" fnamestem)
       ""
       "* (eepitch-eshell)"
       ,(format "cp -v ~/%s /scp:edrx@angg.twu.net:public_html/%s"
		fnamestem fnamestem)
       ""
       "* (eechannel-xterm \"TWU\" '(\"ssh\" \"edrx@angg.twu.net\"))"
       "cd ~/public_html/ && make -f TH/Makefile page |& tee ~/om"
       "cd ~/public_html/ && make -f TH/Makefile page edrx.tgz |& tee ~/om"
       ""
       (find-es "page" "upload-rsync")
       (find-angg ".zshrc" "makepagefromtar")
       (find-angg ".zshrc" "makepage")
       (find-fline "/scp:edrx@angg.twu.net:om")
       (find-fline "/scp:edrx@angg.twu.net:public_html/")
       ))))

;; «find-unpack-chm-links»  (to ".find-unpack-chm-links")
;; (find-zsh "dmissing extract_chmLib")
;; (eev "apti libchm-bin")
(defun find-unpack-chm-links (chm &optional destdir code &rest rest)
  (interactive "f")
  (if (not destdir) (setq destdir "~/usrc/tmpchm/"))
  (if (not code)    (setq code    "tmpchm"))
  (find-elinks
   `((find-unpack-chm-links ,chm ,destdir ,code ,@rest)
     (find-efunction 'find-unpack-chm-links)
     ,@(ee-escript-header code)
     ""
     "#*"
     ,(format "rm -Rv %s" destdir)
     ,(format "mkdir  %s" destdir)
     ,(format "cd     %s" destdir)
     ,(format "extract_chmLib \\")
     ,(format "  %s \\" chm)
     ,(format "  %s" destdir)
     ""
     "#*"
     ,(format "# (code-c-d %S %S)" code destdir)
     ,(format "# (find-%sfile \"\")" code)
     ,(format "# (find-%sw3m \"toc.html\")" code)
     )))

(code-brfile 'find-unpack-chm-links :local 'brunchml :dired 'brunchmd)



(seen 8000)

;;;                  _
;;;   ___  ___ _ __ (_) ___
;;;  / _ \/ _ \ '_ \| |/ __|
;;; |  __/  __/ |_) | | (__
;;;  \___|\___| .__/|_|\___|
;;;           |_|
;;
;; «eepic»  (to ".eepic")
;; (find-eev "eev-mini-steps.el")
;; (find-eev "eev-mini-steps.el" "eechannel-assert")
;; (load "eev-mini-steps")

(defun eepic-gv-assert ()
  (eechannel-assert "eepicgv" `("gv" "-watch" "$EEVTMPDIR/ee.pic.ps")))

(defun eepic-now (s &optional e)
  (interactive "r")
  (ee-write s e ".PS\n" "\n.PE\n" (ee-expand "$EEVTMPDIR/ee.pic"))
  (let ((output (find-sh0 "groff -p $EEVTMPDIR/ee.pic > $EEVTMPDIR/ee.pic.ps")))
    (unless (equal output "")
      (find-estring output)))
  (eepic-gv-assert))

;; (eepic-now "box; box wid 1 ht 1; box same; box")
;; (eepic-now "box; box wid 1 ht 2; box same; box")
;;
;; (find-fline  "$EEVTMPDIR/" "ee.pic")
;; (find-pspage "$EEVTMPDIR/ee.pic.ps")

;; «esrpic»  (to ".esrpic")
;; (find-es "pic" "pic-manual")
;; (find-es "pic" "gpic")
;; (find-angg "PIC/1.pic")
;;
(defun find-esrpicorigtext (&rest rest)
  (apply 'find-sh "zcat /usr/share/doc/groff-base/pic.txt.gz | col -b" rest))
;; (code-ps      "esrpic" "/usr/share/doc/groff-base/pic.ps.gz")
;;
;; (find-sh0 "cd /usr/share/doc/groff-base/ && zcat pic.ps.gz | ps2pdf - ~/tmp/esrpic.pdf")
(code-xpdf      "esrpic" "~/tmp/esrpic.pdf")
(code-pdftotext "esrpic" "~/tmp/esrpic.pdf")
;;
;; (find-esrpicpage      1  "Contents")
;; (find-esrpictext "")
;;
;; (find-esrpicpage 12   "9. Naming Objects")
;; (find-esrpictext      "9. Naming Objects")
;; (find-esrpicorigtext "9.  Naming Objects")



;; (find-eevarticlesection "shorter-hyperlinks")
(defun find-eevarticlesection (&rest rest)
  (interactive)
  (apply 'find-angg "TH/eev-article.blogme" rest))


(code-c-d "keplersrc" "~/usrc/kepler-1.1/")
(code-c-d "kepler"    "~/usrc/kepler/")



;; «find-adduser-links»  (to ".find-adduser-links")
;; (find-adduser-links)
;; (find-adduser-links "aleph" "aleph")
(defun find-adduser-links (&optional username password)
  (interactive)
  (setq username (or username "foo"))
  (setq password (or password "1234"))
  (setq homedir (format "/home/%s/" username))
  (find-elinks `(
    (find-adduser-links ,username ,password)
    ""
    "** (Re)create the user"
    "* (eexterm \"A\")"
    ,(format "sudo rm -Rfv /home/%s/" username)
    ,(format "sudo deluser %s" username)
    ,(format "sudo adduser %s" username)
    ,(format "%s" password)
    ,(format "%s" password)
    ,(format "(fullname)")
    ,(format "(roomnumber)")
    ,(format "(workphone)")
    ,(format "(homephone)")
    ,(format "(other)")
    ,(format "y")
    ""
    "** Test \"su -\" to the new user"
    (find-fline ,homedir)
    ,(format "cd %s" homedir)
    ,(format "su - %s" username)
    ,(format "%s" password)
    ,(format "exit")
    ,(format "exit")
    ""
    ""
    ""
    "** \"su -\" with an authorization to open X windows"
    "* (eexterm \"A\")"
    ,(format "xhost +")
    ,(format "cd  ~%s/" username)
    ,(format "su - %s"  username)
    ,(format "aleph")
    ,(format "export DISPLAY=%s" (getenv "DISPLAY"))
    ,(format "  xterm &")
    ,(format "exit")
    ,(format "exit")
    )))

;; «find-osmio-template»  (to ".find-osmio-template")
(defun find-osmio-template ()
  (interactive)
  (find-elinks '(
    (find-osmio-template)
    (find-efunction 'find-osmio-template)
    ""
    "* (eepitch-osmio)"
    "su -"
    "head -n 1"
    ""
    (find-setq-links 'k8-password-edrx)
    (find-setq-links 'k8-password-root)
    ""
    "* (eechannel-xterm \"osmio\" '(\"ssh\" \"osmio.prv.k8.com.br\"))"
    "* (eechannel-send nil k8-password-edrx \"\\n\")"
    "su"
    "* (eechannel-send nil k8-password-root \"\\n\")"
    "head -n 1"
    ""
    (find-fline "/ssh:osmio.prv.k8.com.br:")
    (find-fline "/su:osmio.prv.k8.com.br:")
    )))


;; «find-template-svnadm»  (to ".find-template-svnadm")
;; (find-template-svnadm "todo/bak/srv/")
;;
;; (defun find-template-svnadm (stem)
;;   (interactive (list "todo/bak/srv/"))
;;   (find-elinks `(
;;     (find-template-svnadm ,stem)
;;     ""
;;     ,(format "# http://svn.prv.digirati.com.br/repos/adm/trunk/%s" stem)
;;     (svn-status ,(format "~/svn/adm/%s" stem))
;;     ""
;;     ,(format "* (eepitch-shell)")
;;     ,(format "cd ~/svn/adm/")
;;     ,(format "svn checkout --username edrx.dig \\")
;;     ,(format "   http://svn.prv.digirati.com.br/repos/adm/trunk/%s" stem)
;;     )))

;; «find-copydvdtohd-script»  (to ".find-copydvdtohd-script")
(defun find-copydvdtohd-script (dir &rest rest)
  (interactive (list "/hda6/movie/"))
  (let ((ee-buffer-name (or ee-buffer-name "*copydvdtohd*"))
	(dirvideots (concat dir "video_ts/")))
    (apply 'find-elinks `(
      (find-copydvdtohd-script ,dir ,@rest)
      (find-fline ,dir)
      (find-fline ,dirvideots)
      (eev ,(format "cd %s" dir))
      (eev ,(format "cd %s" dirvideots))
      ""
      ,(format "* (eechannel-xterm \"A\")")
      ,(format "* (eepitch-shell)")
      ,(format "mkdir /tmp/dvd/")
      ""
      ,(format "sudo umount /tmp/dvd/")
      ,(format "mount  /tmp/dvd/")
      ,(format "du -c  /tmp/dvd/")
      ,(format "find   /tmp/dvd/")
      ,(format "mkdir                    %s"  dir)
      ,(format "(cd /tmp/dvd; cp -av *   %s)" dir)
      ,(format "sudo chown -Rv edrx:edrx %s"  dir)
      ,(format "chmod -v 777             %s*" dir)
      ,(format "umount /tmp/dvd/")
      ) rest)))

;; (find-copydvdtohd-script "/hda6/sacrificio/")
;; (find-copydvdtohd-script "/hda6/manufacturingconsent/")
;; (find-copydvdtohd-script "/hda6/thecorporation/")
;; (find-copydvdtohd-script "/hda6/felakuti/")
;; (find-copydvdtohd-script "/hda6/bomdia/")
;; ^ cp: reading `video_ts/vts_01_5.vob': Input/output error
;; (find-copydvdtohd-script "/hda6/ogostodacereja/")
;; (find-copydvdtohd-script "/hda6/capote/")
;; (find-copydvdtohd-script "/hda6/capitaesdeabril/")


;; Just because these make some scripts clearer
;;
(defun ee-with-newline (str)
  (if (string-match "[^\n]\\'" str) (concat str "\n") str))
(defun eexterm-password (str)
  (eechannel-send nil (ee-with-newline str)))


;; This will force me to clean up some stuff in eev-mini-steps.el
;; (find-eev "eev-mini-steps.el")
;; (load "eev-mini-steps")



;; (find-fline "~/LATEX/2005oct20-seminar.tex")
(code-c-d "2005oct20seminar" "~/LATEX/2005oct20-seminar.tex" :anchor)
(code-dvi "2005oct20seminar" "~/LATEX/2005oct20-seminar.dvi")
;; (find-2005oct20seminarfile "")
;; (find-2005oct20seminar "")
;; (find-2005oct20seminar "" "original-motivation-2")
;; (find-2005oct20seminarpage 1)
;; (find-2005oct20seminarpage 31)

(seen 8500)





(code-c-d "THL" "~/TH/L/" :grep)


;; «davinci»  (to ".davinci")
;; (find-THLw3m "e/davinci.e.html")
;; (find-es "davinci")
;; (find-es "lua5" "ldb-from-tgz")
(code-c-d "ldb" "~/usrc/ldb/" :grep)

(code-c-d "luawiki" "$S/http/lua-users.org/wiki/")
;; (find-luawikiw3m "UsingLuaWithScite.html")
;; To do: the htmlizer for luawikiw3m links should remove the ".html"

(code-c-d "scite"    "~/usrc/scite/scite-1.71/" :grep)
(code-c-d "scitedoc" "~/usrc/scite/scite-1.71/scite/doc/" :grep)
(code-c-d "scite174" "~/usrc/scite174/" :grep)



;; «eepitch-gdb»  (to ".eepitch-gdb")
;; http://article.gmane.org/gmane.emacs.eev.devel/47
;; http://lists.gnu.org/archive/html/eev/2007-07/msg00000.html
;; (find-efunction 'eegud-keys-mode)
;; * (eepitch-gdb-kill "*gud-lua*")
;; * (eepitch-gdb "*gud-lua*" "gdb --annotate=3 ~/usrc/lua-5.1.2/src/lua")
;; br main
;; run

;; (define-key eegud-keys-mode-map "\M-k" 'eegud-kill-this-buffer)
;;
;; (defun eegud-kill-this-buffer ()
;;   (interactive)
;;   (delete-other-windows)
;;   (kill-this-buffer))
;;
;; (defvar ee-gdb-escript-window nil
;;   "An internal variable used to simplify the code of `eepitch-gdb'.
;; The \"e-script window\" is the upper-left quadrant of the frame.")
;;
;; (defvar ee-gdb-gdb-window nil
;;   "An internal variable used to simplify the code of `eepitch-gdb'.
;; The \"gdb window\" is the lower-left quadrant of the frame.")
;;
;; (defvar ee-gdb-source-window nil
;;   "An internal variable used to simplify the code of `eepitch-gdb'.
;; The \"source window\" is the right half of the frame.")
;;
;; (defun eepitch-gdb-window-setup ()
;;   (interactive)
;;   (delete-other-windows)
;;   (split-window-horizontally)  ; left|right
;;   (split-window-vertically)    ; split the left side into upper/lower
;;   (setq ee-gdb-escript-window (selected-window)) ; upper left
;;   (setq ee-gdb-gdb-window     (next-window))	 ; lower left
;;   (setq ee-gdb-source-window  (next-window (next-window)))) ; right
;;
;; ;; 2008jul05
;; (defun eepitch-gdb (buffer-name gdb-prog-and-args)
;;   (eepitch-gdb-window-setup)
;;   (with-selected-window ee-gdb-gdb-window
;;     (if (get-buffer buffer-name)
;; 	(find-ebuffer buffer-name)
;;       (gdb gdb-prog-and-args)
;;       (eegud-keys-mode 1)))
;;   (setq eepitch-code `(find-ebuffer ,buffer-name)))
;;
;; (defun eepitch-gdb-old (buffer-name gdb-prog-and-args)
;;   ;; (eek "s-1 s-3 s-2 s-o")
;;   (delete-other-windows)
;;   (split-window-horizontally)
;;   (split-window-vertically)
;;   (other-window 1)
;;   (if (get-buffer buffer-name)
;;       (find-ebuffer buffer-name)
;;     (gdb gdb-prog-and-args)
;;     (eegud-keys-mode 1))
;;   ;; (eek "s-o s-o")
;;   (other-window 2)
;;   (setq eepitch-code `(find-ebuffer ,buffer-name)))
;;
;; (defun eepitch-gdb-kill (buffer-name)
;;   (if (get-buffer buffer-name) (kill-buffer buffer-name))
;;   (delete-other-windows))

;; «eepitch-gdb-lua»  (to ".eepitch-gdb-lua")
;; (find-es "lua5" "lua-innards-gdb")
;; 2013, low-tech:
(defun eepitch-gdb-lua ()
  (eepitch-comint "*gdb lua_O0*" "gdb -q ~/usrc/lua-5.1.4/src/lua_O0"))

;; Old:
;; (find-es "lua5" "lua-api-from-gdb")
;; (find-es "lua5" "compile-5.1.2-lua_O0")
;; (find-es "lua5" "compile-5.1.4-lua_O0")
;; (find-angg ".lua51/PP.gdb")
;; (find-angg ".lua51/PP.c")
'(

(defun eepitch-gdb-lua ()
  (eepitch-gdb "*gud-lua_O0*"
	       "gdb --annotate=3 --quiet ~/usrc/lua-5.1.2/src/lua_O0"))
(defun eepitch-gdb-lua ()
  (eepitch-gdb "*gud-lua_O0*"
	       "gdb --annotate=3 --quiet ~/usrc/lua-5.1.4/src/lua_O0"))
(defun eepitch-gdb-lua ()
  (eepitch-gdb "*gud-lua_O0*"
	       "gdb -i=mi --quiet ~/usrc/lua-5.1.4/src/lua_O0"))
(defun eepitch-gdb-lua-kill ()
  (eepitch-gdb-kill "*gud-lua_O0*"))

)



;; * (eepitch-gdb-kill "*gud-lua*")
;; * (eepitch-gdb "*gud-lua*" "gdb --annotate=3 ~/usrc/lua-5.1.2/src/lua")
;; * (eepitch-gdb-lua-kill)
;; * (eepitch-gdb-lua)

;; «eepitch-gdb-scite»  (to ".eepitch-gdb-scite")
;; (find-es "davinci" "scite-in-gdb")
(defun eepitch-gdb-scite ()
  (eepitch-gdb "*gud-SciTE*" "gdb --annotate=3 ~/usrc/scite174/scite/bin/SciTE"))
(defun eepitch-gdb-scite-kill ()
  (eepitch-gdb-kill "*gud-SciTE*"))

(defun eepitch-gdb-bait ()
  (eepitch-gdb "*gud-bait*" "gdb --annotate=3 ~/usrc/bait/bait"))
(defun eepitch-gdb-bait-kill ()
  (eepitch-gdb-kill "*gud-bait*"))

;; (find-es "davinci")
;; http://www.tecgraf.puc-rio.br/tecmake/
;; (code-c-d "iup" "~/usrc/iup/" :grep)
;; (code-c-d "iupbinaries" "~/usrc/iupbinaries/")
;; (code-c-d "tecmake"    "~/usrc/tecmake/" :grep)
;; (code-c-d "tecmakedoc" "$S/http/www.tecgraf.puc-rio.br/tecmake/" :grep)
;; 
;; (code-c-d "cd" "~/usrc/cd/" :grep)
;; (code-c-d "im" "~/usrc/im/" :grep)

;; (find-es "anatocc" "K-and-R")
(code-c-d "kandr" "~/usrc/the-c-programming-language/")


;; «tcl-tk»  (to ".tcl-tk")
;; (find-angg ".zshrc" "tcl-tk")
;; (find-tcl84file "")
;; (find-tk84file "")
(code-c-d "tcl84" "~/usrc/tcl8.4/tcl8.4-8.4.12/" :grep)
(code-c-d "tk84"  "~/usrc/tk8.4/tk8.4-8.4.12/" :grep)
(defun eepitch-gdb-wish ()
  (eepitch-gdb "*gud-wish*" "gdb --annotate=3 ~/usrc/tk8.4/tk8.4-8.4.12/unix/wish"))
(defun eepitch-gdb-wish-kill ()
  (eepitch-gdb-kill "*gud-wish*"))
(defun eepitch-gdb-tclsh ()
  (eepitch-gdb "*gud-tclsh*" "gdb --annotate=3 ~/usrc/tcl8.4/tcl8.4-8.4.12/unix/tclsh"))
(defun eepitch-gdb-tclsh-kill ()
  (eepitch-gdb-kill "*gud-tclsh*"))


;; «ee-meta-S»  (to ".ee-meta-S")
;; (find-efunction 'ee-delete-and-extract-line)
;;
;; (defun ee-meta-S () (interactive)
;;   (insert (ee-pph `(find-sh ,(ee-no-properties (ee-delete-and-extract-line)))))
;;   (next-line 1))
;; (define-key eev-mode-map "\M-S" 'ee-meta-S)


;; (find-efacedescr 'w3m-anchor)
;; (find-efacedescr 'org-link)
(make-face 'w3m-anchor)
(set-face-foreground 'w3m-anchor "SteelBlue1")
;; (set-face-foreground 'org-link "SteelBlue1")
;; (find-ecolors)
;; (find-efaces)
;; (find-efaces "w3m-anchor")

;; (find-es "emacs" "w3m-upstream")
;; (add-to-list 'load-path "~/usrc/emacs-w3m/")

;; «org-mode»  (to ".org-mode")
;; (find-es "org" "git")
;; (code-c-d   "org"        (ee-efile "org/") "org" :gz)
(code-c-d      "org"        (ee-locate-library "org.el") "org" :gz)
(code-c-d      "orggit"     "~/usrc/org-mode/")
(code-pdf-page "orgmanual"  "~/usrc/org-mode/doc/org.pdf")
(code-pdf-text "orgmanual"  "~/usrc/org-mode/doc/org.pdf" 10)
(code-pdf-page "orgcard"    "~/usrc/org-mode/doc/orgcard.pdf")
(code-pdf-text "orgcard"    "~/usrc/org-mode/doc/orgcard.pdf")
(code-pdf-page "orgcompact" "~/usrc/org-mode/doc/orgguide.pdf")
(code-pdf-text "orgcompact" "~/usrc/org-mode/doc/orgguide.pdf")
;; (find-orggitfile "")
;; (find-orgmanualpage)
;; (find-orgmanualtext)
;; (find-orgcardpage)
;; (find-orgcardtext)
;; (find-orgcompactpage)
;; (find-orgcompacttext)



;; Tell org-mode to not create and use a display-table.
;; (find-evardescr 'org-display-table)
;; (find-evardescr 'org-ellipsis)
;; (find-egrep "grep -nH -e buffer-display-table $(find * -name '*.el')")
;; (find-efile "textmodes/org.el" "buffer-display-table")
;; (find-efile "textmodes/org.el" "setq buffer-display-table")
;; (find-efile "textmodes/org.el" "defcustom org-ellipsis")
;; (setq org-ellipsis 'org-ellipsis)

;; (find-es "org" "TODO-and-DONE")
(setq org-log-done nil)

;; (code-c-d "org" (ee-efile "org/") "org")
;; (find-orgfile "")
;; (find-orgnode "")
(code-c-d "orgsrc"   "~/usrc/org-mode/")
(code-c-d "orgbabel" "~/usrc/org-mode/contrib/babel/")
(setq org-ellipsis nil)

(make-face 'org-link)
(set-face-foreground 'org-link "CornflowerBlue")
(make-face 'org-level-1)
(set-face-foreground 'org-level-1 "CadetBlue")
(set-face-foreground 'org-level-1 "LightSteelBlue")
(set-face-foreground 'org-level-1 "SteelBlue")
;; (find-ecolor-links)
;; (find-ecolors)

;; http://dto.freeshell.org/notebook/OrgTutorial.html
;; (add-to-list 'load-path "PATH_TO_WHERE_YOU_UNPACKED_ORGMODE")
;; (require 'org)
;; (find-fline "~/ORG/index.org" "Org: e-script to install")
;; (find-orgfile "")

;; (code-c-d "org" "~/usrc/org-4.34/" "org")
;; (add-to-list 'load-path ee-orgdir)
;; (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
;; (define-key global-map "\C-cl" 'org-store-link)
;; (define-key global-map "\C-ca" 'org-agenda)
;; (setq org-log-done t)




;; «auto-mode-alist-tecmake»  (to ".auto-mode-alist-tecmake")
(add-to-alist 'auto-mode-alist '("\\.mak$" . makefile-mode))
(add-to-alist 'auto-mode-alist '("\\.bsh$" . sh-mode))

(seen 8700)


(code-c-d "iup3" "~/usrc/iup3/" :grep)
(code-c-d "gtk20" "~/bigsrc/gtk+2.0/gtk+2.0-2.10.13/" :grep)
;; (code-c-d "grub2" "~/usrc/grub2/" :grep)

(seen 8729)



;; «code-c-d-new»  (to ".code-c-d-new")
;; (find-eev "eev.el" "code-c-d-new")
;; (find-eev "eev.el" "code-c-d")
;; (find-eev "eev.el" "code-c-d-register")
;; (find-eev "eev-mini.el" "ee-code-c-d")
;; (find-code-c-d-new "CCC" "DDD/" :info "III" :anchor :grep)
;; (find-code-c-d-new "CCC" "DDD/" :info "III" :anchor)
;; (find-code-c-d-new "CCC" "DDD/"       "III" :anchor)
;; (find-code-c-d-new "CCC" "DDD/")
;; (find-code-c-d     "CCC" "DDD/")
;; (code-c-d-new "iup3" "~/usrc/iup3/" :grep :foo)
;; (code-c-d-new "iup3" "~/usrc/iup3/" :grep)
;; (code-c-d     "iup3" "~/usrc/iup3/" :grep)
;; (find-iup3file "")
;; (find-iup3grep "grep -nH -e FUNCPROTO $(find *)")
;; (find-iup3file "src/gtk/iupgtk_drv.h")
;; (:gdb . ee-code-c-d-:gdb)         ; rusty
;; :linux, :xdvi and :gv shouldn't be standard...
;; (:linux  . ee-code-c-d-:linux)
;; (:xdvi   . ee-code-c-d-:xdvi)
;; (:gv     . ee-code-c-d-:gv)



;; (defun ee-find-node (dir manual section &rest rest)
;;   (setq dir (if dir (ee-expand dir) ""))
;;   (apply 'find-node (format "(%s%s)%s" dir manual section) rest)


;; «ee-sexp-remote»  (to ".ee-sexp-remote")
;;
(setq ee-sexp-beg nil)
(setq ee-sexp-end nil)
(setq ee-sexp-buffer nil)

(defun ee-sexp-read ()
  (interactive)
  (eek-forward-sexp)
  (setq ee-sexp-end (point))
  (save-excursion
    (eek-backward-sexp)
    (setq ee-sexp-beg (point)))
  (read (buffer-substring ee-sexp-beg ee-sexp-end)))

(defun ee-sexp-next ()
  (interactive)
  (eek-forward-sexp)
  (eek-backward-sexp))

(defun ee-sexp-remote-read-next ()
  (with-selected-window
      (get-buffer-window ee-sexp-buffer t)
    (prog1 (ee-sexp-read)
      (ee-sexp-next))))

(defun ee-sexp-stop ()
  (with-selected-window
      (get-buffer-window ee-sexp-buffer t)
    (goto-char ee-sexp-beg)
    (error "End of steps")))

(define-key my-mode-map (kbd "<f7>")
  (lambda (arg) (interactive "P")
    (if (eq arg 0)
	(setq ee-sexp-buffer (buffer-name))
      (eesteps-perform (ee-sexp-remote-read-next)))))

;; (eev-demos 4)

;; (frame-height)
;; (frame-width)
;; (set-frame-size (selected-frame) 167 59)
;; (set-frame-size (selected-frame) 80 59)
;; (find-elnode "Position Parameters")
;; (find-elnode "Size Parameters")
;; (find-eapropos "frame")
;; (find-angg ".fvwm/keys.fvwm" "4-v,h,b")
;; (find-es "fvwm" "no-borders")
;; (modify-frame-parameters (selected-frame) '((vertical-scroll-bars . nil)))

;; «ee-make-frame»  (to ".ee-make-frame")
(defun ee-make-frame (x y width height &rest rest)
  (select-frame
   (make-frame `((user-position . t) (left . ,x) (top . ,y)
		 (user-size . t) (width . ,width) (height . ,height)
		 (vertical-scroll-bars . nil) ,@rest))))

(defun ee-sexp-setup (&optional x y width height &rest rest)
  (delete-other-windows)
  (delete-other-frames)
  ;; (find-angg ".fvwm/keys.fvwm" "4-v,h,b" "Key v")
  (find-fvwm0 "Current Maximize 0, 100")
  (sleep-for 0.2)
  (ee-make-frame (or x 516) (or y 0)  (or width 80) (or height 20))
  (sleep-for 0.2)
  ;; (find-angg ".fvwm/keys.fvwm" "4-f,g"   "Key f")
  (find-fvwm0 "Current WindowStyle NoTitle, !Borders")
  (sleep-for 0.2)
  (setq ee-sexp-buffer (buffer-name)))

;; «ee-sexp-remote-demo»  (to ".ee-sexp-remote-demo")
'( (progn
     (find-fvwm0 "Current Maximize 0, 100")
     (sleep-for 0.2)
     (delete-other-frames)
     (ee-make-frame 500 0  80 20)
     (ee-bare-frame)
     (setq ee-sexp-buffer (buffer-name))
     (eek "M-O")
     (find-ebuffer "o")
     )

   "<down>" "foobar" "3*<left>"
   (ee-sexp-stop) nil

)

'( (progn
     (ee-sexp-setup)
     (eek "M-O")
     (find-ebuffer "o")
     )

   "<down>" "foobar" "3*<left>"
   (ee-sexp-stop) nil

)


;; Ex: (find-emount-links)
;; (find-sh "dmesg")
;; (find-sh "dmesg | grep ^hd")
;; Persephone, 2007oct08:
;; hdc: TSSTcorpCD/DVDW SH-W162D, ATAPI CD/DVD-ROM drive
;; hdc: ATAPI 48X DVD-ROM DVD-R CD-R/RW drive, 2048kB Cache, UDMA(33)
;; hdd: HL-DT-ST GCE-8526B, ATAPI CD/DVD-ROM drive
;; hdd: ATAPI 52X CD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
;;
(defun find-emount-links (&optional dir &rest rest)
  (interactive)
  (find-elinks
    `((find-emount-links ,@rest)
      (find-efunction 'find-emount-links)
      ""
      "* (eepitch-shell)"
      "mkdir /tmp/dvd/"
      "sudo mount -o ro /dev/hdc /tmp/dvd/"
      (find-fline "/tmp/dvd/")
      "sudo umount /tmp/dvd/"
      ""
      "mkdir /tmp/cdrom/"
      "sudo mount -o ro /dev/hdd /tmp/cdrom/"
      (find-fline "/tmp/cdrom/")
      "sudo umount /tmp/cdrom/"
      ""
      (find-sh "dmesg")
      "mkdir /tmp/pen/"
      "sudo mount -o ro /dev/sda1 /tmp/pen/"
      "sudo mount -o ro /dev/sdb1 /tmp/pen/"
      "sudo umount /tmp/pen/"
      (find-fline "/tmp/pen/")
      )))


;; «rename-track»  (to ".rename-track")
;; (find-emode-links 'wdired-mode)
;; (find-efunction-links 'wdired-change-to-wdired-mode)
;; (find-ekeymapdescr wdired-mode-map)

(defun rename-track-string (str)
  (if (string-match "^\\([0-9]+\\)[-_ .]*\\(.*\\)" str)
      (let* ((n (match-string 1 str))
	     (name (match-string 2 str))
	     (newname (replace-regexp-in-string "[ ']" "_" (downcase name))))
	(format "%02d._%s" (string-to-number n) newname))))

(rename-track-string "1 - Foo bar")

(defun rename-track-after-point ()
  (interactive)
  (save-excursion
    (insert
     (rename-track-string
      (delete-and-extract-region (point) (ee-eol)))))
  (next-line 1))

(eval-after-load "wdired"
  '(define-key wdired-mode-map "\M-t" 'rename-track-after-point))

(seen 8900)


;; "1.   Foo bar" -> "01._foo_bar.wav"
;;
(defun rename-wav-tracks (&optional arg)
  (interactive "p")
  (dotimes (i (or arg 1))
    (eek "M-f <right> M-\\ C-e M-\\ .wav C-a <<rename-track-after-point>>")))




;; «firefox»  (to ".firefox")
;; (find-es "javascript")
;; (find-fline "~/.mozilla/")
;; (find-fline "~/.mozilla/firefox/")
;; (find-sh "cd ~/.mozilla/firefox/ && ls -l")
;; (find-sh "cd ~/.mozilla/firefox/ && rm -v default")
;; (find-sh "cd ~/.mozilla/firefox/ && ln -s s59t32wg.default default")
;; (find-fline "~/.mozilla/firefox/default/")
(code-c-d "dotfirefox" "~/.mozilla/firefox/default/")
(code-c-d "firefoxext" "~/.mozilla/firefox/default/extensions/")
;; (find-dotfirefoxfile "")
;; (find-firefoxextfile "")

;; «mozrepl»  (to ".mozrepl")
;; (find-es "javascript" "mozrepl")
;; (find-es "javascript" "mozrepl-2011")
' (code-c-d "mozrepl"        (ee-firefoxextfile "mozrepl@hyperstruct.net/"))
' (code-c-d "mozreplcontent" (ee-mozreplfile "chrome/content/"))
;; (find-mozreplfile "")
;; (find-mozreplcontentfile "")

(defun eepitch-mozrepl () (interactive)
  (eepitch-comint "mozrepl" "telnet localhost 4242"))

;; http://dev.hyperstruct.net/mozlab
;; http://dev.hyperstruct.net/movie/mozrepl.html
;; http://dev.hyperstruct.net/movie/mozrepl.swf
;; http://dev.hyperstruct.net/mozlab/wiki/MozRepl
;; http://dev.hyperstruct.net/mozlab/wiki/MozRepl/Tutorial
;; http://dev.hyperstruct.net/mozlab/wiki/MozRepl/Emacs
;; http://hyperstruct.net/projects/mozrepl
;; http://hyperstruct.net/projects/mozrepl/emacs-integration
;; http://wiki.github.com/bard/mozrepl/custom-commands

(seen 8940)

;; (find-fline "~/.mozilla/firefox/")
;; (find-fline "~/.mozilla/firefox/")
;; (find-mozreplfile "chrome/content/")
;; (find-mozlabfile "")
;; (find-mozlabfile "components/MozRepl.js")
;; (find-mozlabfile "defaults/preferences/mozlab.js")
;; (find-mozlabfile "chrome/mozlab.jar")
;; (find-mozlabfile "chrome/mozlab.jar" "moz.el")
;; -> (find-anggfile "elisp/moz.el")
;; (find-anggfile "elisp/moz.el")
;; (find-anggfile "elisp/moz.el" "(\"localhost\" . 4242)")
;; (find-mozlabfile "chrome/mozlab.jar" "javascript.el")
;; -> (find-anggfile "elisp/javascript.el")

;; «eepitch-moz»  (to ".eepitch-moz")
;; (find-es "javascript" "mozrepl")
;; (find-mozreplfile "chrome/content/")
;; (find-mozreplfile "chrome/content/moz.el" "defalias 'run-mozilla")
;; (find-mozreplfile "chrome/content/moz.el" "defun inferior-moz-switch-to-mozilla")
(defun eepitch-moz ()
  (interactive)
  (require 'moz)
  (eepitch '(run-mozilla nil)))

;; «espresso-mode»  (to ".espresso-mode")
;; (find-mozreplfile "")
;; (find-mozreplfile "chrome/content/")
;; (add-to-list 'auto-mode-alist '("\\.js\\'" . espresso-mode))
;; (autoload 'espresso-mode "espresso" nil t)

;; (find-dotfirefoxfile "")
;; (find-dotfirefoxfile "downloads.rdf")
;; (find-dotfirefoxfile "prefs.js" "default.print_edge_top")

(code-c-d "itsalltext" (ee-dotfirefoxfile "extensions/itsalltext@docwhat.gerf.org/"))
;; https://addons.mozilla.org/en-US/firefox/addon/4125
;; (find-itsalltextfile "")

(code-c-d "tabsopenrelative" (ee-dotfirefoxfile "extensions/tabsopenrelative@jomel.me.uk/"))
;; https://addons.mozilla.org/en-US/firefox/addon/1956
;; (find-tabsopenrelativefile "")

(code-c-d "conkeror"   (ee-dotfirefoxfile "extensions/{a79fe89b-6662-4ff4-8e88-09950ad4dfde}/"))
;; (find-conkerorfile "")
;; http://dev.technomancy.us/conkeror/
;; http://mozdev.org/pipermail/conkeror/
;; http://conkeror.mozdev.org/installation.html
;; (find-conkerorfile "chrome/conkeror.jar")


(seen 9000)


;; «find-emode-links»  (to ".find-emode-links")
;; (find-emode-links 'org-mode)
;;
(defun find-emode-links (symbol &rest rest)
  (interactive (find-function-read))
  (apply 'find-elinks `(
    (find-emode-links ',symbol ,@rest)
    ""
    (find-efunctiondescr ',symbol)
    (find-efunction ',symbol)
    (find-efunctiond ',symbol)
    (find-efunctionpp ',symbol)
    ""
    (find-efunction 'ee-minor-mode-keymap)
    (find-evardescr 'minor-mode-map-alist)
    (find-eppp (mapcar 'car minor-mode-map-alist))
    (find-elinks ,'(mapcar (lambda (xx) `(find-emode-links ,(car xx))) minor-mode-map-alist))
    (find-emode-links ',major-mode)
    ""
    (find-eapropos "^org-.*mode$")
    (find-eapropos "^org-.*map$")
    (find-elinks ,'(mapcar (lambda (x) `(find-emode-links ',x)) (apropos-internal "^org-.*mode$")))
    (find-elinks ,'(mapcar (lambda (x) `(find-ekeymapdescr ,x)) (apropos-internal "^org-.*map$")))
    ) rest))

;; (find-eevfile "eev.el" "\\M-h\\M-s")
(define-key eev-mode-map "\M-h\C-m" 'find-emode-links)





;; «find-sshot-links»  (to ".find-sshot-links")
;; (find-angg ".emacs.templates" "find-sshot-links")
;;
;; Old:
;; (find-sshot-links "/tmp/sshot/test")
;; (define-key eev-mode-map "\M-h\C-s" 'find-sshot-links)
;;
;; (defun find-sshot-links (&optional fnamestem &rest rest)
;;   (interactive)
;;   (if (not fnamestem) (setq fnamestem "/tmp/sshot/test"))
;;   (apply 'find-elinks
;;     `((find-sshot-links ,fnamestem ,@rest)
;;        (find-eevfile "eev-sshot.el")
;;        ""
;;        ,(ee-addhp "Use the geometry of the Emacs window:")
;;        (sshot-save-geom-fvwm)
;;        ""
;;        ,(ee-addhp "Manual setting:")
;;        (sshot-save-geom-tcl)
;;        (find-fline "/tmp/sshot.geom")
;;        (sshot-force-geom ,(find-sh0 "cat /tmp/sshot.geom"))
;;        ""
;;        (global-set-key (kbd "<print>") 'sshot-take+)
;;        (eefvwm0 "Key Print A N   Exec gnudoit '(sshot-take+)'")
;;        (eefvwm0 "Key Print A N   -")
;;        (sshot-blink)
;;        (sshot-init ,fnamestem)
;;        (sshot-write-html)
;;        (find-sshot ,fnamestem 1)
;;        ""
;;        (find-fline ,(file-name-directory fnamestem))
;;        ,(ee-addhp (format "file://%s.html" fnamestem))
;;        ,(ee-addhp "To do: code for packing and uploading")
;;        ) rest))






;; «find-glyphashtml-links»  (to ".find-glyphashtml-links")
;; (find-blogme3file "anggdefs.lua" "eev_math_glyphs_edrx =")
;; (find-eevfile "eev-compose.el")
;; (find-eevfile "eev-glyphs.el")
;; (find-eevfile "eev-math-glyphs.el")
;; (find-efunction 'ee-glyph)
;; (eev-math-glyphs-reset)
;; (eev-math-glyphs-edrx)
;; (find-elnode "Creating Strings")
;; (find-glyphashtml-links "ox")

(defun ee-glyph-bign (char) (aref (aref standard-display-table char) 0))
(defun ee-glyph-char (bign) (logand (- (ash 1 19) 1) bign))
(defun ee-glyph-face-id (bign) (ash bign -19))

;; (define-key eev-mode-map "\M-hg" 'find-glyphashtml-links)
(defun find-glyphashtml-links (composepair &rest rest)
  (interactive (list "<<"))
  (let* ((lowchar (cadr (member composepair eev-composes-all)))
	 (bigchar (ee-glyph-char (ee-glyph-bign lowchar))))
    (apply 'find-elinks
     `((find-glyphashtml-links ,composepair ,@rest)
       (find-eevfile "eev-math-glyphs.el")
       ""
       (cadr (member ,composepair eev-composes-all))
       (ee-glyph-char (ee-glyph-bign ,lowchar))
       (find-eoutput '(insert ,bigchar))
       (find-eleimfile "quail/latin-ltx.el" (string ,bigchar))
       (find-eleimfile "quail/sgml-input.el" (string ,bigchar))
       (require 'htmlize)
       (htmlize-protect-string (string ,bigchar))
       ) rest)))



;; (find-eface-links 'subscript)
;; (find-eface-links 'superscript)
;; (find-efile "textmodes/tex-mode.el" "defun tex-font-lock-suscript")
;; (find-efile "textmodes/tex-mode.el" "defcustom tex-font-script-display")
;; https://lists.gnu.org/archive/html/help-gnu-emacs/2021-02/msg00277.html
;; See: (font-lock-flush)
;;
(setq tex-fontify-script nil)



;; «find-TH»  (to ".find-TH")
;; (find-code-c-d-new "TH" "~/TH/" :anchor :grep)
;; (find-TH "davinci" "long-way")
;;
(code-c-d  "TH" "~/TH/" :anchor :grep)
(defun find-TH (str &rest pos-spec-list)
  (apply 'find-anchor (ee-THfile (concat str ".blogme")) pos-spec-list))


(seen 9106)


(defun find-sh0-if (okmsg command)
   (let ((output (find-sh0 command)))
     (if (equal output okmsg) (message "ok") (find-estring output))))



;; «blogme3»  (to ".blogme3")
;; (find-es "blogme" "interactive")
;; (find-angg "LUA/lua50init.lua" "loadblogme3")
(defun eepitch-blogme3 () (interactive)
  (eepitch-comint "blogme3" "lua51 -e loadblogme3(true) -i"))

(defun find-blogme3-sh0-if (stem)
  (find-sh0-if "" (ee-find-blogme3-sh0-if stem)))

;; Example: (ee-find-blogme3-sh0-if "math-b")
(defun ee-find-blogme3-sh0-if (stem)
  (format "\
    cd ~/TH/L/
    cp ~/TH/%s.blogme ~/TH/L/TH/%s.blogme
    lua51 ~/blogme3/blogme3.lua -o %s.html -i TH/%s.blogme"
    stem stem stem stem))

(defun blogme3-lisp-as-string (stem)
  (format "[#
\(defun c () (interactive) (find-blogme3-sh0-if \"%s\"))
;;    http://angg.twu.net/%s.html
;; file:///home/edrx/TH/L/%s.html
#]
" stem stem stem))

(defun blogme3-tt-as-string ()
  (format "[lua:
  -- (eev-math-glyphs-edrx)
  eev_math_glyphs_edrx()
]\n
\[WITHINDEX
\[#
 #]
\[RULE ----------------------------------------]\n
\[tsec <_>
\[++N]. _
=========
]\n
]
"))

;; (find-estring (blogme3-footer-as-string "xxx"))
(defun blogme3-footer-as-string (&optional stem)
  (format
"[INCLUDE TH/speedbar.blogme]
\[SETFAVICON dednat4/dednat4-icon.png]
\[SETFAVICON IMAGES/forthsun.png]
\[lua: LR = R ]
\[htmlize [J (Title)]\n
]
\[#
 # Local Variables:
 # coding: raw-text-unix
 # modes: (fundamental-mode blogme-mode)
 # End:
#]"))

(defun blogme3-bounded-as-string ()
 "\n#*
\[# (eeblogme-now-bounded)
 # file:///tmp/ee.html
 #]
#*
")

(defun blogme3-stem ()
  (replace-regexp-in-string "\\.blogme" "" (buffer-name)))

(defun blogme3-footer ()
  (interactive)
  (insert (blogme3-footer-as-string (blogme3-stem))))

(defun blogme3-lisp ()
  (interactive)
  (insert (blogme3-lisp-as-string (blogme3-stem))))

(defun blogme3-tt ()
  (interactive)
  (insert (blogme3-tt-as-string)))

(defun blogme3-bounded ()
  (interactive)
  (insert (blogme3-bounded-as-string)))


;; «startup-screen»  (to ".startup-screen")
;; (find-eapropos "inhibit-startup-screen")
;; (find-efile "startup.el")
;; (find-efile "startup.el" "defcustom fancy-splash-image")
;; (find-efile "startup.el" "defun fancy-splash-head")
;; (find-evardescr 'inhibit-startup-screen)
(setq inhibit-startup-screen t)

(seen 8900)



;; «dednat6.el»  (to ".dednat6.el")
;; (find-angg "dednat6/dednat6.el")
(load       "~/dednat6/dednat6.el")

;; «dednat6-ftch»  (to ".dednat6-ftch")
;; (find-LATEX "2021fitch.tex" "defftch")
;; (find-es "dednat" "ftch")
(defun ftchskel ()
  (interactive)
  (insert "
%F 1 /
%F 2 \\
%L
%L defftch \"??\"
$$\\pu
  \\ftch{??}
$$
"))

;; «dednat6-vbt»  (to ".dednat6-vbt")
;; (find-LATEX "2021verbatim.tex")
(defun vbtskel ()
  (interactive)
  (insert "
%V
%L
%L defvbt \"??\"
$\\pu
 \\vbt{??}
$
"))




;; «find-wget»  (to ".find-wget")
;; «brwget»     (to ".brwget")
;; Moved to: (find-eev "eev-plinks.el" "find-wget")
;;           (find-eev "eev-brxxx.el" "code-brxxxs" "brwget")
;;
;; Old:
;;
;; (find-efunction 'find-callprocess0-ne)
;; (setq myurl "http://anggtwu.net/eev-current/eev-math-glyphs.el")
;; (find-eoutput '(insert (find-wget00u myurl)))
;;
;; (defun ee-with-raw-text-unix (code)
;;   (let ((coding-system-for-read 'raw-text-unix)
;; 	(coding-system-for-write 'raw-text-unix))
;;     (eval code)))
;; ' (defun find-wget00 (url) (find-callprocess00 `("wget" "-q" "-O" "-" ,url)))
;; ' (defun find-wget00u (url) (ee-with-raw-text-unix `(find-wget00 ,url)))
;;
;; Newer:
;;
;; (find-urlretrieve000 "http://127.0.0.1/")
;; (find-urlretrieve000 "http://127.0.0.1/404")
;; (find-wget "http://127.0.0.1/")
;; (find-wget "http://127.0.0.1/404")
;; (find-urlretrieve000 "http://anggtwu.net/eev-current/eev-math-glyphs.el")
;; (find-wget "http://anggtwu.net/eev-current/eev-math-glyphs.el")
;; (find-wget "http://anggtwu.net/404")
;;
;; (defun find-wget00 (url)
;;   (find-callprocess00 `("wget" "-q" "-O" "-" ,url)))
;;
;; (defun find-wget (url &rest rest)
;;   (setq url (ee-expand url))
;;   (apply 'find-eoutput-reuse (format "*wget: %s*" url)
;;          `(insert (find-wget00 ,url))
;;          rest))

;; (code-brurl 'find-wget :remote 'brwget)



;; «find-epalette»  (to ".find-epalette")
;; (find-es "emacs" "palette")
;; (find-epalette my-palette)

;; Screenshot: (find-anggfile "IMAGES/palette.png")
;; Entry in my Emacs page: (find-TH "emacs" "palette")

(defun find-epalette (&optional colorstr &rest rest)
  ;; (interactive (list my-palette))
  (interactive)
  (if (not colorstr) (setq colorstr my-palette))
  (apply
   'find-eoutput-reuse
   "*palette*"
   '(progn (insert colorstr)
	   (goto-char (point-min))
	   (while (re-search-forward "#?[A-Za-z0-9]+" nil 'no-error)
	     (set-text-properties
	      (match-beginning 0) (match-end 0)
	      `(face (foreground-color . ,(match-string 0))))))
   rest))

(setq my-palette "
LightSeaGreen MediumAquamarine aquamarine DarkSeaGreen MediumSeaGreen
SeaGreen DarkOliveGreen OliveDrab MediumSpringGreen
LightGreen PaleGreen SpringGreen green GreenYellow YellowGreen
LimeGreen DarkKhaki khaki LightGoldenrod PaleGoldenrod yellow gold
goldenrod RosyBrown tan HotPink PaleVioletRed MediumVioletRed
VioletRed DeepPink magenta1 magenta magenta2 magenta3

SandyBrown DarkSalmon
LightSalmon LightSalmon1 LightSalmon2 LightSalmon3
orange1 orange orange2 orange3 tan1 tan2 tan3 peru
DarkOrange1 DarkOrange DarkOrange2 DarkOrange3
chocolate1 chocolate2 chocolate3 chocolate
sienna1 sienna2 sienna3
salmon salmon1 salmon2 salmon3
coral coral1 coral2 coral3
tomato tomato1 tomato2 tomato3 LightCoral
IndianRed1 IndianRed2 IndianRed3 IndianRed
OrangeRed1 OrangeRed OrangeRed2 OrangeRed3
firebrick1 firebrick2 firebrick3 firebrick
brown1 brown2 brown3
red red1 red2 red3

snow1 snow2 snow3 snow4
seashell1 seashell2 seashell3
AntiqueWhite1 AntiqueWhite2 AntiqueWhite3
LightGoldenrodYellow LightYellow beige
bisque1 bisque2 bisque3
PeachPuff1 PeachPuff2 PeachPuff3
NavajoWhite1 NavajoWhite2 NavajoWhite3
burlywood burlywood1 burlywood2 burlywood3
wheat wheat1 wheat2 wheat3
LemonChiffon1 LemonChiffon2 LemonChiffon3
cornsilk1 cornsilk2 cornsilk3
ivory1 ivory2 ivory3
honeydew1 honeydew2 honeydew3
azure1 azure2 azure3
LavenderBlush1 LavenderBlush2 LavenderBlush3
MistyRose1 MistyRose2 MistyRose3
thistle thistle1 thistle2 thistle3
RosyBrown1 RosyBrown2 RosyBrown3
pink LightPink
plum1 plum2 plum3 plum
orchid1 orchid2 orchid orchid3 violet
MediumOrchid1 MediumOrchid2 MediumOrchid MediumOrchid3
DarkOrchid1 DarkOrchid2 DarkOrchid3 DarkOrchid
purple1 purple2 purple purple3 BlueViolet DarkViolet
MediumPurple1 MediumPurple2 MediumPurple MediumPurple3
MediumSlateBlue LightSlateBlue CornflowerBlue
SlateBlue1 SlateBlue2 SlateBlue3
RoyalBlue1 RoyalBlue2 RoyalBlue3
DodgerBlue DodgerBlue1 DodgerBlue2 DodgerBlue3
DeepSkyBlue DeepSkyBlue1 DeepSkyBlue2 DeepSkyBlue3
SteelBlue1 SteelBlue2 SteelBlue3
SkyBlue SkyBlue1 SkyBlue2 SkyBlue3
LightSkyBlue LightSkyBlue1 LightSkyBlue2 LightSkyBlue3
SlateGray1 SlateGray2 SlateGray3
LightSteelBlue1 LightSteelBlue2 LightSteelBlue LightSteelBlue3
LightBlue1 LightBlue2 LightBlue LightBlue3
LightCyan1 LightCyan2 LightCyan3
PaleTurquoise1 PaleTurquoise2 PaleTurquoise3
PowderBlue PaleTurquoise LightCyan
CadetBlue1 CadetBlue2 CadetBlue3
DarkSlateGray1 DarkSlateGray2 DarkSlateGray3
turquoise1 turquoise2 turquoise3
cyan1 cyan2 cyan3
")


(seen 9082)

;; «tgt»  (to ".tgt")
;; (find-blogme3 "anggdefs.lua" "-tgt")
;; (tgt00 '(find-blogme3 "elisp.lua" "TGT"))
;; (tgt0  '(find-blogme3 "elisp.lua" "TGT"))
;; (tgt   '(find-blogme3 "elisp.lua" "TGT"))

(defun tgt00 (sexp)
  (if (not (stringp sexp)) (setq sexp (format "%S" sexp)))
  (find-callprocess00 `("lua51" "~/blogme3/blogme3.lua" "-tgt" ,sexp)))

(defun tgt0 (sexp) (ee-no-trailing-nl (tgt00 sexp)))

(defun tgt (sexp)
  (interactive (list (ee-last-sexp)))
  (if (stringp sexp) (setq sexp (read sexp)))
  (let* ((ee-buffer-name (or ee-buffer-name "*tgt*")))
    (find-estring (tgt00 sexp))))

(defun tgt (sexp)
  (interactive (list (ee-last-sexp)))
  (if (stringp sexp) (setq sexp (read sexp)))
  (let* ((ee-buffer-name (or ee-buffer-name "*tgt*"))
	 (target (tgt0 sexp))
	 (localtarget (replace-regexp-in-string
		       "^http://anggtwu.net/"
		       "file:///home/edrx/TH/L/"
		       target)))
    (find-elinks `(
      (tgt ',sexp)
      ,sexp
      ""
      ,target
      ,localtarget
      ""
      (find-blogme3 "angglisp.lua")
      ))))

(define-key eev-mode-map "\M-hb" 'tgt)

;; «find-ecp0»  (to ".find-ecp0")
;; (find-es "emacs" "letf")
;; (find-eapropos "tramp")
;; (find-efunction 'tramp-message)
;; (find-efunction 'tramp-error-with-buffer)
;; (find-evardescr 'tramp-verbose)
;; (find-es "emacs" "letf")

;; dired-copy-file is here: (find-efile "dired-aux.el")
;; it has an autoload, but running it straight away without a
;; (require 'dired) doesn't work...

(defun find-ecp0 (from to &optional ok-flag)
  (require 'dired)
  (let ((tramp-verbose 0))
    (dired-copy-file from to ok-flag)))

(seen 9126)


;; «caramelo»  (to ".caramelo")
;; «zumbi»  (to ".zumbi")
;; (find-fline "/etc/hosts")
;; (find-zumbifile "")
;; (find-zumbipagefile "")
;; (find-zumbihomefile "")
;; (find-caramelofile "")
;; (find-tanenbaumfile "")
;; (find-node "(tramp)Inline methods" "`host#42'")
;; (code-c-d "zumbi"  "/scp:edrx@zumbi#222:/home/edrx/")
;; (find-fline "~/.ssh/")
;; (find-fline "~/.ssh/config" "port 222")

;; (code-c-d "zumbi"     "/scp:edrx@_zumbi:/home/edrx/")
;; (code-c-d "zumbipage" "/scp:edrx@_zumbi:/home/edrx/public_html/")
;; (code-c-d "zumbihome" "/scp:edrx@_zumbi:/home/")
;; (code-c-d "caramelo"  "/scp:edrx@caramelo:/home/edrx/")
;; (code-c-d "tanenbaum" "/scp:edrx@tanenbaum:/home/")
;;
;; (code-c-d "zumbipage" "/scp:edrx@_zumbi:/home/edrx/public_html/"
;;                                      :wget "http://zumbi/~edrx/" :ffox)
;; (code-c-d "zumbiwiki" "/scp:edrx@_zumbi:/omnisys/www/www/wiki/"
;;                                      :wget "http://zumbi/wiki/"  :ffox)

;; (find-zumbipagefile "")
;; (find-zumbipageffox "")
;; (find-zumbiwikifile "")
;; (find-zumbiwikiffox "")

;; «zumbiwikicvs»  (to ".zumbiwikicvs")
;; (find-es "omnisys" "zumbi-wiki-cvs")

;; (code-c-d "zumbiwikicvs" "~/usrc/zumbi-wiki/www/wiki/"
;;                             :wget "http://zumbi/wiki/"  :ffox)

;; (find-zumbiwikicvsfile "")

;; «dekooning»  (to ".dekooning")
;; Tramp doesn't like my zsh prompt, but edrsh uses /bin/sh...
;; (find-dekooningfile "")
;; (find-es "ssh" "ssh-copy-id")

(code-c-d "dekooning" "/scp:edrsh@dekooning:/home/edrx/")
(defun eepitch-dekooning () (interactive)
  (eepitch '(find-comintprocess "dekooning" "ssh edrx@dekooning")))
(defun eexterm-dekooning ()
  (eexterm "dekooning" "ssh edrx@dekooning"))

;; «persephone»  (to ".persephone")
;; (find-persephonefile "")
(code-c-d "persephone" "/scp:edrx@persephone:/home/edrx/")
(defun eepitch-persephone () (interactive)
  (eepitch '(find-comintprocess "persephone" "ssh edrx@persephone")))
(defun eexterm-persephone ()
  (eexterm "persephone" "ssh edrx@persephone"))



;; (defun eepitch-zumbi () (interactive)
;;   (eepitch '(find-comintprocess "zumbi" "ssh -p 222 edrx@zumbi")))
;;
;; (defun eepitch-caramelo () (interactive)
;;   (eepitch '(find-comintprocess "caramelo" "ssh edrx@caramelo")))
;;
;; (defun eepitch-tanenbaum () (interactive)
;;   (eepitch '(find-comintprocess "ssh tanenbaum" "ssh edrx@tanenbaum")))
;;
;; (defun eepitch-gomanetstevens () (interactive)
;;   (eepitch '(find-comintprocess "gomanetstevens" "ssh -p 2222 edrx@tanenbaum")))
;;
;; (defun eepitch-gomanetfreire () (interactive)
;;   (eepitch '(find-comintprocess "gomanetfreire"
;; 				"ssh -p 2222 edrx@tanenbaum -t ssh freire")))



;; «sisrot»  (to ".sisrot")
;; (find-zumbihomefile "andre/public_html/projects/cla-sisrot/tmp/")
;; (find-fline "~/tmp/")
;; (find-noronhafile "Sisrot/PD/" "39.11.0080_352_rev00.doc")
(code-xpdf      "sisrotpdp" "~/tmp/PD_Sisrot_CLA_2006dec14.pdf")
(code-pdftotext "sisrotpdp" "~/tmp/PD_Sisrot_CLA_2006dec14.pdf")
;; (find-sisrotpdppage 1)
;; (find-sisrotpdppage 25)
;; (find-sisrotpdppage 126)
;; (find-sisrotpdptext)
;; (find-sisrotpdppage 23  "6.3" "Sinais TU / TD IRIG B")
;; (find-sisrotpdppage 109 "8.6.1.5" "Recepção do sinal de IRIG-B")
;;
;; (find-sisrotpdppage  28 "8.1.3" "telemetria laser")
;; (find-sisrotpdppage  73 "8.4"   "mecanica do pedestal")
;; (find-sisrotpdppage 124 "8.7.1" "manche de comando manual")
;; (find-sisrotpdppage 126 "8.7.2" "Tela de interface" "monitoração")
;; (find-sisrotpdppage 127 "8.7.2" "Tela de interface" "operação")
;;
;; (find-fline "~/tmp/CLA-sisrot_cronograma_expandido.txt")
;; (find-sh "cd /tmp/; a2ps -l 160 -=p1isol ~/tmp/CLA-sisrot_cronograma_expandido.txt")
;; (find-pspage "/tmp/o.ps")
;; (find-sh0 "cd /tmp/; ps2pdf o.ps")
;; (find-pspage "/tmp/o.pdf")
;; (find-sh0 "cp -v /tmp/o.pdf /var/www/tmp/screenies/")
;;
;; Versão obsoleta (2005):
;; (code-ps "sisrotpdp0" "~/tmp/PD_Sisrot_CLA_rev00.pdf")
;; (find-sisrotpdp0page 1)

;; «sisrotpdsw»  (to ".sisrotpdsw")
;; (find-noronhafile "QUALIDADE/1-S G Q/Templates(modelos)/ENGENHARIA/")
;; (find-noronhafile "QUALIDADE/1-S G Q/Templates(modelos)/ENGENHARIA/" "90.01.0054_031_rev02.doc")
;; (find-lnoronhafile "QUALIDADE/1-S G Q/Templates(modelos)/ENGENHARIA/" "90.01.0054_031_rev02.doc")
;; (find-lnoronhafile "QUALIDADE/1-S G Q/Templates(modelos)/ENGENHARIA/")
;; (find-pspage (ee-lnoronhafile "QUALIDADE/1-S G Q/Templates(modelos)/ENGENHARIA/90.01.0054_031_rev02.pdf"))
;; http://zumbi/~silas/_/tmp/90.01.0054_031_rev02.pdf
(code-xpdf      "pdswmodel" "$S/http/zumbi/~silas/_/tmp/90.01.0054_031_rev02.pdf")
(code-pdftotext "pdswmodel" "$S/http/zumbi/~silas/_/tmp/90.01.0054_031_rev02.pdf")
;; (find-pdswmodelpage 1)
;; (find-pdswmodeltext)

;; «sisrot-pdsw-etc»  (to ".sisrot-pdsw-etc")
;; http://www.pragmaticsoftware.com/Templates.asp
;; http://zumbi/~andre/_/resources/project/ProjectMgtGuidelines.pdf
;; http://zumbi/~andre/_/resources/project/SDP_Template.pdf
;; http://zumbi/~andre/_/resources/project/ArchitectureOverview.pdf
(code-xpdf      "pdsw_AO"  "$S/http/zumbi/~andre/_/resources/project/ArchitectureOverview.pdf")
(code-pdftotext "pdsw_AO"  "$S/http/zumbi/~andre/_/resources/project/ArchitectureOverview.pdf")
(code-xpdf      "pdsw_PMG" "$S/http/zumbi/~andre/_/resources/project/ProjectMgtGuidelines.pdf")
(code-pdftotext "pdsw_PMG" "$S/http/zumbi/~andre/_/resources/project/ProjectMgtGuidelines.pdf")
(code-xpdf      "pdsw_ST"  "$S/http/zumbi/~andre/_/resources/project/SDP_Template.pdf")
(code-pdftotext "pdsw_ST"  "$S/http/zumbi/~andre/_/resources/project/SDP_Template.pdf")
;; (find-pdsw_AOpage 1)
;; (find-pdsw_AOtext)
;; (find-pdsw_PMGpage 1)
;; (find-pdsw_PMGtext)
;; (find-pdsw_STpage 1)
;; (find-pdsw_STtext)

;; «sisrot-cameras»  (to ".sisrot-cameras")
;; (find-noronhafile "Sisrot/Sensores/Cedip infrared systems/")
;; (find-noronhafile "Sisrot/Sensores/Cedip infrared systems/DOC/")

;; «noronha»  (to ".noronha")
;; (find-fline "/scp:edrx@caramelo:/etc/fstab")
;; (find-fline "/scp:edrx@caramelo:/etc/fstab" "/mnt/omnisys.files")
(code-c-d  "noronha" "/scp:edrx@caramelo:/mnt/omnisys.files/")
(code-c-d "lnoronha" "$S/http/noronha/")
(code-c-d "lnoronhatpt"
  (ee-lnoronhafile "Telemedidas Redundante/PD/01 Sistema/Procedimentos de testes sistema/"))
;; (find-noronhafile "")
;; (find-lnoronhafile "")
;; (find-lnoronhatptfile "")
;; (find-noronhafile "QUALIDADE/1-S G Q/Procedimentos/")
;; (find-noronhafile "QUALIDADE/1-S G Q/Processos/")
;; (find-noronhafile "QUALIDADE/1-S G Q/Processos/" "01.30.0200_500_rev02.doc")
;; (find-lnoronhafile "QUALIDADE/1-S G Q/Processos/" "01.30.0200_500_rev02.doc")
;; (find-lnoronhafile "QUALIDADE/1-S G Q/Processos/" "01.30.0200_500_rev02.pdf")
;; (find-pspage (ee-lnoronhafile "QUALIDADE/1-S G Q/Processos/01.30.0200_500_rev02.pdf"))

;; «telemedidastestes»  (to ".telemedidastestes")
;; (find-pspage (ee-lnoronhatptfile "95.24.0014_doc456_rev00.pdf"))
(code-xpdf      "telemedidastestes" (ee-lnoronhatptfile "95.24.0014_doc456_rev00.pdf"))
(code-pdftotext "telemedidastestes" (ee-lnoronhatptfile "95.24.0014_doc456_rev00.pdf"))
;; (find-telemedidastestespage 1)
;; (find-telemedidastestespage 29)
;; (find-telemedidastestestext)

;; Make rcirc connect to freenode through a local machine that
;; connects to freenode via an ssh tunnel - override `rcirc-freenode'
;;
(setq omnisys-machines
      '(;; "persephone"
	"caramelo"
	))

(if (member system-name
	    '(;; "persephone"
	      "caramelo"
	      ))
    (defun rcirc-freenode () (interactive)
      (rcirc-connect "tanenbaum"
		     "6666" ; "6667"
		     "edrx"
		     "Eduardo Ochs <http://anggtwu.net/>"
		     "Eduardo Ochs <http://anggtwu.net/>"
		     '("#eev" "#emacs"
		       ;; "#lua" "#forth"
		       ;; "#tcl"
		       ;; "#truta.org" "#omnisys"
		       )))
  )

;; Make the emacs window that I run on caramelo visually distinct
;; M-44 M-j ->
;;   (find-es "netbsd" "cvs-emacs-at-caramelo")
;; (find-eface-links 'mode-line)
;; (find-ecolor-links "grey75")
;; (find-ecolor-links "#ccddbb")
;; (find-ecolor-links "khaki")
;; (find-epalette my-palette "YellowGreen")
;; (find-epalette my-palette "burlywood")
;; (find-epalette "red orange yellow green blue #7000C0 violet")
;; (find-ecolors)
;; (set-face-background 'mode-line "grey75")
;; (set-face-background 'mode-line "#ccddbb")
;; (set-face-background 'mode-line "khaki")
;; (set-face-background 'mode-line "burlywood")
;; (set-face-background 'mode-line "tan")
;;
(if (equal system-name "caramelo")
    (set-face-background 'mode-line "burlywood")
  )
(if (equal system-name "dekooning")
    (set-face-background 'mode-line "tan")
  )


;; «find-omnisys-links»  (to ".find-omnisys-links")
;; (find-omnisys-links)
;;
(defun find-omnisys-links (&rest rest)
  (interactive)
  (apply 'find-elinks `(
    (find-omnisys-links ,@rest)
    (find-efunction 'find-omnisys-links)
    nil
    (find-rcirc-channel-sexps "*tanenbaum*")
    (find-ebuffer "#omnisys@tanenbaum")
    (find-es "netbsd" ".xterms-at-caramelo")
    (find-es "netbsd" "cvs-emacs-at-caramelo")
    (find-es "omnisys")
    (find-es "sisrot")
    (find-angg ".emacs" "sisrot")
    nil
    (find-es "omnisys" "zumbi-wiki-w2html")
    (find-zumbipagefile "")
    ,(ee-addhp "http://zumbi/wiki/")
    ,(ee-addhp "http://zumbi/wiki/project.omnisys-zumbi.Blogme3")
    ,(ee-addhp "http://zumbi/~edrx/")
    ,(ee-addhp "http://zumbi/~edrx/sisrot/")
    ,(ee-addhp "http://zumbi/devel/")
    ,(ee-addhp "http://zumbi/cgi-bin/cvsweb.cgi/cla-telemedidas/")
    ,(ee-addhp "http://zumbi/~andre/projects/omnisys-zumbi/standards/public-filetree.txt")
    ,(ee-addhp "http://meskita/")
    nil
    (find-es "sisrot" "pdsw-upload")
    nil
    (find-zsh "TERM=vt100 muttfetchmail")
    (find-sh0 "cp -v ~/.mutt/inbox /tmp/testmbox")
    (find-fline "/tmp/testmbox")
    (find-mbox "/tmp/testmbox")
    (find-mbox "/tmp/testmbox" "" '(eek "C-u /w /t-2"))
    nil
    ,(ee-addhp "Fetch and auth with 'G', exit with 'x':")
    (find-bgprocess "xterm -e mutt")
    (ee-addhp "http://192.168.51.5/consulta_ramais.asp")
    nil
    (find-zumbipagefile "tmp/")
    (find-zumbipagefile "tmp/TODO")
    (find-es "blogme" "a2html-at-zumbi")
    nil
    (ee-cp (ee-zumbipagefile "tmp/TODO") "~/OMNISYS/")
    (eekill "TODO and index.org")
    (eekill "~/TODO")
    (eekill "~/ORG/index.org")
    (eekill "~/.psne.log")
    ""
    (find-zsh "TERM=vt100 muttfetchmail")
    "* (eepitch-shell)"
    "* (eepitch-kill)"
    "* (eepitch-shell)"
    ""
    "/var/qmail/bin/qmail-inject -feduardo.ochs\100omnisys.com.br <<'%%%'"
    "From: \"Eduardo Nahum Ochs\" <eduardo.ochs\100omnisys.com.br>"
    "To: \"Andre Luiz de Oliveira\" <andre.luiz\100omnisys.com.br>"
    "Subject:"
    "Cc: \"Eduardo Nahum Ochs\" <eduardo.ochs\100omnisys.com.br>, \"Silas Silva\" <silas.silva\100omnisys.com.br>"
    ""
    "%%%"
    ) rest))

;; (find-omnisys-links)
;; (eejump 14)


;; «telemedidas»  (to ".telemedidas")
;; (find-es "omnisys" "telemedidas")
(code-c-d    "telemedidas" "~/usrc/telemedidas/")
(code-c-d "clatelemedidas" "~/usrc/telemedidas/cla-telemedidas/")
(code-c-d        "ihmtelm" "~/usrc/telemedidas/cla-telemedidas/ihmtelm/")
;; (find-telemedidasfile "")
;; (find-clatelemedidasfile "")
;; (find-ihmtelmfile "")
;; (find-ihmtelmfile "tests/")



;; «column-marker»  (to ".column-marker")
;; http://www.emacswiki.org/cgi-bin/wiki/download/column-marker.el
;; http://www.emacswiki.org/cgi-bin/wiki/RulerMode
;; http://www.emacswiki.org/cgi-bin/wiki/PopupRuler



;; «find-mbox»  (to ".find-mbox")
;; (find-es "gnus" "find-mbox")
;; (find-es "gnus" "limiting")
;; (find-sh0 "cp -v ~/.mutt/inbox /tmp/testmbox")
;; (find-mbox "/tmp/testmbox")
;; (find-mbox "/tmp/testmbox" "" '(eek "C-u /w/t-3"))
;;
(defun find-mbox (fname &rest pos-spec-list)
  (setq fname (ee-expand fname))
  (gnus-fetch-group
   (format "nndoc+%s:%s" fname (file-name-nondirectory fname)))
  (apply 'ee-goto-position pos-spec-list))




(seen 9500)



;; «find-urlretrieve-old»  (to ".find-urlretrieve-old")
;; (find-es "emacs" "find-urlretrieve")
;; (find-efunction 'url-retrieve-synchronously)
;; http://lists.gnu.org/archive/html/bug-gnu-emacs/2007-11/msg00065.html
;; http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg00648.html
;; http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg00922.html
;; http://thread.gmane.org/gmane.emacs.bugs/16951
;; http://article.gmane.org/gmane.emacs.bugs/16951
;; http://article.gmane.org/gmane.emacs.devel/82931
;; http://article.gmane.org/gmane.emacs.devel/83205
;; (find-urlretrieve000 "http://127.0.0.1/")
;; (find-urlretrieve000 "http://127.0.0.1/404")
;; (find-urlretrieve00  "http://127.0.0.1/")
;; (find-urlretrieve00  "http://127.0.0.1/404")
;;
;; (defun ee-url-retrieve-body ()
;;   (goto-char (point-min))
;;   (when (looking-at "HTTP/1.1 200 OK")
;;     (ee-goto-position "\n\n")
;;     (buffer-substring (point) (point-max))))
;;
;; (defun find-urlretrieve000 (url)
;;   (find-ebuffer (url-retrieve-synchronously (ee-expand url)))
;;   (ee-url-retrieve-body))
;;
;; (defun find-urlretrieve00 (url)
;;   (let* ((buffer (url-retrieve-synchronously (ee-expand url)))
;; 	 (body (with-current-buffer buffer (ee-url-retrieve-body))))
;;     (if body
;; 	(prog1 body (kill-buffer buffer))
;;       (switch-to-buffer buffer)
;;       (error "find-urlretrieve00: not OK!"))))
;;
;; (defun find-urlretrieve (url &rest rest)
;;   **NOT-YET**)




;; «eshell-url-retrieve»  (to ".eshell-url-retrieve")
;; (find-efile "eshell/")
;; (find-egrep "grep -nH -e cp eshell/*.el")
;; (find-egrep "grep -nH -e eshell-eval-using-options eshell/*.el")
;; (find-efile "eshell/em-unix.el" "defun eshell/cp")
;; (find-efile "eshell/esh-opt.el" "defmacro eshell-eval-using-options")
;; (find-eapropos "eshell-")
;;
(defun eshell/taturana (&rest args)
  "A skeleton for implementing an url-retrieve/wget-like command in eshell."
  (eshell-eval-using-options
   "taturana" args
   '((?v "verbose" nil verbose
	 "explain what is being done")
     (nil "help" nil nil "show this usage screen")
     :preserve-args
     :external "wget"
     :show-usage
     :usage "URL")
   (eshell-printn (format "Taturana: args = %S" args))))

;; A test:
'
(find-estring "
* (eepitch-eshell)
* (eepitch-kill)
* (eepitch-eshell)
taturana
taturana foo
taturana foo bar
")


;; «find-netbsdman»  (to ".find-netbsdman")
;; (find-angg ".emacs" "find-fline-ov")
;;
(defun find-netbsdman (manpage &rest rest)
  (let ((buffername (format "*netbsdman: %s*" manpage))
	(command (format "ssh edrx@caramelo \"sh -c 'PAGER=cat man %s'\"" manpage)))
    (apply 'find-eoutput-reuse
	   buffername
	   `(progn (insert (find-sh0 ,command))
		   (Man-fontify-manpage))
	   rest)))

;; (find-netbsdman "man")
;; (find-netbsdman "1 make")
;; (find-netbsdman "1 make" "Print debugging")



;; 2007dec27: new function, still dirty...
;; Based on:         (find-eev-update-links)
;;   (find-efunction 'find-eev-update-links)

;; «find-edrx-update-links»  (to ".find-edrx-update-links")
;; Skel: (find-find-links-links-new "edrx-update" "" "")
;; Test: (find-edrx-update-links)
;;
(defun find-edrx-update-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for edrx-update."
  (interactive)
  (apply
   'find-elinks
   `((find-edrx-update-links ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-edrx-update-links)
     ""
     ,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
makeLedrxtgz
laf   ~/TH/L/edrx.tgz ~/edrx.tgz
cp -v ~/TH/L/edrx.tgz ~/edrx.tgz
mount -l | grep ' on / '
lsblk --fs

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd
mv -v edrx.tgz edrx-old.tgz
wget http://anggtwu.net/edrx.tgz
# cp -iv /sda5/home/edrx/edrx.tgz .
tar -xvzf edrx.tgz
")
     )
   pos-spec-list))




;; (setq password-cache-expiry nil)

;; (code-c-d "ezilh"
;;  "/scp:ezil@shells.sf.net:/home/users/e/ez/ezil/htdocs/"
;;                     :wget "http://ezil.sourceforge.net/" :ffox)
;; (code-c-d "ezilfr"
;;  "/scp:ezil@shells.sf.net:/home/users/e/ez/ezil/htdocs/forth/rubyforth/"
;;                     :wget "http://ezil.sourceforge.net/forth/rubyforth/" :ffox)

(code-c-d "twup"
 "/scp:edrx@anggtwu.net:/home/edrx/public_html/"
                               :wget "http://anggtwu.net/" :ffox)

;; (find-twupfile "tmp/o")
;; (find-twupwget "tmp/o")
;; (find-ezilhfile "")
;; (find-ezilhwget "")
;; (find-ezilfrfile "")
;; (find-ezilfrwget "")

;; (find-ezilhwget "")
;; (find-ezilffox  "")
;; (find-firefox (ee-ezilhurl ""))

;; «eev-traffic-light-glyphs»  (to ".eev-traffic-light-glyphs")
;; (find-es "blogme" "traffic-lights-glyphs")
;; (find-blogme3 "anggdefs.lua" "TRAFFIC")
;;
(defun eev-traffic-light-glyphs ()
  (interactive)
  (eev-math-glyphs-edrx)
  (add-to-alist 'eev-math-glyphs-name-to-char '("^a" . ?a))
  (add-to-alist 'eev-math-glyphs-name-to-char '("^b" . ?b))
  (add-to-alist 'eev-math-glyphs-name-to-char '("^c" . ?c))
  (eev-glyphs-set-face 'eev-glyph-face-cfont-a "firebrick1"      "firebrick")
  (eev-glyphs-set-face 'eev-glyph-face-cfont-b "orange1"         "orange4")
  (eev-glyphs-set-face 'eev-glyph-face-cfont-c "darkolivegreen1" "darkolivegreen4")
  (eev-math-glyphs-set 'eev-glyph-face-cfont-a "^a" "^a" "\^A")
  (eev-math-glyphs-set 'eev-glyph-face-cfont-b "^b" "^b" "\^B")
  (eev-math-glyphs-set 'eev-glyph-face-cfont-c "^c" "^c" "\^C"))


(message "line 9606")

;; «no-super-key»  (to ".no-super-key")
;; (find-angg ".fvwm/.fvwm2rc" "no-super-key")
;; For freire, a netbsd machine with an old IBM keyboard
(defun no-super-key ()
  (find-fvwm0 "
    Key F5 A M WindowStyle NoTitle, !Borders # no borders
    Key F6 A M WindowStyle Title, Borders    # borders
    Key F7 A M Maximize   0 100  # maximize vertically (toggle)
    Key F8 A M Maximize 100 100  # maximize both ways (toggle)
  ")
  (global-set-key (kbd "C-M-s") 'toggle-scroll-bar)
  (global-set-key (kbd "C-M-d") 'display-time-mode)
  (find-sh0 "~/bin/mysetxkb us"))

;; This is for freire too...
;; (find-fline "/usr/pkg/info/")
(add-to-list 'Info-additional-directory-list "/usr/pkg/info/")
;; (find-sh "locate wget.info")
;; (find-node "(/usr/pkg/info/wget)")
;; (find-node "(wget)")
;; (find-node "(wget)Sample Wgetrc" "http_proxy =")




;; «eepitch-sisrotlua»  (to ".eepitch-sisrotlua")
;; (find-angg "sisrot/")
(defun eepitch-sisrotlua (&optional rubyforthargs)
  (ee-eepitch-comint "~/sisrot/" "sisrotlua" "lua51"))


;; «brecp»  (to ".brecp")

(defun find-cpsne-links (url &rest rest)
  (let* ((localurl (replace-regexp-in-string
		    "^\\(https?\\|ftp\\)://" "$S/\\1/" url))
	 (caramurl (replace-regexp-in-string
		    "^\\(https?\\|ftp\\)://" "snarf/\\1/" url))
	 (localdir (file-name-directory localurl)))
  (find-elinks `(
    (find-cpsne-links ,url ,@rest)
    ,(ee-addhp url)
    nil
    "* (eepitch-caramelo)"
    "* (eepitch-kill)"
    "* (eepitch-caramelo)"
    "S=$HOME/snarf"
    ,(format "mkdir -p %s" localdir)
    ,(format "cd       %s" localdir)
    ,(format "wget --user=guest --password=guest \\")
    ,(format "          %s" url)
    ""
    "* (eepitch-eshell)"
    "* (eepitch-kill)"
    "* (eepitch-eshell)"
    ,(format "mkdir -p %s" localdir)
    ,(format "cd       %s" localdir)
    ,(format "cp -v (ee-caramelofile %S) ." caramurl)
    ,(format "echo    '%s' >> ~/.psne.log" url)
    ""
    ,(ee-addhp url)
    ))))

(code-brurl 'find-cpsne-links :remote 'brecp)



;; «qt»  (to ".qt")
;; (find-es "qt")
;; (find-es "qt" "qtprogramming")
;; (find-angg ".emacs.templates")
;; (find-angg ".emacs.templates" "find-qtdemo-links")
(code-c-d "qt4doc" "/usr/share/qt4/doc/html/")
(code-c-d "qtprogramming" "/tmp/qtprogramming/0131872494/")
;; (find-qt4docfile "")
;; (find-qt4docw3m "index.html")
;; (find-qt4docw3m "classes.html")
;; (find-qtprogrammingfile "")
;; (find-qtprogrammingw3m "toc.html")


(code-c-d "progfiles"   "c:/Arquivos de programs/")
(code-c-d "progfilesff" "c:/Arquivos de programs/Mozilla Firefox/")
(defun find-windowsfirefox (url)
  (interactive (browse-url-interactive-arg "URL: "))
  (find-bgprocess (list (ee-progfilesfffile "firefox.exe") url)))

;; (find-windowsfirefox "http://anggtwu.net/")
;; (find-eevfile "eev-browse-url.el" "'browse-url-firefox")
' (code-brurl 'find-windowsfirefox
              :remote 'brm :local 'brml :dired 'brmd)


(seen 9950)


;; «maut»  (to ".maut")
;; http://www.movimentoautentico.com/
;; (code-c-d "mautr" "/ftp:soraia@www.movimentoautentico.com:public_html/")
;; (code-c-d "maut" "$S/http/www.movimentoautentico.com/")
;; (setenv "MAUT"  (ee-expand "$S/http/www.movimentoautentico.com"))
;; (setenv "MAUTR" (ee-expand "/ftp:soraia@www.movimentoautentico.com:public_html"))
;; (find-fline "$MAUT/")
;; (find-fline "$MAUTR/")

;; Emacs21:
;; (code-c-d "mautr" "/soraia@www.movimentoautentico.com:public_html/")
;; (code-c-d "maut"  "/soraia@www.movimentoautentico.com:public_html/")
;; (code-c-d "maut" "/ftp:soraia@www.movimentoautentico.com:public_html/")
;; (ee-cp (ee-mautfile "introducao.html") (ee-mautrfile "introducao.html") 'over)
;; (ee-cp (ee-mautfile "menu.html")       (ee-mautrfile "menu.html")       'over)
;; (ee-cp (ee-mautfile "quem.html")       (ee-mautrfile "quem.html")       'over)
;; (ee-cp (ee-mautfile "movaut.html")     (ee-mautrfile "movaut.html")     'over)
;; (find-mautrfile "")
;; (find-mautfile "")
;; (find-mautfile "index.html")
;; (find-mautw3m  "index.html")
;; (find-mautfile  "introducao.html")
;; (find-mautw3m   "introducao.html")
;; (find-mautff    "menu.html")
;; (find-mautfile  "menu.html")
;; (find-mautw3m   "menu.html")
;; (find-mautfile "oficinas.html")
;; (find-mautw3m  "oficinas.html")
;; (find-mautfile "quem.html")
;; (find-mautw3m  "quem.html")
;; (find-mautfile "movaut.html")
;; (find-mautw3m  "movaut.html")
;; http://www.movimentoautentico.com/index.html
;; http://www.movimentoautentico.com/introducao.html
;; http://www.movimentoautentico.com/menu.html
;; http://www.movimentoautentico.com/oficinas.html
;; http://www.movimentoautentico.com/quem.html
;; http://www.movimentoautentico.com/movaut.html
;;
;; http://www.movimentoautentico-orig.com/
;; http://www.movimentoautentico.com/
;; http://www.movimentoautentico.com/movaut.html
;; http://www.movimentoautentico.com/english.html
;; http://www.movimentoautentico.com/english-2009jul07.html



;; «lilypond»  (to ".lilypond")
;; (find-books "__comp/__comp.el" "lilypond")
;; (find-es "lilypond" "lilypond")
;; (code-c-d "lilymut" "/usr/share/doc/lilypond/html/input/mutopia/")

;; «lilypond-info»  (to ".lilypond-info")
;; (find-es "lilypond" "lilypond-2022")
;; (find-es "emacs" "Info-directory-list")
(add-to-list 'load-path "/usr/local/lilypond/usr/share/emacs/site-lisp/")
(add-to-list 'Info-directory-list "/usr/local/lilypond/usr/share/info/")
;;
(code-c-d "lilysrc"   "~/bigsrc/lilypond-2.22.2/")
(code-c-d "lilylocal" "/usr/local/lilypond/")
(code-c-d "lilydoc"   "/usr/local/lilypond/usr/share/info/")
(code-c-d "lilylisp"  "/usr/local/lilypond/usr/share/emacs/site-lisp/")
;; (find-lilysrcfile "")
;; (find-lilylocalfile "")
;; (find-lilysrcsh   "find * | sort")
;; (find-lilylocalsh "find * | sort")
;; (find-lilylocalsh "find * | sort | grep pdf")
;; (find-lilydocfile "")
;; (find-lilylispfile "")
;;
(code-c-d "lilylearn" ee-lilydocdir "lilypond-learning")
(code-c-d "lilynot"   ee-lilydocdir "lilypond-notation")
(code-c-d "lilysnip"  ee-lilydocdir "lilypond-snippets")
(code-c-d "lilyusage" ee-lilydocdir "lilypond-usage")
;; (find-lilylearnnode "")
;; (find-lilynotnode "")
;; (find-lilysnipnode "")
;; (find-lilyusagenode "")
;; (find-lilypondnode "")
;; (find-lilypondnode "LilyPond command index")
;; (find-lilypondnode "LilyPond index")
;; (find-lilylearnnode "")
;; (find-lilylearnnode "Tutorial")
;; (find-lilylearnnode "Multiple staves")
;; (find-lilylearnnode "LilyPond index")
;; (find-lilyintnode "")
;; (find-lilyintnode "Indices")
;; (find-lilyprognode "")
;; (find-lilyprognode "LilyPond index")
;; (find-lilysnipnode "")
;; (find-lilyglosnode "")
;; (find-lilymutfile "")
;; (find-lilymutfile "E.Satie/petite-ouverture-a-danser.ly")

;; «lilypond-2.18» (to ".lilypond-2.18")
;; (find-es "lilypond" "lilypond-2.18.2")
;;(code-c-d      "lily"      "~/lilypond/" :anchor)
;;(code-c-d      "lilylisp"  "~/lilypond/usr/share/emacs/site-lisp/")
;;
;; «lilypond-manuals-pdf» (to ".lilypond-manuals-pdf")
;; (find-fline "$S/http/lilypond.org/doc/v2.18/Documentation/")
;; http://lilypond.org/doc/v2.18/Documentation/learning.pdf
;; http://lilypond.org/doc/v2.18/Documentation/snippets.pdf
;; http://lilypond.org/doc/v2.18/Documentation/notation.pdf
;;(code-c-d      "lilydoc"   "/usr/share/doc/lilypond/html/Documentation/")
;;(code-pdf-page "lilyessay" "/usr/share/doc/lilypond/html/Documentation/essay.pdf")
;;(code-pdf-text "lilyessay" "/usr/share/doc/lilypond/html/Documentation/essay.pdf")
;;(code-pdf-page "lilylearn" "/usr/share/doc/lilypond/html/Documentation/learning.pdf")
;;(code-pdf-text "lilylearn" "/usr/share/doc/lilypond/html/Documentation/learning.pdf" 5)
;;(code-pdf-page "lilynotat" "/usr/share/doc/lilypond/html/Documentation/notation.pdf")
;;(code-pdf-text "lilynotat" "/usr/share/doc/lilypond/html/Documentation/notation.pdf")
;; (find-lilylearnpage)
;; (find-lilylearntext)
;; (find-lilylearnpage (+ 5 23) "Fingerings")
;; (find-lilylearntext (+ 5 23) "Fingerings")
;; (find-lilylearnpage (+ 5 26) "Grace notes")
;; (find-lilylearntext (+ 5 26) "Grace notes")
;; (find-lilylearnpage (+ 5 32) "warning: barcheck failed at:")
;; (find-lilylearntext (+ 5 32) "warning: barcheck failed at:")
;; (find-lilylearnpage (+ 5 55) "3.2.3 Voices and vocals")
;; (find-lilylearntext (+ 5 55) "3.2.3 Voices and vocals")
;; (find-lilylearnpage (+ 5 83) "\\repeat")
;; (find-lilylearntext (+ 5 83) "\\repeat")
;; (find-lilylearnpage (+ 5 147) "A.1.4 Notes, lyrics, and chords")
;; (find-lilylearntext (+ 5 147) "A.1.4 Notes, lyrics, and chords")
;; (find-lilylearnpage (+ 5 148) "A.2 Piano templates")
;; (find-lilylearntext (+ 5 148) "A.2 Piano templates")

;; (find-lilysnippage)
;; (find-lilysniptext)

;; (find-lilyrefpage)
;; (find-lilyreftext)
;; (find-lilyrefpage (+ 12 6) "reminder accidental")
;; (find-lilyreftext (+ 12 6) "reminder accidental")
;; (find-lilyrefpage (+ 12 49) "Ties")
;; (find-lilyreftext (+ 12 49) "Ties")
;; (find-lilyrefpage (+ 12 67) "\\partial duration")
;; (find-lilyreftext (+ 12 67) "\\partial duration")
;; (find-lilyrefpage (+ 12 137) "1.4 Repeats")
;; (find-lilyreftext (+ 12 137) "1.4 Repeats")
;; (find-lilyrefpage (+ 12 139) "with one alternate ending:")
;; (find-lilyreftext (+ 12 139) "with one alternate ending:")
;; (find-lilyrefpage (+ 12 384) "2.7 Chord notation")
;; (find-lilyreftext (+ 12 384) "2.7 Chord notation")
;; (find-lilyrefpage (+ 12 389) "2.7.2 Displaying chords")
;; (find-lilyreftext (+ 12 389) "2.7.2 Displaying chords")
;; (find-lilyrefpage (+ 12 448) "3.2 Titles and headers")
;; (find-lilyreftext (+ 12 448) "3.2 Titles and headers")
;; (find-lilyrefpage (+ 12 499) "left-margin")
;; (find-lilyreftext (+ 12 499) "left-margin")
;; (find-lilyrefpage (+ 12 494) "4.1.1 The \\paper block")
;; (find-lilyreftext (+ 12 494) "4.1.1 The \\paper block")
;; (find-lilyrefpage (+ 12 507) "4.3 Breaks")
;; (find-lilyreftext (+ 12 507) "4.3 Breaks")
;; (find-lilyrefpage (+ 12 509) "4.3.2 Page breaking")
;; (find-lilyreftext (+ 12 509) "4.3.2 Page breaking")
;; (find-lilyrefpage (+ 12 699) "A.13 List of articulations")
;; (find-lilyreftext (+ 12 699) "A.13 List of articulations")

;; (find-lilylispfile "")
;; (find-lilylispfile "lilypond-init.el")
(autoload 'LilyPond-mode "lilypond-mode" "LilyPond Editing Mode" t)
(add-to-list 'auto-mode-alist '("\\.ly$" . LilyPond-mode))
(add-to-list 'auto-mode-alist '("\\.ily$" . LilyPond-mode))
(add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))

(defalias 'lilypond-mode 'LilyPond-mode)

;; «lilypond-repl»  (to ".lilypond-repl")
;; (find-angg "LILYPOND/repl.ly")
(defun eepitch-lilyrepl () (interactive)
  (eepitch-comint "Lilypond REPL" "lilypond ~/LILYPOND/repl.ly"))



;; «metalua»  (to ".metalua")
;; (find-es "lua5" "metalua")
;; (find-angg "bin/setenved-metalua")
(code-c-d "metalua"        "~/usrc/metalua/")
(code-c-d "metaluaext"     "~/usrc/metalua/src/lib/extension/")
(code-c-d "metaluasamples" "~/usrc/metalua/src/samples/")
(code-xpdf      "metalua" (ee-metaluafile "doc/manual/metalua-manual.pdf"))
(code-pdftotext "metalua" (ee-metaluafile "doc/manual/metalua-manual.pdf"))
;; (find-metaluafile "")
;; (find-metaluaextfile "")
;; (find-metaluasamplesfile "")
;; (find-metaluapage 1)
;; (find-metaluatext 1)
(defun eepitch-metalua () (interactive)
  (eepitch-comint "metalua" (ee-metaluafile "target/bin/setenved-metalua")))
(defun eepitch-metalua () (interactive)
  (eepitch-comint "metalua" "setenved-metalua"))



;; «texinfo»  (to ".texinfo")
;; (find-es "texinfo" "texinfo-deb-src")
;; (find-es "texinfo" "texinfo-doc-nonfree-deb-src")
(code-c-d "texinfo" "~/usrc/texinfo/texinfo-4.11.dfsg.1/" "texinfo")
(code-c-d "texi" "~/usrc/texinfo-doc-nonfree/texinfo-doc-nonfree-4.11/" "texinfo")
;; (find-texinode "Top")
;; (find-efile "textmodes/texinfo.el")
(setq texinfo-open-quote  "\"")
(setq texinfo-close-quote "\"")


;; «ee-unglyph»  (to ".ee-unglyph")
;; (ee-unglyph-1 15)
;; (find-eevfile "eev-insert.el" "defun ee-template")
;; (find-eevfile "htmlize-eev.el")
;; (find-eevfile "htmlize-eev.el" "glyphs-faceglyph-to-facechar")
;; (find-efunctiondescr 'regexp-quote)
;; (find-elnode "Search and Replace")
;; On recent CVS Emacsen glyphs can be either numbers (bitfields) or
;; conses like this: (code . face). See:
;; http://article.gmane.org/gmane.emacs.bugs/17576
;; http://article.gmane.org/gmane.emacs.bugs/17607
;; (find-efunction 'glyph-char)

(defun ee-unglyph-0 (glyph)
  "Convert GLYPH to a propertized string of length 1.
GLYPH is usually a number whose higher bits encode a face-id.
In recent versions of GNU Emacs (after 2008-02-27) GLYPH can also
be a cons."
  (propertize (string (glyph-char glyph)) 'face (glyph-face glyph)))

(defun ee-unglyph-1 (glyph-code)
  "Convert a vector of glyphs to a propertized string.
The vector of glyphs is read from the position GLYPH-CODE of
`standard-display-table'."
  (let* ((glyphvec (aref standard-display-table glyph-code)))
    (apply 'concat (mapcar 'ee-unglyph-0 glyphvec))))

(defun ee-unglyph-alist (glyphs)
"Return an alist with entries of this form: (glyph-code . propertized-string).
The returned alist is used by `ee-unglyph-replace' to speed
up (and simplify) the replacement process."
  (mapcar (lambda (glyph-code)
	    (cons glyph-code (ee-unglyph-1 glyph-code)))
	  glyphs))

(defun ee-unglyph-replace (&optional glyphs)
  "Replace - from point onwards - all glyphs listed in the string GLYPHS.
Return the number of substitutions made."
  (setq glyphs (or glyphs "\f
*«»"))
  (let ((re    (format "[%s]" glyphs))
	(alist (ee-unglyph-alist glyphs))
	(n     0))
    (while (re-search-forward re nil t)
      (setq n (1+ n))
      (replace-match (cdr (assoc (char-after (match-beginning 0))
				 alist))))
    n))

(defun ee-unglyph-region (beg end &optional glyphs)
  "Replace all glyphs listed in the string GLYPHS, in a region.
Return the number of substitutions made.
This function does not move point."
  (interactive "r")
  (save-excursion
    (save-restriction
      (narrow-to-region beg end)
      (goto-char (point-min))
      (ee-unglyph-replace glyphs))))

;; Tests:
;;      (assoc 15 (ee-unglyph-alist "*\r"))
;; (cdr (assoc 15 (ee-unglyph-alist "*\r")))
;;
' (find-estring
   "(ee-unglyph-region (point-min) (point-max))\nfoo * «» bar\n\f\n\r\n")


;; (find-efile "doc-view.el" "Welcome to DocView!")
;; (find-evardescr 'auto-mode-alist ". doc-view-mode")
;; (find-efile "files.el" ". doc-view-mode")



;; «eev-math-glyphs-new»  (to ".eev-math-glyphs-new")
;; New code for eev-math-glyphs.el - incomplete
;; (find-eevfile "eev-math-glyphs.el")
;; (find-eevfile "eev-compose.el")
;; (find-elnode "Other Plists")

(when window-system

(require 'eev-math-glyphs)

(setq ee-new-name-to-char-0 '(
    (Theta Pi  Sigma Omega)
    (920   928 931   937)
    (delta epsilon theta lambda nu  pi  rho sigma tau omega)
    (948   949     952   955    957 960 961 963   964 969)
    (top  bot  land lor  supset forall exists _box box  thin:)
    (8868 8869 8743 8744 8835   8704   8707   9633 9744 8758)
    (in   circ cap  cup  infty Int  nabla ge   ^1  sqcap)
    (8712 9675 8745 8746 8747  8711 8734  8805 185 8851)
    (ud&  oplus otimes to   dotli nat  seblock neblock)
    (8523 8853  8855   8594 9480  9838 9623    9629)
    (b  r   s   t)
    (98 114 115 116)
  ))

(setq ee-new-name-to-char (ee-chop3 2 1 ee-new-name-to-char-0))

)

(defun ee-insert-sexp (sexp) (insert (ee-pp0 sexp) "\n"))
(defun find-elist     (list) (find-eoutput `(mapc 'ee-insert-sexp ',list)))
(defun ee-mapcar      (f seq) (mapcar (lambda (args) (apply f args)) seq))
(defun ee-mapc        (f seq) (mapc   (lambda (args) (apply f args)) seq))
(defun ee-insert-name-char (name char) (insert (format "%c %s\n" char name)))

;; (find-elist ee-new-name-to-char-0)
;; (find-elist ee-new-name-to-char)
;; (find-eoutput '(ee-mapc 'ee-insert-name-char ee-new-name-to-char))
;; (find-epp   (ee-chop1 4 (number-sequence 1 10)))
;; (find-elist (ee-chop1 4 (number-sequence 1 10)))

;; (eq 'ee-mapc (intern "ee-mapc"))
;; (eq '\99 (intern "99"))

;; (concat "foo" "bar" "plic" "ploc")
;; (append '(1 2) '(3 4) '(5 6))

;; (find-eevfile "eev-math-glyphs.el")
;;
(defun eev-math-glyph-names (name code &rest rest)
  (add-to-alist 'eev-math-glyphs-name-to-char `(,name . ,code))
  (if rest (apply 'eev-math-glyph-names rest)))




;; «my-faces-sort»  (to ".my-faces-sort")

(defun my-next-single-property-change (pos prop &optional object limit)
  "Like `next-single-property-change', but OBJECT is ignored,
LIMIT is set to (point-max) if nil, and if the property stays
constant until LIMIT then return LIMIT instead of returning nil.
Usage is typically like this:\n
\(let (next)
  (while (setq next (my-next-single-property-change (point) 'face nil limit))
    ...
    (goto-char next)))"
  (let* ((limit (or limit (point-max)))
	 (nextpos (next-single-property-change pos prop nil limit)))
    (cond ((and nextpos (< pos nextpos))
	   nextpos)
	  ((< pos limit)
	   limit))))

(defun my-strings-and-faces (s e)
  "Return a description of the region between S and E as a list
of (face str) pairs. The typical output will be something like:\n
  ((font-lock-doc-face \"foo\")
   (nil \" \")
   ((:foreground \"red\") \"bar\"))"
  (save-excursion
    (let (next pairs (limit (max s e)))
      (goto-char (min s e))
      (while (setq next (my-next-single-property-change (point) 'face nil limit))
	(let ((str  (buffer-substring-no-properties (point) next))
	      (face (get-text-property (point) 'face)))
	  (setq pairs (cons (list face str) pairs))
	  (goto-char next)))
      (nreverse pairs))))

;; Example/test:
' (eesteps '(
    (find-estring "")
    (insert (propertize "foo" 'face 'font-lock-doc-face) " ")
    (insert (propertize "bar" 'face '(:foreground "red")))
    (insert (format "\n%S\n" (my-strings-and-faces (point-min) (point))))
    ;; Result:
    ;; ((font-lock-doc-face "foo") (nil " ") ((:foreground "red") "bar"))
    ))

(defun my-strings-and-faces-face-name (stringandface)
  (let ((face (car stringandface)))
    (if (consp face)
	(format "%S" face)
      (symbol-name face))))

;; (find-node "(cl)Sequence Functions" "delete-duplicates")
(defun my-faces-sort (stringandfacelist)
  (require 'cl)
  (delete-duplicates
   (sort (mapcar 'my-strings-and-faces-face-name stringandfacelist)
	 'string<)
   :test 'equal
   ))

(defun my-simplify-faces (s e)
"Htmlize.el doesn't like faces like (face1 face2) - replace them by their car."
  (let ((start (min s e)) (limit (max s e)) next face (n 0))
    (save-excursion
      (goto-char start)
      (while (setq next (my-next-single-property-change (point) 'face nil limit))
	(setq face (get-text-property (point) 'face))
	(when (and (consp face) (facep (car face)))
	  (put-text-property (point) next 'face (car face))
	  (setq n (1+ n)))
	(goto-char next)))
    n))

(defun copy-this-unibyte-buffer ()
  "Warning: this is confusing - watch the name of the buffer!"
  (interactive)
  (let ((b (buffer-substring (point-min) (point-max)))
	(p (point))
	(ee-buffer-name "*copy*"))
    (find-euboutput '(insert b))
    (goto-char p)))

' (eesteps '(
   (copy-this-unibyte-buffer)
   (find-epp (my-faces-sort (my-strings-and-faces (point-min) (point-max))))
   (kill-this-buffer)
   (message "%d simplifications" (my-simplify-faces (point-min) (point-max)))
   (find-epp (my-faces-sort (my-strings-and-faces (point-min) (point-max))))
   (kill-this-buffer)
   (kill-this-buffer)
   ))

;;                          (my-faces-sort (my-strings-and-faces (point) (mark)))
;; (find-estring (ee-concat (my-faces-sort (my-strings-and-faces (point) (mark))) "\n"))
;; (find-estring (ee-concat (my-faces-sort (my-strings-and-faces (point-min) (point-max))) "\n"))
;; (find-epp (my-faces-sort (my-strings-and-faces (point-min) (point-max))))

;; (find-estring  (my-strings-and-faces (point) (mark))))
;; (find-epp (mapcar 'car myp))
;; (delete-duplicates (sort (mapcar 'symbol-name (mapcar 'car myp)) 'string<))




;; «doc-view-mode»  (to ".doc-view-mode")
;; (find-evardescr 'auto-mode-alist)
;; (find-egrep "grep -nH -e  doc-view-mode $(find * -name '*.el')")
;; (find-efile "files.el" ". doc-view-mode")
;; (find-elnode "Sequence Functions" "Function: copy-sequence")
;; (find-elnode "Association Lists" "Function: rassq-delete-all")
;; (find-elnode "Auto Major Mode" "Variable: auto-mode-alist")
;;
(if (fboundp 'rassq-delete-all)
(setq auto-mode-alist (rassq-delete-all 'doc-view-mode auto-mode-alist))
)


(seen 10050)


;; «sqlite»  (to ".sqlite")
;; (find-es "sqlite")
(code-c-d "sqlitedoc" "/usr/share/doc/sqlite3-doc/")

;; (code-c-d "pclcvs" "/tmp/foo/" "pcl-cvs")
;; (find-pclcvsnode "")


;; (find-enode "Persistent Mark")
;; (find-egrep "grep -nH -e 'Mark deactivated' *.el")
;; (find-efunction 'set-mark-command)
;; (find-evardescr 'transient-mark-mode)
;; (find-evariable 'transient-mark-mode)
;; (find-efunctiondescr 'transient-mark-mode)
;; (find-efunction 'transient-mark-mode)

;; «deact»  (to ".deact")
;; «deactivate-mark»  (to ".deactivate-mark")
;; (find-es "emacs" "transient-mark-mode")
(defun deact () (interactive) (deactivate-mark 'force))





;; «find-pen-links»  (to ".find-pen-links")
;; (find-pen-links)
;; (find-es "pendrive")
;; (find-fline "/tmp/pen/")
;; (find-man "mount")
;; (find-man "mount" "Mount options for fat")
;; (find-man "8 mount" "Mount options for fat" "uid=value")
;; (find-sh "dmesg")
;;
(defun find-pen-links (&optional str &rest rest)
  "Visit a temporary buffer containing hyperlinks for pen drive operations."
  (interactive)
  (find-elinks `(
    (find-pen-links ,str ,@rest)
    (find-efunction 'find-pen-links)
    (find-es "pendrive" "repartition-1")
    (find-man "8 mount" "Mount options for fat" "uid=value")
    (find-angg "VIDEOS/Makefile")
    (find-sh "dmesg")
    (find-sh "dmesg | tail")
    (find-fline "/dev/disk/by-id/")
    (find-sh "sudo ls -l /dev/disk/by-id/*usb*")
    (find-sh "sudo ls -l /dev/disk/by-id/*usb* | cut -b 56-")
    "
* (eepitch-shell)
mkdir /tmp/pen/
sudo mount -o ro               /dev/sdb1 /tmp/pen/
sudo mount -o ro               /dev/sdc1 /tmp/pen/
sudo mount -o ro       -t vfat /dev/sdb1 /tmp/pen/
sudo mount             -t vfat /dev/sdb1 /tmp/pen/
sudo mount -o uid=$UID -t vfat /dev/sdb1 /tmp/pen/
sudo mount -o uid=$UID         /dev/sdb1 /tmp/pen/
sudo mount -o uid=$UID         /dev/sdc1 /tmp/pen/
sudo mount -o uid=$UID         /dev/sdb  /tmp/pen/
sudo mount -o uid=$UID         /dev/sdc  /tmp/pen/
# (find-fline \"/tmp/pen/\")
# (find-fline \"/tmp/pen/Music/\")
# (find-fline \"/tmp/pen/DCIM/Camera/\")
# (find-fline \"/tmp/pen/DCIM/100D5100/\")
# (find-fline \"/tmp/pen/VOICE/FOLDER01/\")"
    ;;
    ,(or str "")
    ;;
"sudo umount /dev/sdb1
sudo umount /tmp/pen
sync

# (find-es \"hd\" \"seagate-expansion\")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
lsscsi
sudo fdisk -l /dev/sdb

sudo umount   /dev/sdb1
sudo umount   /tmp/sgexpansion1
mount
mkdir /tmp/sgexpansion1/
sudo mount    /dev/sdb1  /tmp/sgexpansion1/
sudo mount    /dev/sdc1  /tmp/sgexpansion1/
sudo mount    /dev/sdd1  /tmp/sgexpansion1/
sudo mount    /dev/sde1  /tmp/sgexpansion1/

sudo umount   /dev/sdb1
sudo fsck     /dev/sdb1

# (find-fline \"/tmp/sgexpansion1/\")
# (find-fline \"/tmp/sgexpansion1/movies/\")
# (find-sh-at-dir \"/tmp/sgexpansion1/movies/\" \"find * | sort\")

cd /sda6/nikon/caderno/
make -f ~/VIDEOS/Makefile r4_jpgs
# (find-fline \"/sda6/nikon/caderno/\")

\ (find-fline \"/sda6/nikon/aula_1/\")
\ (find-fline \"/sda6/nikon/aula_2/\")
\ (find-fline \"/sda6/nikon/aula_3/\")
\ (find-fline \"/sda6/nikon/aula_4/\")
\ (find-fline \"/sda6/nikon/aula_5/\")
\ (find-fline \"/sda6/nikon/aula_6/\")
\ (find-fline \"/sda6/nikon/aula_7/\")
\ (find-fline \"/sda6/nikon/aula_8/\")
\ (find-fline \"/sda6/nikon/aula_9/\")
\ (find-fline \"/sda6/nikon/aula_10/\")

\(progn
  (kill-new \"/sda6/nikon/\")
  (find-3
    ' (find-fline \"/tmp/pen/DCIM/100D5100/\" 1 '(eek \"M->\"))
    ' (find-fline \"/sda6/nikon/\"            1 '(eek \"M->\"))
  ))"
    )))

;; Tests:
;; (find-pen-links)
;; (find-pen-links "# Hello")


;; (find-dvd-links)
(defun find-dvd-links (&rest rest)
  "Visit a temporary buffer containing hyperlinks for dvd operations."
  (interactive)
  (apply 'find-elinks `(
    (find-dvd-links ,@rest)
    (find-efunction 'find-dvd-links)
    (find-man "8 mount" "Mount options for fat" "uid=value")
    (find-sh "dmesg")
    (find-sh "dmesg | tail")
    "
* (eepitch-shell)
mkdir /tmp/dvd/
sudo mount -o ro /dev/sr0 /tmp/dvd/
# (find-fline \"/tmp/dvd/\")
cd
vlc    /tmp/dvd/
cd
sudo umount /tmp/dvd/
eject /dev/sr0
") rest))

;; (find-cdrom-links)
(defun find-cdrom-links (&rest rest)
  "Visit a temporary buffer containing hyperlinks for cdrom operations."
  (interactive)
  (apply 'find-elinks `(
    (find-cdrom-links ,@rest)
    (find-man "8 mount" "Mount options for fat" "uid=value")
    (find-sh "dmesg")
    (find-es "cdrom")
    "
* (eepitch-shell)
mkdir /tmp/cdrom/
sudo mount -o ro       /dev/hdc /tmp/cdrom/
sudo mount             /dev/hdc /tmp/cdrom/
sudo mount -o uid=$UID /dev/hdc /tmp/cdrom/
# (find-fline \"/tmp/cdrom/\")
sudo umount /tmp/cdrom"
    ) rest))


;; «find-hde-links» (to ".find-hde-links")
;; Test: (find-hde-links)
(defun find-hde-links (&optional dir &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
  (interactive)
  (setq dir (or dir "{dir}"))
  (apply 'find-elinks
   `((find-hde-links ,dir ,@pos-spec-list)
     (find-hde-links "/")
     (find-hde-links "/nikon/")
     (find-es "hd")
     (find-es "hd" "external-hds-sex")
     (find-es "hd" "external-hds-reef")
     ;; Convention: the first sexp always regenerates the buffer.
     ;; (find-efunction 'find-hde-links)
     ""
     ,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-sh \"dmesg | tail\")
mkdir /tmp/hde1/
mkdir /tmp/hde2/
mkdir /tmp/hde5/
mkdir /tmp/hde6/
mkdir /tmp/hde7/
sudo mount /dev/sdb1  /tmp/hde1/
sudo mount /dev/sdb2  /tmp/hde2/
sudo mount /dev/sdb5  /tmp/hde5/
sudo mount /dev/sdb6  /tmp/hde6/
sudo mount /dev/sdb7  /tmp/hde7/
# (find-fline \"/tmp/hde1/\")
# (find-fline \"/tmp/hde2/\")
# (find-fline \"/tmp/hde5/\")
# (find-fline \"/tmp/hde6/\")
# (find-fline \"/tmp/hde7/\")
# (find-fline \"/tmp/hde2{dir}\")
cd /tmp/hde2{dir}
du -c
cp -auv * {dir}
# (find-fline \"{dir}\")

cd
sudo umount /tmp/hde1/
sudo umount /tmp/hde2/
sudo umount /tmp/hde5/
sudo umount /tmp/hde6/
sudo umount /tmp/hde7/
")
     )
   pos-spec-list))

;; Test: (find-hde-links)




;; «find-dn4tex-links»  (to ".find-dn4tex-links")
;; (find-angg ".emacs.templates" "find-dn4tex-links")


;; «find-euboutput»  (to ".find-euboutput")
;; (find-es "emacs" "display-table-latin-1")
;; (find-enode "Enabling Multibyte" "nothing precedes the colon")
;; (find-enode "Mode Line" "When multibyte" "CS does not appear")
;; (find-enode "Multibyte Conversion" "0200 through 0237")
;; (find-efunction 'find-eoutput)
;; (find-euboutput '(insert "«»"))
;; (find-eeoutput '(ee-set-latin-1) '(insert "«»"))
;; (find-eeoutput '(ee-set-unibyte) '(insert "«»"))
;;
(defun find-eeoutput (precode code &rest pos-spec-list)
  "Like `find-eoutput', but runs PRECODE before CODE."
  (find-escratchbuffer (or ee-buffer-name "*output*"))
  (eval precode)
  (eval code)
  (goto-char (point-min))
  (apply 'ee-goto-position pos-spec-list))

(defun ee-set-unibyte ()
  (interactive)
  (set-buffer-multibyte nil)
  (set-buffer-file-coding-system 'raw-text))

(defun ee-set-latin-1 ()
  (interactive)
  (set-buffer-file-coding-system 'latin-1))

(defun find-euboutput (code &rest pos-spec-list)
  "Like `find-eoutput', but sets the buffer to unibyte."
  (apply 'find-eeoutput (ee-set-unibyte) code pos-spec-list))




;; «ee-compilation-buffer»  (to ".ee-compilation-buffer")
;; (find-angg "elisp/test.el" "ee-compilation-buffer")
(setq ee-compilation-buffer "")

;; «ee-code-c-d-:SH»  (to ".ee-code-c-d-:SH")
(defun ee-code-c-d-:SH (c d &rest rest)
  (concat (ee-template0 "
   ;; {(ee-S `(ee-code-c-d-:SH ,c ,d ,@rest))}
   (defun ee-{c}shbuf-name (command)
     (format \"cd {d}\\n%s\" command))
   (defun find-{c}SH (command &rest pos-spec-list)
     (find-sh-at-dir ee-{c}dir command)
     (setq ee-compilation-buffer (buffer-name))
     (apply 'ee-goto-position pos-spec-list))
   ") (ee-code-c-d-rest c d rest)))

;; (find-code-c-d "LATEX"    "~/LATEX/" :anchor :SH)
        (code-c-d "LATEX"    "~/LATEX/" :anchor :SH)

;; (find-code-c-d "LILYPOND" "~/LILYPOND/" :anchor :SH)
        (code-c-d "LILYPOND" "~/LILYPOND/" :anchor :SH)



;; «verbatim» (to ".verbatim")
(defun eeinsert2 (pre post s e)
  (save-excursion (goto-char (max s e)) (insert post))
  (save-excursion (goto-char (min s e)) (insert pre)))

(defun vf (s e)
  (interactive "r")
  (eeinsert2
   "{\\myttchars\n\\footnotesize\n\\begin{verbatim}\n"
   "\\end{verbatim}\n}\n" s e))



;; Hacky fix, 2008may20:
;; (find-egrep "grep -nH -e crm $(find * -name '*.el')")
(defalias 'crm-select-current-element 'crm--select-current-element)
;; Note that `find-eface-links' calls that function indirectly.
;; (eek "M-h M-k M-h M-s")

;; Fix `tex-verbatim':
;;   (face-attribute 'font-lock-comment-face :family)
;;   (face-attribute 'tex-verbatim           :family)
;;   (find-eface-links    'font-lock-comment-face)
;;   (find-eface-links    'tex-verbatim)
;;   (find-efacedescr     'tex-verbatim)
;; Original: (set-face-foreground 'tex-verbatim nil)
;;           (set-face-attribute  'tex-verbatim nil :family "courier")
;; Changed:  (set-face-foreground 'tex-verbatim "burlywood1")
;;           (set-face-attribute  'tex-verbatim nil :family 'unspecified)
;;
;; Fix `region':
;;   (find-eface-links    'region)
;; Original: (set-face-background 'region "blue3")
;; Changed:  (set-face-background 'region "navyblue")
;;
(set-face-background 'region "navyblue")
(eval-after-load "tex-mode"
  '(progn
     (set-face-foreground 'tex-verbatim "burlywood1")
     (set-face-attribute  'tex-verbatim nil :family 'unspecified)))


;; «find-printindex»  (to ".find-printindex")
;; (find-printindex)
;; (find-angg "LUA/anchors.lua")
(defun find-printindex0 (&optional fname)
  (interactive)
  (find-sh0 (format
	     "lua51 ~/LUA/anchors.lua -i %s"
	     (or fname (buffer-file-name)))))
(defun find-printindex (&optional fname)
  (interactive)
  (find-sh (format
	    "lua51 ~/LUA/anchors.lua -i %s"
	    (or fname (buffer-file-name)))))

;; 2008may25:
;; run-hooks: Symbol's value as variable is void: ispell-local-dictionary-alist
(setq ispell-local-dictionary-alist nil)
;; <f10> e t r
;; (find-egrep "grep -nH -e 'Remove Text Properties' $(find * -name '*.el')")
;; (find-efile "facemenu.el" "Remove Text Properties")
;; (find-efunction 'facemenu-remove-all)
;; (where-is       'facemenu-remove-all)
;; (find-elongkey-links "<menu-bar> <edit> <Text Properties> <ra>")
(defalias 'etr 'facemenu-remove-all)
(defalias 'ma  'eev-math-glyphs-edrx)
(defalias 'mar 'eev-math-glyphs-reset)


;; «find-fontset-links»  (to ".find-fontset-links")
;; (find-es "emacs" "find-fontset-links")
;; (find-fontset-links)
;;
(defun find-fontset-links (&rest rest)
  (interactive)
  (apply 'find-es "emacs" "find-fontset-links" rest))


;; «ee-font-unalias»  (to ".ee-font-unalias")
;; (find-es "emacs" "ee-font-unalias")
;; (find-sh0 "xlsfonts -ll -fn 7x13")
;; (find-sh0 "xlsfonts -ll -fn 7x13 | grep ' FONT ' | cut -b29- | tr A-Z a-z")
;; (find-sh "xlsfonts -ll -fn -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1")
;; (find-sh "xlsfonts -ll -fn foo")
;; (ee-font-unalias-x "foo")
;; (ee-font-unalias-x "7x13")
;; (ee-font-unalias-x (ee-font-unalias-x "7x13"))
;; (ee-font-unalias (ee-font-unalias-x "7x13"))
;; (ee-font-unalias (ee-font-unalias-x "7x13") t)
;;
(defun ee-font-unalias-x (fontname)
  (find-sh0 (format
	     "xlsfonts -ll -fn '%s' | grep ' FONT ' | head -n 1 | cut -b29- | tr A-Z a-z"
	     fontname)))

(defun ee-font-unalias (fontname &optional use-ucs)
  (setq fontname (ee-font-unalias-x fontname))
  (if use-ucs (replace-regexp-in-string
	       "iso8859" "iso10646"
	       fontname)
    fontname))

;; «ee-set-frame-font»  (to ".ee-set-frame-font")
;; (find-es "emacs" "ee-set-frame-font")
(defun ee-set-frame-font (fontname &optional use-ucs)
  "Like `set-frame-font', but uses `ee-font-unalias' to expand FONTNAME."
  (set-frame-font (ee-font-unalias fontname use-ucs)))

;; Tests:
;; (ee-font-unalias "fixed")
;; (ee-font-unalias "fixed" t)
;; (set-frame-font "-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1")
;; (ee-set-frame-font "5x7" t)
;; (ee-set-frame-font "6x10" t)
;; (ee-set-frame-font "6x13" t)
;; (ee-set-frame-font "fixed" t)
;; (ee-set-frame-font "9x15" t)
;; (ee-set-frame-font "10x20" t)
;; (find-eoutput '(ee-insert '(32 126) "\n" '(913 981) "\n" '(8592 9675)))



;; «:dvi»  (to ".:dvi")

;; (find-eevfile "eev.el" "defvar code-c-d-keywords-new")
' (add-to-alist 'code-c-d-keywords-new '(:dvi  . ee-code-c-d-:dvi))
' (defun ee-code-c-d-:dvi (&rest rest)
    (concat (ee-template0 "
   (defun find-{c}dvi (fname &rest rest)
     (apply 'find-dvipage (ee-{c}file fname) rest))
   ") (ee-code-c-d-rest rest)))
' (code-c-d "LATEX" "~/LATEX/" :anchor :dvi)
(code-c-d "LATEX" "~/LATEX/" :anchor)

;; (find-sh "cd ~/LATEX/; ls *.tex")

;; «find-LTX»  (to ".find-LTX")
;; (find-TH "math-b" "seminars-2007")
;; (find-LTX "2007dnc-sets")
;; (find-blogme3 "angglisp.lua" "find-LTX")
(defun find-LTX (stem)
  (if ee-arg
      (find-LATEX (format "%s.tex" stem))
    (find-LATEXdvi (format "%s.dvi" stem))))


;; «find-testfont»  (to ".find-testfont")
;; (find-es "tex" "testfont.tex")
(defun eetestfont0 (s &optional e)
  "Write HEADER+(ee-se-to-string S E)+\"\\bye\" to /tmp/eetestfont.tex."
  (interactive "r")
  (ee-write-with-nl s e "\\let\\noinit!
\\input testfont
\\def\\t#1{\\def\\fontname{#1}\\startfont\\table}
\\def\\T#1{\\def\\fontname{#1}\\startfont\\table\\vfill\\break}
\\def\\newpage{\\vfill\\break}\n"
    "\\bye\n"
    "/tmp/eetestfont.tex"))

(defun find-testfont (texcmds &rest rest)
  "Run `eetestfont0' on TEXCMDS, then run TeX and xdvi on /tmp/eetestfont.*"
  (eetestfont0 texcmds)
  (prog1 (find-sh0 "cd /tmp/ && tex eetestfont.tex")
    (apply 'find-dvipage "/tmp/eetestfont.dvi" rest)))

;; «find-dvifonts»  (to ".find-dvifonts")
;; (find-angg ".zshrc" "dvifonts")
(defun ee-dvifonts-command (fname)
  (format "dvitype -output-level=1 '%s' | grep fntdef | cut -d' ' -f 4-"
	  (ee-expand fname)))
(defun find-dvifonts (fname &rest rest)
  (apply 'find-sh (ee-dvifonts-command fname) rest))
(defun find-dvifonts0 (fname &rest rest)
  (apply 'find-sh (ee-dvifonts-command fname) rest))

;; Tests:
;; (find-testfont "\\T{bbm10}\\T{bbold10}")
;; (find-dvifonts "/tmp/eetestfont.dvi")


;; «ee-env-normalize»  (to ".ee-env-normalize")
;; (string-match "=" "foo=bar")
;; (substring "foo=bar" 0 3)
;; (substring "foo=bar" 4)
;; (ee-env-expand1 "foo=$EE=bar")
;; (ee-env-normalize '("FOO=BAR" ("plic" "ploc") "BLETCH=QUX"))
;; (ee-env-normalize   "FOO=BAR")
;;

;; Moved, with changes, to: (find-eev "eev-env.el" "ee-with-env0")
;;
;; (defun ee-env-expand1 (pair)
;;   (let ((where (string-match "=" pair)))
;;     (if where
;; 	(let ((var (substring pair 0 where))
;; 	      (exp (substring pair (1+ where))))
;; 	  (format "%s=%s" var (ee-expand exp)))
;;       pair)))
;;
;; (defun ee-env-normalize1-ne (pair)
;;   (if (stringp pair) pair (format "%s=%s" (car pair) (or (cadr pair) ""))))
;;
;; (defun ee-env-normalize-ne (pairs)
;;   (if (stringp pairs) (list pairs) (mapcar 'ee-env-normalize1-ne pairs)))
;;
;; (defun ee-env-normalize (pairs)
;;   (mapcar 'ee-env-expand1 (ee-env-normalize-ne pairs)))

;; «ee-with-env»  (to ".ee-with-env")
;; (find-efunction 'with-current-buffer)
;; (find-elnode "Expansion")
;;                                             (find-sh0 "echo $FOO")
;; (ee-with-env          "FOO=bar"             (find-sh0 "echo $FOO"))
;; (ee-with-env        '("FOO=bar")            (find-sh0 "echo $FOO"))
;; (ee-with-env        '("FOO=bar" "FOO=plic") (find-sh0 "echo $FOO"))
;; (ee-with-env '("FOO=" "FOO=bar" "FOO=plic") (find-sh0 "echo $FOO"))
;; (ee-with-env '("FOO"  "FOO=bar" "FOO=plic") (find-sh0 "echo $FOO"))
;;

;; Moved, with changes, to: (find-eev "eev-env.el" "ee-with-env")
;;
;; (defmacro ee-with-env (envchanges &rest body)
;;   `(let ((process-environment
;; 	  (append (ee-env-normalize ,envchanges)
;; 		  process-environment)))
;;      ,@body))



;; From:
;; http://steve.yegge.googlepages.com/my-dot-emacs-file
(defun swap-windows ()
  "If you have 2 windows, it swaps them."
  (interactive)
  (cond ((not (= (count-windows) 2))
	 (message "You need exactly 2 windows to do this."))
	(t (let* ((w1 (first (window-list)))
		  (w2 (second (window-list)))
		  (b1 (window-buffer w1))
		  (b2 (window-buffer w2))
		  (s1 (window-start w1))
		  (s2 (window-start w2)))
	     (set-window-buffer w1 b2)
	     (set-window-buffer w2 b1)
	     (set-window-start w1 s2)
	     (set-window-start w2 s1)))))


;; «eepitch-makeinfo»  (to ".eepitch-makeinfo")
;; (find-es "texinfo" "texinfo-deb-src")
;; (find-fline "$MAKEINFODIR")
;; (code-c-d "texinfo" "~/usrc/texinfo/texinfo-4.11.dfsg.1/")
;; (setenv "MAKEINFODIR" (ee-texinfofile "makeinfo"))

(defun eepitch-gdb-makeinfo ()
  (eepitch-gdb "*gud-makeinfo*" "gdb --annotate=3 $MAKEINFODIR/makeinfo"))
(defun eepitch-gdb-makeinfo-kill ()
  (eepitch-gdb-kill "*gud-makeinfo*"))


;; «tmpdn4»  (to ".tmpdn4")
;; (find-dn4 "Makefile" "tmpdir")
(code-c-d "tmpdn4"  "/tmp/dn4/" :anchor)
(code-c-d "tmpdn4d" "/tmp/dn4/demos/")


;; «luatex»  (to ".luatex")
;; (find-angg ".emacs.papers" "luatexref")
;; (find-es "luatex" "luatex-manual")
;; (find-es "luatex" "luatex")
;; http://www.luatex.org/svn/trunk/manual/luatexref-t.pdf
;; http://www.luatex.org/svn/trunk/manual/luatex.pdf
;;
;; «luatexref»  (to ".luatexref")
;; http://mirrors.ibiblio.org/CTAN/systems/doc/luatex/luatex.pdf (2022oct22)
;;(code-pdf-page "luatexref" "$S/http/mirrors.ibiblio.org/CTAN/systems/doc/luatex/luatex.pdf")
;;(code-pdf-text "luatexref" "$S/http/mirrors.ibiblio.org/CTAN/systems/doc/luatex/luatex.pdf" 4)
;; (find-luatexrefpage)
;; (find-luatexreftext)
;;
;; (find-tlsh "find * | sort | grep luatex")
;; (find-tlsh "find * | sort | grep luatex | grep manual")
;; (find-tlsh "find * | sort | grep luatex | grep manual | grep pdf")
;; (find-luatexreffile "")
;; (find-fline "/usr/local/texlive/2018/texmf-dist/doc/context/documents/general/manuals/")
(code-c-d      "luatexref" "/usr/local/texlive/2019/texmf-dist/doc/context/documents/general/manuals/")
(code-pdf-page "luatexref" "/usr/local/texlive/2019/texmf-dist/doc/context/documents/general/manuals/luatex.pdf")
(code-pdf-text "luatexref" "/usr/local/texlive/2019/texmf-dist/doc/context/documents/general/manuals/luatex.pdf" 4)
;; (find-luatexrefpage        5  "Contents")
;; (find-luatexreftext        5  "Contents")
;; (find-luatexrefpage       10  "tex.print")
;; (find-luatexrefpage (+ 4  15) "1 Introduction")
;; (find-luatexreftext (+ 4  15) "1 Introduction")
;; (find-luatexrefpage (+ 4  23) "2.7.6 Catcode tables")
;; (find-luatexreftext (+ 4  23) "2.7.6 Catcode tables")
;; (find-luatexrefpage (+ 4  26) "3.2 LUA changes" "3.2 LUA changes")
;; (find-luatexreftext (+ 4  26) "3.2 LUA changes" "3.2 LUA changes")
;; (find-luatexrefpage (+ 4  76) "The mplib library")
;; (find-luatexreftext (+ 4  76) "The mplib library")
;; (find-luatexrefpage (+ 4  90) "The node library")
;; (find-luatexreftext (+ 4  90) "The node library")
;; (find-luatexrefpage (+ 4  94) "4.10.1.17 node.hpack")
;; (find-luatexreftext (+ 4  94) "4.10.1.17 node.hpack")
;; (find-luatexrefpage (+ 4  95) "4.10.1.19 node.dimensions")
;; (find-luatexreftext (+ 4  95) "4.10.1.19 node.dimensions")
;; (find-luatexrefpage (+ 4  96)   "\\setbox0 = \\hbox to 20pt {a b}")
;; (find-luatexreftext (+ 4  96)   "\\setbox0 = \\hbox to 20pt {a b}")
;; (find-luatexrefpage (+ 4 106) "4.13.1.1 Integer parameters")
;; (find-luatexreftext (+ 4 106) "4.13.1.1 Integer parameters")
;; (find-luatexrefpage (+ 4 107) "4.13.1.2 Dimension parameters")
;; (find-luatexreftext (+ 4 107) "4.13.1.2 Dimension parameters")
;; (find-luatexrefpage (+ 4 110) "4.13.3 Last item commands")
;; (find-luatexreftext (+ 4 110) "4.13.3 Last item commands")
;; (find-luatexrefpage (+ 4 110) "4.13.4 Attribute, count, dimension, skip and token registers")
;; (find-luatexreftext (+ 4 110) "4.13.4 Attribute, count, dimension, skip and token registers")
;; (find-luatexrefpage (+ 4 112) "4.13.6 Box registers")
;; (find-luatexreftext (+ 4 112) "4.13.6 Box registers")

;; (find-luatexrefpage (+ 4 115) "4.13.10 Print functions")
;; (find-luatexreftext (+ 4 115) "4.13.10 Print functions")
;; (find-luatexrefpage (+ 4 117) "4.13.11.1 tex.round")
;; (find-luatexreftext (+ 4 117) "4.13.11.1 tex.round")
;; (find-luatexrefpage (+ 4 126) "4.16 The token library")
;; (find-luatexreftext (+ 4 126) "4.16 The token library")
;; (find-luatexreftext "")

;; (find-luatexrefpage (+ 4 113) "4.14.1.1 Integer parameters")
;; (find-luatexreftext (+ 4 113) "4.14.1.1 Integer parameters")
;; (find-luatexrefpage (+ 4 114)   "tex.catcodetable")
;; (find-luatexreftext (+ 4 114)   "tex.catcodetable")
;; (find-luatexrefpage (+ 4 119) "4.14.5 Character code registers")
;; (find-luatexreftext (+ 4 119) "4.14.5 Character code registers")


;; «luatex-src» (to ".luatex-src")
;; (find-es "luatex" "luatex-upstream")
(code-c-d "luatexsrc"   "~/bigsrc/luatex-beta-0.79.1/")
(code-c-d "luatexsrclt" "~/bigsrc/luatex-beta-0.79.1/source/texk/web2c/luatexdir/tex/")
(code-c-d "luatexweb2c" "~/bigsrc/luatex-beta-0.79.1/build/texk/web2c/")
(setenv "NEWLUATEXDIR" "/home/edrx/bigsrc/luatex-beta-0.79.1/build/texk/web2c")
;; (find-luatexsrcfile "")
;; (find-luatexweb2cfile "")

;; «luatex-0.95.0» (to ".luatex-0.95.0")
;; (find-es "luatex" "luatex-0.95.0-pdfoutput")
(code-c-d      "luatex095" "~/usrc/luatex/0.95.0/")
(code-xpdf     "luatex095" "~/usrc/luatex/0.95.0/manual/luatex.pdf")
(code-pdf-text "luatex095" "~/usrc/luatex/0.95.0/manual/luatex.pdf" 4)
;; (find-luatex095page (+ 4 30) "2.1.7 The backend primitives \\pdf *")
;; (find-luatex095text (+ 4 30) "2.1.7 The backend primitives \\pdf *")
;; (find-luatex095page (+ 4 33) "\\let\\pdfoutput")
;; (find-luatex095text (+ 4 33) "\\let\\pdfoutput")



;; «luacode» (to ".luacode")
;; (find-fline "/usr/share/doc/texlive-luatex/lualatex/luacode/")
(code-xpdf     "luacode" "/usr/share/doc/texlive-luatex/lualatex/luacode/luacode.pdf")
(code-pdf-text "luacode" "/usr/share/doc/texlive-luatex/lualatex/luacode/luacode.pdf")
;; (find-luacodepage)
;; (find-luacodetext)

(defun eepitch-luatex () (interactive)
  (eepitch-comint-at "/tmp/" "luatex" "luatex"))
(defun eepitch-lualatex () (interactive)
  (eepitch-comint-at "/tmp/" "lualatex" "lualatex"))

(defun eeluatex (s &optional e)
  (interactive "r")
  (ee-write s e
	    "\\documentclass{article}\n\\begin{document}\n"
	    "\n\\end{document}" "$EEVTMPDIR/ee.tex")
  (find-sh "cd $EEVTMPDIR/ && lualatex ee.tex"))

(defun eeluatex-view () (find-xpdf-page "$EEVTMPDIR/ee.pdf"))

;; (find-code-bounded 'eeluatex-bounded 'eeluatex 'ee-delimiter-percent)
        (code-bounded 'eeluatex-bounded 'eeluatex 'ee-delimiter-percent)


;; «lua-repl» (to ".lua-repl")
;; (find-es "lua5" "luarepl-2017")
;; (find-es "lua5" "lua-repl-0.8")
(code-c-d "luarepl" "~/usrc/lua-repl/")
;; (find-luareplfile "")
;; (find-luareplfile "repl/")
;; (find-luareplfile "repl/plugins/")
;; (find-luareplfile "repl/plugins/autoreturn.lua")

;; «luatex-repl» (to ".luatex-repl")
;; «lualatex-repl» (to ".lualatex-repl")
;; (find-es "luatex" "lualatex-repl")
;; (find-LATEX "2015lualatex.tex")
;; (find-LATEX "lualoader.lua")
;; (find-LATEX "myrepl.lua")
;; (find-LATEX "twot.tex")
;;
(defun eepitch-lltr () (interactive)
  (eepitch-comint-at "~/LATEX/" "lualatex 2015lualatex.tex"))
(defun eepitch-ltrepl2 () (interactive)
  (eepitch-comint-at "~/LATEX/" "lualatex twot2.tex"))
(defun eepitch-ltrepl (&optional texfile) (interactive)
  (eepitch-comint-at "~/LATEX/"
		     (format "lualatex %s" (or texfile "twot.tex"))))


(code-c-d "luarepl"  "~/usrc/lua-repl-0.5/")
(code-c-d "luareplp" "~/usrc/lua-repl-0.5/repl/plugins/")
;; (find-luareplfile "")
;; (find-luareplpfile "")




;; «ee-replace-regexp»  (to ".ee-replace-regexp")
;; (find-efunctiondescr 'replace-regexp "re-search-forward")
;; (find-efunctiondescr 're-search-forward)
;; (find-efunctiondescr 'replace-match)
;; (find-efunction 'query-replace-compile-replacement)
;; (query-replace-compile-replacement "\\1\\,\"foo\"\\2" t)
(defun ee-replace-regexp (from to)
  (if (re-search-forward from nil t)
      (replace-match to 'fixed-case nil)))


(seen 10780)


;; (find-eev "eev-sshot.el")
;; (find-eevfile "eev-sshot.el" "This is how I produced")
;; (ee-demo-eesteps)
;; (find-evariable 'initial-scratch-message)
;; (find-egrep "grep -nH -e initial-scratch-message *.el")
(defun ee-demo-eesteps () (interactive)
  (eesteps
   '((find-efunctiondescr 'eesteps)
     (search-forward ")))")
     (message "Next key:  M-e")
     )))

;; (require 'eev-sshot)
;; (find-zsh0 "rmmkdircd /tmp/sshot/ && tar -xvzf $S/http/anggtwu.net/flipbooks/eesteps.tgz")
;; (find-sshot "/tmp/sshot/eesteps" 1)


;; «ee-demo-4»  (to ".ee-demo-4")
;; (find-eevexfile "demos.e" ";; End of demo 4")
(defun ee-demo-4 () (interactive)
  (eesteps
   '((find-enode "Lisp Eval")
     (search-forward "`defvar'")
     (eekvr "C-SPC C-SPC 8*<left>")
     (eekv "M-w       ;;; kill-ring-save")
     (eekv "M-h M-i   ;;; find-einfo-links")
     (search-forward "find-enode")
     (eekv "M-h M-2   ;;; eemklinks-duplicate-this-line")
     (eekv "M-h M-y   ;;; eemklinks-yank-pos-spec")
     "C-a"
     (eekvr "C-SPC C-SPC <down>")
     (eekv "M-w       ;;; kill-ring-save")
     (eekv "C-x b TEMP")
     (eekv "C-y       ;;; yank")
     (message "Next key:  M-e")
     "M-e"
     (eekv "q         ;;; Info-exit")
     (eekv "C-x k TEMP")
     (eekv "M-K       ;;; bury-buffer")
     )))



;; (define-key eev-mode-map (kbd "M-h M-e")
;;   (lambda () (interactive) (find-efunctiondescr 'eev-mode)))


;; «coq»  (to ".coq")
;; (find-es "coq" "coq-deb-src")
(code-c-d "coq" "~/usrc/coq/coq-8.1.pl3+dfsg/")
(defun eepitch-coqtop () (interactive) (eepitch-comint "coqtop" "coqtop"))

;; http://coq.inria.fr/V8.1/
;; http://coq.inria.fr/V8.1/tutorial.html
(code-c-d "coqv81" "$S/http/coq.inria.fr/V8.1/")

(code-xpdf      "coqref" "/usr/share/doc/coq-doc-pdf/Reference-Manual.pdf")
(code-pdftotext "coqref" "/usr/share/doc/coq-doc-pdf/Reference-Manual.pdf")
;; (find-coqrefpage  13 "Contents")
;; (find-coqrefpage  47 "Record types")
;; (find-coqrefpage 333 "Global Index")
;; (find-coqrefpage 341 "Tactics Index")

(code-c-d "coqref"    "/usr/share/doc/coq-doc-html/refman/")
(code-c-d "coqlibdoc" "/usr/share/doc/coq-libs/html/")
;; (find-coqreffile "")
;; (find-coqrefw3m "command-index.html")
;; (find-coqrefw3m "general-index.html")
;; (find-coqrefw3m "tactic-index.html")
;; (find-coqrefw3m "toc.html")

;; http://cel.archives-ouvertes.fr/docs/00/33/44/28/PDF/coq-hurry.pdf
(code-xpdf      "coqhurry" "$S/http/cel.archives-ouvertes.fr/docs/00/33/44/28/PDF/coq-hurry.pdf")
(code-pdftotext "coqhurry" "$S/http/cel.archives-ouvertes.fr/docs/00/33/44/28/PDF/coq-hurry.pdf")
;; (find-coqhurrypage 1)
;; (find-coqhurrytext)

;; (find-coqrefw3m "Reference-Manual016.html" "The Coq Emacs mode")
;; (find-coqlibdocfile "")

(code-c-d       "coqtut"  "/usr/share/doc/coq-doc-html/Tutorial.v.html")
(code-c-d       "coqtut1" "/usr/share/doc/coq-doc-html/Tutorial.v.html")
(code-c-d       "coqtut2" "/usr/share/doc/coq-doc-html/Tutorial.v.html")
(code-c-d       "coqtut3" "/usr/share/doc/coq-doc-html/Tutorial.v.html")
(code-xpdf      "coqtut"  "/usr/share/doc/coq-doc-pdf/Tutorial.v.pdf")
(code-pdftotext "coqtut"  "/usr/share/doc/coq-doc-pdf/Tutorial.v.pdf")
;; (find-coqtutw3m "")
;; (find-coqtut1w3m "#htoc3")
;; (find-coqtutpage 1)
;; (find-coqtuttext)

(code-c-d       "coqrectut" "/usr/share/doc/coq-doc-html/RecTutorial.v.html")
(code-xpdf      "coqrectut" "/usr/share/doc/coq-doc-pdf/RecTutorial.v.pdf")
(code-pdftotext "coqrectut" "/usr/share/doc/coq-doc-pdf/RecTutorial.v.pdf")
;; (find-coqrectutw3m "")
;; (find-coqrectutw3m "#htoc3")
;; (find-coqrectutpage 1)
;; (find-coqrectuttext)

;; (find-es "coq" "coq-art")
(code-c-d "coqart" "~/usrc/CoqArtExos81/")
;; (find-coqartfile "")
;; (find-coqartw3m "contents.html")



;; «proof-general»  (to ".proof-general")
;; (find-es "coq" "proof-general")
(code-c-d "proofgeneral" "~/.emacs.d/elpa/proof-general-20200911.3/" "ProofGeneral")



;; Moved to:
;; (find-eev "eev-browse-url.el" "find-psne-links")
;; «find-psne-links»  (to ".find-psne-links")
;; «brep»             (to ".brep")
;;
;; «ee-cp»      (to ".ee-cp")
;; «find-ecp0»  (to ".find-ecp0")
(defalias 'find-ecp0 'ee-cp)


;; 2008aug31
;; http://lists.gnu.org/archive/html/eev/2008-08/msg00001.html


;; 2012jun05
;; Tests:
;; (find-estring (ee-find-psne-links "http://foo/bar"))
;;                  (find-psne-links "http://foo/bar")
;; See: (find-eev "eev-browse-url.el" "conversion-functions")
;;
;; 2012dec25: moved to:
;;   (find-eev "eev-tlinks.el" "find-psne-links")
;;   (find-eevfile "eev-brxxx.el" "brep")
;;


;; «std-to-dnc»  (to ".std-to-dnc")
;; «dnc-to-std»  (to ".dnc-to-std")

(defun std-to-dnc ()
  (interactive)
  (fooi ">->" "`->" "|->" "=>" "<-|" "<=" "->" "|->" "<-" "<-|"))

(defun dnc-to-std ()
  (interactive)
  (fooi "`->" ">->" "|->" "->" "<-|" "<-" "=>" "|->" "<=" "<-|"))


;; «dn4-block»  (to ".dn4-block")
;; (to "eedn4a")
(defun dn4-block ()
  (interactive)
  (insert "\n%*
% (eedn4a-bounded)
% (find-sh0 \"cd ~/LATEX/ && dvips  -D 600 -P pk -o tmp.ps tmp.dvi\")
% (find-sh0 \"cd ~/LATEX/ && dvired -D 600 -P pk -o tmp.ps tmp.dvi\")
% (find-pspage \"~/LATEX/tmp.ps\")

%*
"))

(code-xpdf "oficiotcu" "~/tmp/processo/Oficio_TCU.pdf")
;; (find-oficiotcupage 2)


;; «save-this-block-as»  (to ".save-this-block-as")
;; «anchors-in-latin-1»  (to ".anchors-in-latin-1")
;; (find-evariable 'ee-delimiter-semicolon)
;; (find-es "emacs" "anchors-in-latin-1")
;; http://lists.gnu.org/archive/html/bug-gnu-emacs/2008-10/msg00830.html
;; (find-fline "/tmp/1.txt")
;; (find-fline "/tmp/2.txt")
;; (find-fline "/tmp/3.txt")
(setq ee-delimiter-semisnip "\n;;--------snip,snip--------\n")
;; (eeb-define 'eeb-string 'ee-se-to-string ee-delimiter-semisnip nil t t)
(defun save-this-block-as (fname) (eev (ee-once (eeb-string)) nil fname))


;; (find-efunction 'find-callprocess0)
;; (find-efunction 'find-eoutput-reuse)
;; (find-eevgrep "grep -nH -e callprocess *.el")
;; (find-eev "eev-plinks.el" "find-callprocess")
;;
(defun find-unrarl (fname &rest pos-spec-list)
  (apply 'find-callprocess `("unrar" "l" ,fname) pos-spec-list))

(code-brfile 'find-unrarl
             :local 'brunrarll :dired 'brunrarld)

(seen 11000)

;; (find-unrarl "~/books/new/Tractatus.rar")

;; (find-efunction 'ee-delete-and-extract-line)
;; This works on lines in which the first words is the code
;; and the second one is the fname.
(defun wrap-book ()
  (interactive)
  (let* ((pair (ee-split (ee-no-properties (ee-delete-and-extract-line))))
	 (code  (car pair))
	 (fname (cadr pair))
	 (ext (file-name-extension fname))
	 (code-c-d (if (equal ext "djvu")
		       `(code-djvu ,code ,fname)
		     `(code-xpdf ,code ,fname)))
	 (code-ptt `(code-pdftotext ,code ,fname))
	 (find-1 (format "(find-%spage      1  \"Contents\")" code))
	 (find-2 (format "(find-%spage (+ 1 1) \"Index\")" code))
	 (find-t (format "(find-%stext \"\")" code))
	 (str (format "%S\n%S\n;; %s\n;; %s\n;; %s" code-c-d code-ptt find-1 find-2 find-t))
	 )
    (insert str)
    (ee-next-line)))

(define-key eev-mode-map "\M-U" 'wrap-book)

(defun totext ()
  (interactive)
  "A quick hack to add a link to the text version of a wrap-book-ed sexp"
  (end-of-line)
  (let* ((sexp (read (eek-last-sexp)))
	 (cmd (car sexp))
	 (newcmd (cond ((eq cmd 'code-djvu) 'code-djvutotext)
		       ((eq cmd 'code-xpdf) 'code-pdftotext)
		       (t 'error)))
	 (newsexp (cons newcmd (cdr sexp))))
    (insert (format "\n%S\n;; (find-%stext \"\")\n" newsexp (cadr sexp)))))

;; (define-key eev-mode-map "\M-W" 'totext)

(code-c-d "books" "~/books/" :anchor)
;; (find-books "__cats/README.el")

(defvar books-subdir "__logic")

(defun find-mvbooks-links (&optional code fname &rest rest)
  "Visit a temporary buffer containing hyperlinks for moving a downloaded book."
  (interactive)
  (setq code (or code "_"))
  (setq fname (or fname (file-name-nondirectory
			 (eeurl-dired-file-name-at-point))))
  (apply 'find-elinks `(
    ;; Convention: the first sexp always regenerates the buffer.
    (find-mvbooks-links ,code ,fname ,@rest)
    ;; Body:
    ""
    ,(ee-template `(("_" ,code)
                    ("title.pdf" ,fname)
                    ("__logic" ,books-subdir)) "\
# (find-books-links \"{title.pdf}\")
# (setq books-subdir \"{__logic}\")
# (find-fline \"~/books/{__logic}/\")
# (find-sh0 \"mv -iv /tmp/{title.pdf} ~/books/{__logic}/\")

# (find-fline \"~/books/{__logic}/{__logic}.el\")
{_} ~/books/{__logic}/{title.pdf}")
    ) rest))

(defalias 'mvbookd 'find-mvbooks-links)


;; «hjbc1»  (to ".hjbc1")
;; (find-THfile "2009.1-C1.blogme")
;; http://www.professores.uff.br/hjbortol/disciplinas/2008.2/gma00108/
(code-c-d "hjbc1" "$S/http/www.professores.uff.br/hjbortol/disciplinas/2008.2/gma00108/")
;; (find-hjbc1file "")
;; (find-hjbc1file "listas/gma00108-lista-01.pdf")
(code-xpdf "hjbc1lista01" (ee-hjbc1file "listas/gma00108-lista-01.pdf"))
(code-xpdf "hjbc1lista02" (ee-hjbc1file "listas/gma00108-lista-02.pdf"))
(code-xpdf "hjbc1lista03" (ee-hjbc1file "listas/gma00108-lista-03.pdf"))
(code-xpdf "hjbc1lista04" (ee-hjbc1file "listas/gma00108-lista-04.pdf"))
(code-xpdf "hjbc1lista05" (ee-hjbc1file "listas/gma00108-lista-05.pdf"))
(code-xpdf "hjbc1lista06" (ee-hjbc1file "listas/gma00108-lista-06.pdf"))
(code-xpdf "hjbc1lista07" (ee-hjbc1file "listas/gma00108-lista-07.pdf"))
(code-xpdf "hjbc1lista08" (ee-hjbc1file "listas/gma00108-lista-08.pdf"))
(code-xpdf "hjbc1lista09" (ee-hjbc1file "listas/gma00108-lista-09.pdf"))
(code-xpdf "hjbc1lista10" (ee-hjbc1file "listas/gma00108-lista-10.pdf"))
(code-xpdf "hjbc1lista11" (ee-hjbc1file "listas/gma00108-lista-11.pdf"))
(code-xpdf "hjbc1lista12" (ee-hjbc1file "listas/gma00108-lista-12.pdf"))
(code-xpdf "hjbc1lista13" (ee-hjbc1file "listas/gma00108-lista-13.pdf"))
(code-xpdf "hjbc1lista14" (ee-hjbc1file "listas/gma00108-lista-14.pdf"))
(code-xpdf "hjbc1lista15" (ee-hjbc1file "listas/gma00108-lista-15.pdf"))
(code-xpdf "hjbc1lista16" (ee-hjbc1file "listas/gma00108-lista-16.pdf"))
(code-xpdf "hjbc1lista17" (ee-hjbc1file "listas/gma00108-lista-17.pdf"))
(code-xpdf "hjbc1lista18" (ee-hjbc1file "listas/gma00108-lista-18.pdf"))
(code-xpdf "hjbc1lista19" (ee-hjbc1file "listas/gma00108-lista-19.pdf"))
;; (find-hjbc1lista01page 1)
;; (find-hjbc1lista02page 1)
;; (find-hjbc1lista03page 1)
;; (find-hjbc1lista04page 1)
;; (find-hjbc1lista05page 1)
;; (find-hjbc1lista06page 1)
;; (find-hjbc1lista07page 1)
;; (find-hjbc1lista08page 1)
;; (find-hjbc1lista09page 1)
;; (find-hjbc1lista10page 1)
;; (find-hjbc1lista11page 1)
;; (find-hjbc1lista12page 1)
;; (find-hjbc1lista13page 1)
;; (find-hjbc1lista14page 1)
;; (find-hjbc1lista15page 1)
;; (find-hjbc1lista16page 1)
;; (find-hjbc1lista17page 1)
;; (find-hjbc1lista18page 1)
;; (find-hjbc1lista19page 1)


;; «hjbc2»  (to ".hjbc2")
;; (find-THfile "2009.1-C2.blogme")
;; http://www.professores.uff.br/hjbortol/disciplinas/2007.1/gma06074/
;; http://www.professores.uff.br/hjbortol/disciplinas/2007.1/gma06074/listas/
(code-c-d "hjbc2" "$S/http/www.professores.uff.br/hjbortol/disciplinas/2007.1/gma06074/")
;; (find-hjbc2file "")
;; (find-hjbc2w3m "gma06074.cronograma.html")
;; (find-hjbc2w3m "gma06074.listas.html")
;; (find-hjbc2w3m "gma06074.news.html")
;; (find-hjbc2file "listas/")
;; (find-hjbc2file "listas/lista-00-2007-1.pdf")
(code-xpdf "hjbc2lista00" (ee-hjbc2file "listas/lista-00-2007-1.pdf"))
(code-xpdf "hjbc2lista01" (ee-hjbc2file "listas/lista-01-2007-1.pdf"))
(code-xpdf "hjbc2lista02" (ee-hjbc2file "listas/lista-02-2007-1.pdf"))
(code-xpdf "hjbc2lista03" (ee-hjbc2file "listas/lista-03-2007-1.pdf"))
(code-xpdf "hjbc2lista04" (ee-hjbc2file "listas/lista-04-2007-1.pdf"))
(code-xpdf "hjbc2lista05" (ee-hjbc2file "listas/lista-05-2007-1.pdf"))
(code-xpdf "hjbc2lista06" (ee-hjbc2file "listas/lista-06-2007-1.pdf"))
(code-xpdf "hjbc2lista07" (ee-hjbc2file "listas/lista-07-2007-1.pdf"))
(code-xpdf "hjbc2lista08" (ee-hjbc2file "listas/lista-08-2007-1.pdf"))
(code-xpdf "hjbc2lista09" (ee-hjbc2file "listas/lista-09-2007-1.pdf"))
(code-xpdf "hjbc2lista10" (ee-hjbc2file "listas/lista-10-2007-1.pdf"))
(code-xpdf "hjbc2lista11" (ee-hjbc2file "listas/lista-11-2007-1.pdf"))
(code-xpdf "hjbc2lista12" (ee-hjbc2file "listas/lista-12-2007-1.pdf"))
(code-xpdf "hjbc2lista13" (ee-hjbc2file "listas/lista-13-2007-1.pdf"))
(code-xpdf "hjbc2lista14" (ee-hjbc2file "listas/lista-14-2007-1.pdf"))
(code-xpdf "hjbc2lista15" (ee-hjbc2file "listas/lista-15-2007-1.pdf"))
(code-xpdf "hjbc2lista16" (ee-hjbc2file "listas/lista-16-2007-1.pdf"))
(code-xpdf "hjbc2lista17" (ee-hjbc2file "listas/lista-17-2007-1.pdf"))
(code-xpdf "hjbc2lista18" (ee-hjbc2file "listas/lista-18-2007-1.pdf"))
(code-xpdf "hjbc2lista19" (ee-hjbc2file "listas/lista-19-2007-1.pdf"))
;; (find-hjbc2lista01page 1)
;; (find-hjbc2lista02page 1)
;; (find-hjbc2lista03page 1)
;; (find-hjbc2lista04page 1)
;; (find-hjbc2lista05page 1 "integrais impróprias")
;; (find-hjbc2lista06page 1)
;; (find-hjbc2lista07page 1)
;; (find-hjbc2lista08page 1)
;; (find-hjbc2lista09page 1)
;; (find-hjbc2lista10page 1)
;; (find-hjbc2lista11page 1)
;; (find-hjbc2lista12page 1)
;; (find-hjbc2lista13page 1)
;; (find-hjbc2lista14page 1)
;; (find-hjbc2lista15page 1)
;; (find-hjbc2lista16page 1)
;; (find-hjbc2lista17page 1)
;; (find-hjbc2lista18page 1)
;; (find-hjbc2lista19page 1)




;; «hpprint»  (to ".hpprint")
;; (find-angg "bin/hpprint")
;;
(defun find-hpprint (fname &rest rest)
  (apply 'find-sh (format
		   "sudo chown edrx:edrx /dev/usb/lp0; cat %s > /dev/usb/lp0"
		   fname) rest))

(code-brfile 'find-hpprint
	     :local 'brhpprintl :dired 'brhpprintd)



(seen 11190)


;; 2009may22
;; (find-eevfile "eev-math-glyphs.el")
(defun lenny-ma () (interactive)
  "Make the math glyphs use ascii chars. This is a quick hack."
  (mapcar
   (lambda (p) (add-to-alist 'eev-math-glyphs-name-to-char
			     (cons (car p) (string-to-char (cadr p)))))
   (ee-chop3
    2 0
    '("Theta Pi Sigma Omega"
      "H     P  S     W    "
      "delta epsilon theta lambda nu pi rho sigma tau omega"
      "d     e       h     \\     n  p  r   s     t   w    "
      "top bot land lor supset forall exists"
      "T   F   &    v   >      A      E     "
      "box thin: in circ cap cup Int infty"
      "b   :     e  o    ^   v   I   8    "
      "oplus"
      "+    "))
   )
  (ma))


;; (find-fline "~/usrc/emacs-w3m/w3m-session.el" "w3m-session-load-crashed-sessions")
(setq w3m-session-load-crashed-sessions nil)




;; «eepitch-region»  (to ".eepitch-region")
;; (find-elongkey-links "<f8>")
;; (find-efunction 'eepitch-this-line)
;; (find-eevfile "eev.el" "define-key eev-mode-map [f8]")
;; (find-eevfile "eev.el" "define-key eev-mode-map [f8]")
;; (define-key eev-mode-map [f8]   'eepitch-this-line)
;; (define-key eev-mode-map [f8]   'eepitch-this-line-or-region)

(defun eepitch-trim (str)
  (setq str (replace-regexp-in-string "\n+$" "" str))
  (setq str (replace-regexp-in-string "^\n+" "" str))
  str)

(defun eepitch-region (s &optional e)
  (interactive "r")
  (setq deactivate-mark t)
  (let ((str (eepitch-trim (ee-se-to-string s e))))
    (eepitch-prepare-target-buffer)   ; Reconstruct the target buffer,
    (eepitch-display-target-buffer)   ; display it, make sure it's a
    (eepitch-not-this-buffer)	      ; different buffer, and pitch
    (eepitch-line str)))	      ; the trimmed str to the target.

;; (find-elnode "The Mark" "Function: use-region-p")
;; (find-elnode "The Mark" "deactivate-mark")
;; (find-elnode "The Mark" "User Option: mark-even-if-inactive")
;; (defun ee-use-region-p () (use-region-p))
(defun ee-use-region-p () (use-region-p))
;; (read-event "Key: " t)

(defun eepitch-this-line-or-region (s &optional e)
  (interactive "r")
  (if (use-region-p)
      (progn (eepitch-region s e)
	     (setq deactivate-mark t))
    (eepitch-this-line)))

;; (define-key eev-mode-map [f8]   'eepitch-this-line-or-region)
;; (define-key eev-mode-map [f8]   'eepitch-this-line)
;; (define-key eev-mode-map [S-f8] 'eepitch-region)




;; «perl»  (to ".perl")
;; (find-es "perl" "eepitch-perl")
(defun eepitch-perl () (interactive) (eepitch-comint "perl" "perl -d -e 42"))


;; «python»  (to ".python")
;; (find-es "python" "python-on-lenny")
;; (find-es "python" "python-on-squeeze")

(code-c-d "py2docsrc" "/usr/share/doc/python2.7/html/_sources/")
(code-c-d "py3docsrc" "/usr/share/doc/python3.5/html/_sources/")
;; (find-py2docsrcfile "")
;; (find-py3docsrcfile "")

;; «matplotlib-examples»  (to ".matplotlib-examples")
(code-c-d "matplotlibex" "/usr/share/doc/python-matplotlib-doc/examples/")
;; (find-matplotlibexfile "")

;; (code-c-d "pyapi"  "/nopath"             "python2.5-api")
;; (code-c-d "pydist" "/nopath"             "python2.5-dist")
;; (code-c-d "pyext"  "/nopath"             "python2.5-ext")
;; (code-c-d "pylib"  "/usr/lib/python2.5/" "python2.5-lib")
;; (code-c-d "pyref"  "/nopath"             "python2.5-ref")
;; (code-c-d "pytut"  "/nopath"             "python2.5-tut")
;; (code-c-d "pyex"   "/usr/share/doc/python2.5/examples/")
;; (code-c-d "pyexd"  "/usr/share/doc/python2.5/examples/Demo/")
;; 
;; (code-c-d "pydocsrc"  "/usr/share/doc/python2.6/html/_sources/")
;; (code-c-d "pytut"     "/usr/share/doc/python2.6/html/_sources/tutorial/")
;; (code-c-d "pyhowto"   "/usr/share/doc/python2.6/html/_sources/howto/")
;; (code-c-d "pydocing"  "/usr/share/doc/python2.6/html/_sources/documenting/")
;; (code-c-d "pyusing"   "/usr/share/doc/python2.6/html/_sources/using/")
;; ;; (find-pytutfile "")
;; ;; (find-pydocingfile "")
;; ;; (find-pyhowtofile "")
;; ;; (find-pyhowtofile "functional.txt")
;; ;; (find-pyusingfile "")

;; (find-pyapinode "")
;; (find-pydistnode "")
;; (find-pyextnode "")
;; (find-pylibnode "")
;; (find-pyrefnode "")
;; (find-pytutnode "")
;; (find-pytutnode "Python Scopes and Name Spaces")
;; (find-pyrefnode "standard type hierarchy" "`Classes'")

;; (code-c-d "pyref" "" "python-ref")
;; (code-c-d "pylib" "/usr/lib/python1.5/" "python-lib")
;; (code-c-d "pyexd" "/usr/share/doc/python/examples/Demo/" "python-ref")
;; (code-c-d "pyext" "/usr/share/doc/python/examples/Tools/" "python-ref")

;; «ipython» (to ".ipython")
;; «pylab»   (to ".pylab")
;; (find-es "python" "ipython")
(defun eepitch-pylab () (interactive) (eepitch-comint "pylab" "ipython --pylab"))

;; «sympy» (to ".sympy")
;; (find-es "python" "sympy")
;; (find-es "sympy")
;; (find-es "sympy" "sympy-git")
(code-c-d "sympy"   "~/bigsrc/sympy/")
(code-c-d "sympyd" "/usr/lib/python2.7/dist-packages/sympy/")
(code-c-d "sympyex" "/usr/share/doc/python-sympy/examples/")
(code-c-d "sympydocsrc" "$S/http/docs.sympy.org/0.7.2/_sources/")
(code-c-d "sympydocsrc" "~/bigsrc/sympy/doc/src/")
(code-c-d "sympytut"    "~/bigsrc/sympy/doc/src/tutorial/")
(code-c-d "sympytutsrc" "~/bigsrc/sympy/doc/src/tutorial/")
;;
;; (find-sympyfile "")
;; (find-sympydfile "")
;; (find-sympydfile "integrals/")
;; (find-sympydocsrcfile "")
;; (find-sympydocsrcfile "tutorial/matrices.rst")
;; (find-sympytutfile "matrices.rst")
;;
;; (find-eev "eepitch.el" "eepitch-R")
;; (find-es "sympy" "sympy-colors")

;; (defun eepitch-isympy () (interactive) (eepitch-comint "isympy" "isympy"))
;; (defun eepitch-isympy () (interactive)
;;   (eepitch '(ee-with-pager-cat (find-comintprocess "isympy" "isympy"))))
;; (defun eepitch-isympy () (interactive)
;;   (eepitch-de '(ee-with-pager-cat (find-comintprocess "isympy3" "isympy3"))))

;;
(defun sytu () (interactive) (find-es "sympy" ".tutorial"))
;; (sytu)

;; «sympydoc»       (to ".sympydoc")
;;  «find-pydoc»    (to ".find-pydoc")
;;  «find-sympydoc» (to ".find-sympydoc")
;; (find-angg "elisp/rstdoc.el" "find-pydoc")
;; (find-angg "elisp/rstdoc.el" "find-sympydoc")
;; (find-angg "elisp/rstdoc.el")
;; (find-es "sympy" "sympydoc")
;;
;; (find-sympydoc "tutorial/basic_operations#converting-strings-to-sympy-expressions")





;; «pip3»  (to ".pip3")
(code-c-d "pip3sp" "~/.local/lib/python3.9/site-packages/")
;; (find-pip3spfile "")



;; «maxima»  (to ".maxima")

;; «maxima-mode»  (to ".maxima-mode")
;; (find-es "maxima" "maxima-mode")
;; (find-maximagitfile "interfaces/emacs/emaxima/")
(add-to-list 'load-path "~/bigsrc/maxima/interfaces/emacs/emaxima/")
(autoload 'maxima-mode "maxima")

;; (find-es "maxima" "maxima-git")
;; (find-books "__comp/__comp.el" "maximabook")
(code-c-d      "maximagit" "~/bigsrc/maxima/")
(code-pdf-page "maximabook" "$S/https/maxima.sourceforge.io/docs/maximabook/maximabook-19-Sept-2004.pdf")
(code-pdf-text "maximabook" "$S/https/maxima.sourceforge.io/docs/maximabook/maximabook-19-Sept-2004.pdf" 1)
;; (find-maximagitfile "")
;; (find-maximagitsh "find *")

;; (find-es "maxima" "maxima-src")
(code-c-d "maximasrc"   "/usr/share/maxima/5.44.0/src/")
(code-c-d "maximashare" "/usr/share/maxima/5.44.0/share/")
;; (find-maximasharefile "")
;; (find-maximasrcfile "")

;; (find-books "__comp/__comp.el" "maxima-workbook")
(code-pdf-page "maximawb" "$S/http/roland-salz.de/Maxima_Workbook.pdf")
(code-pdf-text "maximawb" "$S/http/roland-salz.de/Maxima_Workbook.pdf" 19)

;; Tests: (find-maximanode "Function and Variable Index")
;;        (find-maximaindex)
;;        (find-maximanode "integrate")
;;        (find-fline "/usr/local/share/info/" "maxima-index.lisp")
;;        (find-maximaindex "lambda")
;;        (find-maximaindex "lambda" :RET)
;;        (find-maximaindex "lambda" :RET "Defines")
;;   Try: (find-maximaindex-links)
;;        (find-maximaindex-links "lambda subst")

(defun find-maximaindex (&optional name &rest rest)
  (interactive)
  (if (not name)
      (find-maximanode "Function and Variable Index")
    (apply 'find-maximanode
	   "Function and Variable Index"
	   (format "* %s:" name)
	   (ee-maximaindex-rest rest))))

(defun ee-maximaindex-rest (rest)
  (if (eq (car rest) :RET)
      (cons '(eek "RET") (cdr rest))
    rest))

;; «maxima»  (to ".maxima")
;; (to "maxima-cvs")
;; (find-es "maxima")
(code-c-d "maxima" "/usr/share/maxima/5.44.0/" "maxima")
;; (find-maximafile "")
;; (find-maximanode "")
;; (code-c-d "xmaxima"   "/usr/share/maxima/5.21.1/src/" "xmaxima")
;; (code-c-d "maximasrc" "/usr/share/maxima/5.21.1/src/")
;; (code-c-d "maximael"  "/usr/share/emacs/site-lisp/maxima/")
;; (defun eepitch-maxima () (interactive) (eepitch-comint "maxima" "maxima"))
;; (find-maximasrcfile "")
;; (find-maximaelfile "")
;; (find-maximanode "")
;; (find-maximanode "Introduction to Maxima")
;; (find-maximagrep "grep -nH -e integrate *.lisp")
;; (find-maximagrep "grep -niH -e prompt *.lisp")
;; (find-maximanode "Introduction to draw")
;; (find-xmaximanode "")



;; «maxima-cvs»  (to ".maxima-cvs")
;; (to "maxima")

;; (code-c-d "maximacvs" "~/usrc/maxima-cvs/"
;;           :info "~/usrc/maxima-cvs/usr/share/info/maxima")
;; (defun eepitch-maximacvs () (interactive)
;;   (eepitch-comint "maximacvs" "~/usrc/maxima-cvs/usr/bin/maxima"))

;; (find-maximacvsfile "")
;; (find-maximacvsfile "usr/share/info/")
;; (find-maximacvssh "find usr | sort")
;; (find-maximacvsnode "")

;; (find-efunction 'ee-goto-position)
;; (find-elnode "Regexp Search")
;; (find-elnode "Regexp Backslash")
(defun ee-maxima-draw-node-re (word)
  (concat "^ -- [A-Za-z ]+: " word "\\>"))
(defun ee-maxima-draw-node-search (word)
  (if word (re-search-forward (ee-maxima-draw-node-re word))))
(defun find-maximanode-draw (&optional word &rest rest)
  (apply 'find-maximanode "Functions and Variables for draw"
	 "" `(ee-maxima-draw-node-search ,word) rest))

;; (find-maximanode "Functions and Variables for draw")
;; (find-maximanode-draw "title")
;; (find-maximanode-draw nil '(ee-write (point-min) (point-max) "" "" "/tmp/o"))
;; (find-fline "/tmp/o")
;; (find-sh "grep '^ --' /tmp/o")
;; (find-sh "grep '^ --' /tmp/o | awk '{print $4}'")
;; (find-sh "grep '^ --' /tmp/o | awk -F: '{print $2}' | awk '{print $1}'")
;; (find-sh "grep '^ --' /tmp/o | awk -F: '{print $2}' | awk '{print $1}' | sort | uniq")

;; «maxima-gpdraw»  (to ".maxima-gpdraw")
;; (find-es "maxima" "maxima-gpdraw")
;; http://www.telefonica.net/web2/biomates/maxima/gpdraw/index.html
;; http://www.telefonica.net/web2/biomates/maxima/gpdraw/
(code-c-d "maximagpdraw" "$S/http/www.telefonica.net/web2/biomates/maxima/gpdraw/")
;; (find-maximagpdrawfile "")
;; (find-maximagpdraww3m "index.html")
;; (find-maximagpdraww3m "implic/index.html")

;; «emaxima»  (to ".emaxima")
;; «emaxima-conv»  (to ".emaxima-conv")
;;    (find-es "maxima" "emaxima-conv")
;;       (find-angg "LUA/emaxima.lua")
;;
(defun emaxima-conv (s e)
  (interactive "r")
  (eev s e "/tmp/emaxima-in")
  (let ((cmd "lua5.1 -e \"ee_dofile'~/LUA/emaxima.lua';conv()\" && cat /tmp/emaxima-out"))
    (find-sh cmd)))

(defun emaxima-block ()
  (interactive)
  (insert "
% (setq eepitch-preprocess-regexp \"^\")
% (setq eepitch-preprocess-regexp \"^%T ?\")
%
%T * (eepitch-maxima)
%T * (eepitch-kill)
%T * (eepitch-maxima)
%T load(\"/usr/share/emacs/site-lisp/maxima/emaxima.lisp\")$
%T display2d:'emaxima$
%T linenum:0;
%T
%M (%i1)
%M (%o1)
%L Maxima.sa \"foo\"
"))

;; «imaxima»  (to ".imaxima")
;;  (find-es "maxima" "imaxima")

(defun eepitch-imaxima () (interactive)
  (eepitch '(find-imaximaprocess)))

(defun find-imaximaprocess (&rest rest)
  (require 'imaxima)
  (imaxima)
  (find-ebuffer
   (if imaxima-use-maxima-mode-flag
       "*maxima*"
     "*imaxima*")))






(seen 11350)



;; «code-filetext»  (to ".code-filetext")
;; (find-eev "eev.el" "code-xpdf")
;;
(defun ee-code-filetext (code fname)
  (format "
    (defun find-%stext (&rest rest) (interactive)
      (apply 'find-fline %S rest))
  " code fname))
(defun code-filetext (c f) (eval (ee-read (ee-code-filetext c f))))
(defun find-code-filetext (c f) (find-estring-elisp (ee-code-filetext c f)))

;; «debian-devel-docs»  (to ".debian-devel-docs")
;; (find-es "debiandev" "debian-devel-docs")
;; http://www.debian.org/doc/packaging-manuals/debian-emacs-policy
(code-filetext "dpol"      "/usr/share/doc/debian-policy/policy.txt.gz")
(code-filetext "debref"    "/usr/share/doc/debian-reference-common/html/debian-reference.en.txt.gz")
(code-filetext "debdevref" "/usr/share/doc/developers-reference/developers-reference.txt.gz")
(code-filetext "docbase"   "/usr/share/doc/doc-base/doc-base.txt.gz")
(code-filetext "maintg"    "/usr/share/doc/maint-guide/maint-guide.en.txt.gz")
(code-filetext "debemacspol" "/usr/share/doc/emacsen-common/debian-emacs-policy.gz")
(code-filetext "apthowto"  "/usr/share/doc/Debian/apt-howto/apt-howto.en.txt.gz")
;; (find-dpoltext)
;; (find-debreftext)
;; (find-debdevreftext)
;; (find-docbasetext)
;; (find-maintgtext)
;; (find-debemacspoltext)
;; (find-apthowtotext)

;; (find-man "8 dh_make")
;; (find-man "8 dh_make" "debian-policy")
;; (find-dpolfile "")
;; (find-dpolgrep "zgrep -nH -e ompar *")
;; (find-dpolgrep "zgrep -nH -e ompare-v *")
;; (find-dpolgrep "zgrep -nH -e lexically *")
;; (find-dpolfile "policy.txt.gz" "<upstream_version>")
(code-c-d "dpol"   "/usr/share/doc/debian-policy/")
(code-c-d "maintg" "/usr/share/doc/maint-guide/")
(code-c-d "debref" "/usr/share/doc/Debian/reference/")


(setq debian-changelog-mailing-address "eduardoochs@gmail.com")

;; «vcaa»  (to ".vcaa")
;; (find-node "(coreutils)cp invocation" "`-u'")
(code-c-d "vcaa"  "/var/cache/apt/archives/")
(code-c-d "vcaab" "/var/cache/apt/archives/backup/")
;; (find-vcaafile "")
;; (find-vcaash0 "sudo mkdir backup; sudo chown edrx:edrx backup")
;; (find-vcaash0 "sudo cp -vul *.deb backup/")
;; (find-vcaabfile "")



;; «no-mouse-mode»  (to ".no-mouse-mode")
;; For laptops with touchpads - I keep hitting my thumbs on the
;; touchpad by accident, and this minor mode makes most of these
;; "accidental clicks" harmless.
;;
;; Notes:
;; To identify the event corresponding to mouse clicks:
;;   (defun foo (key) (interactive "k") (setq my-key key))
;; To sort of disable mouse events:
;;   (defun foo () (interactive) (message "Foo!"))
;;   (define-key eev-mode-map [down-mouse-1] 'foo)
;;   (define-key eev-mode-map [mouse-1] 'foo)
;; See:
;;   (find-eevfile "eev.el" "define-minor-mode eev-mode\n")
;;   (find-efile "mouse.el")
;;
;; Use also:
;;   (mouse-wheel-mode 0)
;;
(defun my-mouse-event (str)
  `(lambda () (interactive) (message ,str)))

(setq no-mouse-mode-map (make-sparse-keymap))
(define-key no-mouse-mode-map [down-mouse-1] (my-mouse-event "down-mouse-1"))
(define-key no-mouse-mode-map      [mouse-1] (my-mouse-event      "mouse-1"))
(define-minor-mode no-mouse-mode
  "The no-mouse-mode keymap just binds some mouse events to dummy events."
  :init-value nil :global t :lighter " no-mouse")

;; (no-mouse-mode 1)
;; (no-mouse-mode 0)



;; «openoffice»  (to ".openoffice")
;;
(defun find-oowriter (fname)
  (interactive "fOpen with oowriter: ")
  (find-bgprocess `("oowriter" ,fname)))
(defun find-oocalc (fname)
  (interactive "fOpen with oocalc: ")
  (find-bgprocess `("oocalc" ,fname)))

;; LibreOffice:
(defun find-oowriter (fname)
  (interactive "fOpen with lowriter: ")
  (find-bgprocess `("lowriter" ,fname)))
(defun find-oocalc (fname)
  (interactive "fOpen with localc: ")
  (find-bgprocess `("localc" ,fname)))

(code-brfile 'find-oowriter
             :local 'broowl :dired 'broowd)
(code-brfile 'find-oocalc
             :local 'broocl :dired 'broocd)




;; (find-fline "/sda7/nikon/")

(defun find-avidemux (fname &rest pos-spec-list)
  (apply 'find-bgprocess `("avidemux" ,fname) pos-spec-list))
(defun find-totem (fname &rest pos-spec-list)
  (apply 'find-bgprocess `("totem" ,fname) pos-spec-list))
(defun find-vlc (fname &rest pos-spec-list)
  (apply 'find-bgprocess `("vlc" ,fname) pos-spec-list))

(code-brfile 'find-avidemux
             :local 'bravl :dired 'bravd)
(code-brfile 'find-totem
             :local 'brtoteml :dired 'brtotemd)
(code-brfile 'find-vlc
             :local 'brvlcl :dired 'brvlcd)
(code-brfile 'find-mplayer
             :local 'brmplayerl :dired 'brmplayerd)




;; «mm:ss»  (to ".mm:ss")
;; (find-eev "eev-template.el" "secs-to-mm:ss")
;; Examples:
;; (mm:ss-to-secs "3:20")
;; (mm:ss-to-secs  200)
;; (secs-to-mm:ss "3:20")
;; (secs-to-mm:ss  200)

;; «find-mplayer»  (to ".find-mplayer")
;; (find-eev "eev-template.el" "find-mplayer")
;; (find-angg "VIDEOS/Makefile")
;; (find-es "video" "mplayer")
;; (find-es "math" "catsters")
;; (find-efunction 'find-firefox)
;; (find-efunction 'find-bgprocess)
;; (find-es "dvd" "mplayer-subtitles")
;; (find-man "1 mplayer" "-ss <time>" "Seek to given time position")
;; (find-man "1 mplayer" "onscreen display (OSD)")
;; (find-man "1 mplayer" "keyboard control" "o" "Toggle OSD states:")
;; (find-man "1 mplayer" "keyboard control" "<- and ->" "Seek backward/forward 10 seconds")
;; (find-man "1 mplayer" "keyboard control" "f" "Toggle fullscreen")

;; «code-mplayer»  (to ".code-mplayer")
;; «code-Mplayer»  (to ".code-Mplayer")
;; (find-eev "eev-template.el" "code-mplayer")
;; (find-efunction 'code-xpdf)

;; Renamed and moved to:
;;   (find-eev "eev-audiovideo.el")

;; (defun find-Mplayer (fname &optional pos &rest rest)
;;   (interactive "sFile name: ")
;;   (find-bgprocess
;;    `("xterm" "-geometry" "+200+100" "-e"
;;      "mplayer" ,fname
;;      ,@(if pos `("-ss" ,(secs-to-mm:ss pos)))
;;      )))
;;
;; (defun ee-code-Mplayer (code fname)
;;   (format "
;;     (defun find-%s (&rest rest) (interactive)
;;       (apply 'find-Mplayer %S rest))
;;   " code fname))
;; (defun code-Mplayer      (c f) (eval (ee-read (ee-code-Mplayer c f))))
;; (defun find-code-Mplayer (c f) (find-estring-elisp (ee-code-Mplayer c f)))


;; «ict-quimica»  (to ".ict-quimica")
;; Moved to: (find-angg ".emacs.audios" "ict-quimica")
;; (find-fline "~/PURO/2011dec13-ict/")


;; «find-minicatsvideo»  (to ".find-minicatsvideo")
(defun find-minicatsvideo (subdir stem &optional pos &rest rest)
  (find-mplayer (format "/sda7/nikon/%s%s.flv" subdir stem) pos))
(defun find-minicatsvideo (subdir stem &optional pos &rest rest)
  (find-mplayer (format "/sda6/nikon/%s%s.avi" subdir stem) pos))


;; Examples:
;; (find-dirfile     "$EEVDIR/eepitch.el")
;; (find-dirfile (ee-eevfile "eepitch.el"))
;;
(defun find-dirfile (fullpath)
  (find-fline (file-name-directory    fullpath)
	      (file-name-nondirectory fullpath)))

;; «find-minicatsframe»  (to ".find-minicatsframe")
;; Examples:
;;               (ee-minicatsvideofile 1 145)
;; (find-dirfile (ee-minicatsvideofile 1 145))
;;               (ee-minicatsframefile 1 145)
;;               (ee-minicatsframefile 1 145 "2:00")
;; (find-dirfile (ee-minicatsframefile 1 145 "2:00"))
;; (find-mplayer (ee-minicatsvideofile 1 144))
;; (find-minicatsvideo 1 145)
;; (find-minicatsvideo 1 145 "2:00")
;; (find-minicatsframe 1 145 "2:00")
;;
(defun ee-minicatsvideofile (aula dscn)
  (format "/sda6/nikon/aula_%d/DSC_%04d.avi" aula dscn))
(defun ee-minicatsframefile (aula dscn &optional pos)
  (format "/sda6/nikon/aula_%d/DSC_%04d_frames/DSC_%04d_%03d.jpg"
	  aula dscn dscn
	  (+ 1 (/ (mm:ss-to-secs (or pos 0)) 20))))

(defun find-minicatsvideofile (aula dscn &optional pos &rest rest)
  (find-dirfile (ee-minicatsvideofile aula dscn)))
(defun find-minicatsframefile (aula dscn &optional pos &rest rest)
  (find-dirfile (ee-minicatsframefile aula dscn pos)))

(defun find-minicatsvideo     (aula dscn &optional pos &rest rest)
  (find-mplayer (ee-minicatsvideofile aula dscn) pos))
(defun find-minicatsframe     (aula dscn &optional pos &rest rest)
  (find-fline   (ee-minicatsframefile aula dscn pos)))


;; (find-minicatsvideofile 1 145 "3:40" "Functions, explicitly")
;; (find-minicatsframefile 1 145 "3:40" "Functions, explicitly")
;; (find-minicatsvideo 1 145 "3:40" "Functions, explicitly")
;; (find-minicatsframe 1 145 "3:40" "Functions, explicitly")
;; (find-minicatsvideo 1 145 "3:40" "Functions are sets")
;; (find-minicatsframe 1 145 "3:40" "Functions are sets")
;; (find-minicatsvideo 1 145 "5:48" "Preamble to Cats")
;; (find-minicatsframe 1 145 "5:48" "Preamble to Cats")





;; (find-fline   "~/CATSTERS/")
;; (find-mplayer "~/CATSTERS/Representables+and+Yoneda+2.mp4")
;; (find-mplayer "~/CATSTERS/Representables+and+Yoneda+2.mp4" "1:10")
;; (find-code-mplayer "catsters-repyoneda4" "~/CATSTERS/Representables+and+Yoneda+2.mp4")
;; (find-es "math" "catsters")

;; (find-angg "bin/gsub.lua")
;; (find-sh "cd ~/CATSTERS/ && ls | gsub.lua '' '(code-mplayer \"catsters-\" \"~/CATSTERS/%1\")'")
;; (find-sh "cat ~/.emacs | gsub.lua '^%(code%-mplayer \"catsters%-([^\"]+)\".*' ';; (find-catsters-%1 nil)'")

(code-mplayer "catsters-2categories1"    "~/CATSTERS/2-categories+1+(Catsters+36).mp4")
(code-mplayer "catsters-2categories2"    "~/CATSTERS/2-categories+2.mp4")
(code-mplayer "catsters-adjs1"           "~/CATSTERS/Adjunctions+1.mp4")
(code-mplayer "catsters-adjs2"           "~/CATSTERS/Adjunctions+2.mp4")
(code-mplayer "catsters-adjs3"           "~/CATSTERS/Adjunctions+3.mp4")
(code-mplayer "catsters-adjs4"           "~/CATSTERS/Adjunctions+4.mp4")
(code-mplayer "catsters-adjs5"           "~/CATSTERS/Adjunctions+5.flv")
(code-mplayer "catsters-adjs6"           "~/CATSTERS/Adjunctions+6.mp4")
(code-mplayer "catsters-adjs7"           "~/CATSTERS/Adjunctions+7.mp4")
(code-mplayer "catsters-adjsfrommorphs1" "~/CATSTERS/Adjunctions+from+morphisms+1.mp4")
(code-mplayer "catsters-adjsfrommorphs2" "~/CATSTERS/Adjunctions+from+morphisms+2.mp4")
(code-mplayer "catsters-adjsfrommorphs3" "~/CATSTERS/Adjunctions+from+morphisms+3.mp4")
(code-mplayer "catsters-adjsfrommorphs4" "~/CATSTERS/Adjunctions+from+morphisms+4.mp4")
(code-mplayer "catsters-adjsfrommorphs5" "~/CATSTERS/Adjunctions+from+morphisms+5.mp4")
(code-mplayer "catsters-coeqs1"          "~/CATSTERS/Coequalisers+1.mp4")
(code-mplayer "catsters-coeqs2"          "~/CATSTERS/Coequalisers+2.mp4")
(code-mplayer "catsters-distrlaws1"      "~/CATSTERS/Distributive+laws+1.mp4")
(code-mplayer "catsters-distrlaws2"      "~/CATSTERS/Distributive+laws+2.mp4")
(code-mplayer "catsters-distrlaws3"      "~/CATSTERS/Distributive+laws+3+and%or+Monads+6+[29].mp4")
(code-mplayer "catsters-distrlaws4"      "~/CATSTERS/Distributive+laws+4+[30].mp4")
(code-mplayer "catsters-doublecats"      "~/CATSTERS/Double+categories.mp4")
(code-mplayer "catsters-eckmannhilton1"  "~/CATSTERS/Eckmann-Hilton+1.mp4")
(code-mplayer "catsters-eckmannhilton2"  "~/CATSTERS/Eckmann-Hilton+2+(beware+typo+at+4:13).mp4")
(code-mplayer "catsters-limsandcolims1"  "~/CATSTERS/General+limits+and+colimits+1.mp4")
(code-mplayer "catsters-limsandcolims2"  "~/CATSTERS/General+limits+and+colimits+2.mp4")
(code-mplayer "catsters-limsandcolims3"  "~/CATSTERS/General+limits+and+colimits+3.mp4")
(code-mplayer "catsters-limsandcolims4"  "~/CATSTERS/General+limits+and+colimits+4.mp4")
(code-mplayer "catsters-limsandcolims5"  "~/CATSTERS/General+limits+and+colimits+5.mp4")
(code-mplayer "catsters-limsandcolims6"  "~/CATSTERS/General+limits+and+colimits+6.mp4")
(code-mplayer "catsters-grobjsandhopf1"  "~/CATSTERS/Group+objects+and+Hopf+algebras+1.mp4")
(code-mplayer "catsters-grobjsandhopf1"  "~/CATSTERS/Group+objects+and+Hopf+algebras+2.mp4")
(code-mplayer "catsters-grobjsandhopf1"  "~/CATSTERS/Group+objects+and+Hopf+algebras+3+(Catsters+37).mp4")
(code-mplayer "catsters-grobjsandhopf1"  "~/CATSTERS/Group+objects+and+Hopf+algebras+4+(Catsters+38).mp4")
(code-mplayer "catsters-grobjsandhopf1"  "~/CATSTERS/Group+objects+and+Hopf+algebras+5.mp4")
(code-mplayer "catsters-grobjsandhopf1"  "~/CATSTERS/Group+objects+and+Hopf+algebras+6.mp4")
(code-mplayer "catsters-howitisdone"     "~/CATSTERS/How+it+is+done.mp4")
(code-mplayer "catsters-kleinbottle"     "~/CATSTERS/Klein+bottle.mp4")
(code-mplayer "catsters-metricspaces1"   "~/CATSTERS/Metric+spaces+and+enriched+categories+1.mp4")
(code-mplayer "catsters-metricspaces2"   "~/CATSTERS/Metric+spaces+and+enriched+categories+2.mp4")
(code-mplayer "catsters-monads1"         "~/CATSTERS/Monads+1.mp4")
(code-mplayer "catsters-monads2"         "~/CATSTERS/Monads+2.mp4")
(code-mplayer "catsters-monads3"         "~/CATSTERS/Monads+3.mp4")
(code-mplayer "catsters-monads3a"        "~/CATSTERS/Monads+3A.mp4")
(code-mplayer "catsters-monads4"         "~/CATSTERS/Monads+4.mp4")
(code-mplayer "catsters-monoidobjs1"     "~/CATSTERS/Monoid+objects+1.mp4")
(code-mplayer "catsters-monoidobjs2"     "~/CATSTERS/Monoid+objects+2.mp4")
(code-mplayer "catsters-multicats1"      "~/CATSTERS/Multicategories+1+(Catsters+33).mp4")
(code-mplayer "catsters-multicats2"      "~/CATSTERS/Multicategories+2+(Catsters+34).mp4")
(code-mplayer "catsters-nts1"            "~/CATSTERS/Natural+transformations+1.mp4")
(code-mplayer "catsters-nts2"            "~/CATSTERS/Natural+transformations+2.mp4")
(code-mplayer "catsters-nts3"            "~/CATSTERS/Natural+transformations+3.mp4")
(code-mplayer "catsters-nts3a"           "~/CATSTERS/Natural+transformations+3A.mp4")
(code-mplayer "catsters-openclosedcob1"  "~/CATSTERS/Open-closed+cobordism+1.mp4")
(code-mplayer "catsters-openclosedcob2"  "~/CATSTERS/Open-closed+cobordisms+2.mp4")
(code-mplayer "catsters-openclosedcob3"  "~/CATSTERS/Open-closed+cobordisms+3.mp4")
(code-mplayer "catsters-outtakes"        "~/CATSTERS/Outtakes+(Catsters+35).mp4")
(code-mplayer "catsters-prodscoprods1"   "~/CATSTERS/Products+and+coproducts+1.mp4")
(code-mplayer "catsters-prodscoprods2"   "~/CATSTERS/Products+and+coproducts+2.mp4")
(code-mplayer "catsters-prodscoprods3"   "~/CATSTERS/Products+and+coproducts+3.mp4")
(code-mplayer "catsters-prodscoprods4"   "~/CATSTERS/Products+and+coproducts+4.mp4")
(code-mplayer "catsters-pbspushouts1"    "~/CATSTERS/Pullbacks+and+pushouts+1.mp4")
(code-mplayer "catsters-pbspushouts2"    "~/CATSTERS/Pullbacks+and+pushouts+2.mp4")
(code-mplayer "catsters-repyoneda1"      "~/CATSTERS/Representables+and+Yoneda+1.mp4")
(code-mplayer "catsters-repyoneda2"      "~/CATSTERS/Representables+and+Yoneda+2.mp4")
(code-mplayer "catsters-repyoneda3"      "~/CATSTERS/Representables+and+Yoneda+3.mp4")
(code-mplayer "catsters-slicecomma1"     "~/CATSTERS/Slice+and+comma+categories+1.mp4")
(code-mplayer "catsters-slicecomma2"     "~/CATSTERS/Slice+and+comma+categories+2.mp4")
(code-mplayer "catsters-spans1"          "~/CATSTERS/Spans+1+[31].mp4")
(code-mplayer "catsters-spans2"          "~/CATSTERS/Spans+2+[32].mp4")
(code-mplayer "catsters-stringdiagrams1" "~/CATSTERS/String+diagrams+1.mp4")
(code-mplayer "catsters-stringdiagrams2" "~/CATSTERS/String+diagrams+2.mp4")
(code-mplayer "catsters-stringdiagrams3" "~/CATSTERS/String+diagrams+3.mp4")
(code-mplayer "catsters-stringdiagrams4" "~/CATSTERS/String+diagrams+4.mp4")
(code-mplayer "catsters-stringdiagrams5" "~/CATSTERS/String+diagrams+5.mp4")
(code-mplayer "catsters-terminits1"      "~/CATSTERS/Terminal+and+initial+objects+1.mp4")
(code-mplayer "catsters-terminits2"      "~/CATSTERS/Terminal+and+initial+objects+2.mp4")
(code-mplayer "catsters-terminits3"      "~/CATSTERS/Terminal+and+initial+objects+3.mp4")


(seen 11630)


;; «luajit»  (to ".luajit")
;; (find-es "lua5" "luajit")
(code-c-d "luajit" "~/usrc/LuaJIT-2.0.0-beta8/")
(code-c-d "luajit" "~/usrc/LuaJIT-2.0.2/")
(defun eepitch-luajit () (interactive)
  (eepitch-comint "luajit" (ee-luajitfile "src/luajit")))
(defun eepitch-luajit () (interactive)
  (eepitch-comint "luajit" "luajit"))

;; (find-enode "Choosing Modes" "#!")
;; (find-enode "Choosing Modes" "interpreter-mode-alist")
;; (find-evardescr 'interpreter-mode-alist)
;; (find-anggfile "elisp/lua-mode.el")
(add-to-list 'interpreter-mode-alist '("luajit"   . lua-mode))
(add-to-list 'interpreter-mode-alist '("lua5.1"   . lua-mode))
(add-to-list 'interpreter-mode-alist '("tclsh8.0" . tcl-mode))
(add-to-list 'interpreter-mode-alist '("expectk"  . tcl-mode))
(add-to-list 'interpreter-mode-alist '("expect"   . tcl-mode))




;; «love2d»  (to ".love2d")
;; (find-es "love" "love-vilua")
(defun eepitch-love () (interactive)
  (eepitch-comint "love" "love ~/LOVE2D/vilua2.love"))





;; «caderno»  (to ".caderno")
;; (find-fline "~/SCANS/")
(code-djvu "caderno2" "~/SCANS/caderno2/caderno.djvu")
;; (find-caderno2page 10      "A família {p_U, p_V} viola separatedness")
;; (find-caderno2page 16 "MD" "g(f(4)) -^v^-> g(2*4+3)")
;; (find-caderno2page 21 "C2" "Um modo de estruturar respostas para alguns problemas de Cálculo 2")
;; (find-caderno2page 21 "C2" "boa primitiva")
;; (find-caderno2page 22 "C2" "Exercícios de Integral de Riemann")
;; (find-caderno2page 23 "MD" "Exercícios sobre relações e funções")
;; (find-caderno2page 26 "C2" "reduzir" "(D^2 + \\aa D + \\bb)f = 0" "(D-a)(D-b)f=0")
;; (find-caderno2page 26 "C2" "encontre uma EDO da forma y'''+ay''+by'+cy=0 com sols básicas")
;; (find-caderno2page 27 "C4" "Sejam F, G, H, K os seguintes campos em R^2:")
;; (find-caderno2page 29      "este é o caminho para sermos ouvidos _por outras comissões_")
;; (find-caderno2page 30 "C2" "Gabarito da P2")
;; (find-caderno2page 33 "MD" "Prova de reposição")
;; (find-caderno2page 34 "C2" "Prova de reposição")
;; (find-caderno2page 35 "C4" "2ª Prova de reposição")
;; (find-caderno2page 36 "C4" "2ª Prova de reposição - gabarito")
;; (find-caderno2page 38 "C2" "(VR/VS?)")
;; (find-caderno2page 39 "C4" "VS")
;; (find-caderno2page 40 "C4" "Mini-gabarito da VS")
;; (find-caderno2page 41 "C4" "VS2")
;; (find-caderno2page 42 "C2" "VS")
;; (find-caderno2page 43 "C2" "VS - gabarito")
;; (find-caderno2page 45      "(Yoneda in 6 diagrams)")
;; (find-caderno2page 50      "RRZ's book is centered on presheaves (draft)")
;; (find-caderno2page 51      "RRZ's book is centered on presheaves")
;; (find-caderno2page 52      "O que é preciso para trabalhar em empresas?")
;; (find-caderno2page 53      "Lambek/Scott")
;; (find-caderno2page 55      "Lambek/Scott")
;; (find-caderno2page 56      "pare de fingir que dá pra ver o mundo só do ponto de vista dos winners")
;; (find-caderno2page 57      "\"o método autoritário é melhor\"")
;; (find-caderno2page 58      "A lemma about bifunctors")
;; (find-caderno2page 59      "A lemma about bifunctors")
;; (find-caderno2page 60      "Product categories")
;; (find-caderno2page 61      "A lemma on bifunctors")
;; (find-caderno2page 62      "mapinha do dednat5")
;; (find-caderno2page 63      "The condition on variables (and on terms)")

(code-djvu "caderno1" "~/SCANS/caderno1/caderno1.djvu")
;; (find-caderno1page 1)

(code-djvu "judith" "$S/http/anggtwu.net/MD/judith_p59_a_110.djvu")
;; (find-judithpage (+ -58 59) "2.1. Técnicas de Demonstração")
;; (find-judithpage (+ -58 61)   "Exaustiva")
;; (find-judithpage (+ -58 63)   "Direta")
;; (find-judithpage (+ -58 63)   "Contraposição")
;; (find-judithpage (+ -58 64)   "Absurdo")
;; (find-judithpage (+ -58 65)   "Acidentes Felizes")
;; (find-judithpage (+ -58 66)   "Exercícios")



;; «unilog-2010»  (to ".unilog-2010")
;; http://www.uni-log.org/start3.html
;; http://www.uni-log.org/ss3-CAT.html
;; http://www.uni-log.org/handbook-unilog2010.pdf
(code-xpdf      "uniloghandbook" "$S/http/www.uni-log.org/handbook-unilog2010.pdf")
(code-pdftotext "uniloghandbook" "$S/http/www.uni-log.org/handbook-unilog2010.pdf")
;; (find-uniloghandbookpage        3  "Contents")
;; (find-uniloghandbookpage (+ 4   6) "Yuri Gurevich")
;; (find-uniloghandbookpage (+ 4   7) "Giovanni Sambin")
;; (find-uniloghandbookpage (+ 4   7) "Jonathan Seldin")
;; (find-uniloghandbookpage (+ 4   7) "Amilcar Sernadas")
;; (find-uniloghandbookpage (+ 4  11) "Carlos Caleiro")
;; (find-uniloghandbookpage (+ 4  19) "Categorical Logic")
;; (find-uniloghandbookpage (+ 4  20)   "Maietti")
;; (find-uniloghandbookpage (+ 4  21)   "Dominique Duval")
;; (find-uniloghandbookpage (+ 4  21)   "René Guitart")
;; (find-uniloghandbookpage (+ 4  21)   "Eduardo Ochs")
;; (find-uniloghandbookpage (+ 4  22)   "Valeria de Paiva")
;; (find-uniloghandbookpage (+ 4  22)   "Szczeciniarz")
;; (find-uniloghandbookpage (+ 4  22) "Logic diagrams")
;; (find-uniloghandbookpage (+ 4  28)   "Polynomial Ring Calculus")
;; (find-uniloghandbookpage (+ 4  34) "+ update")
;; (find-uniloghandbookpage (+ 4  39)  "tortoise")
;; (find-uniloghandbookpage (+ 4  55)  "how to combine logics")
;; (find-uniloghandbookpage (+ 4  58)  "tortoise")
;; (find-uniloghandbookpage (+ 4  62)  "godel completeness")
;; (find-uniloghandbookpage (+ 4  66)  "information")
;; (find-uniloghandbookpage (+ 4  69)  "S4")
;; (find-uniloghandbookpage (+ 4  73)  "socrates")
;; (find-uniloghandbookpage (+ 4  79)  "proof events")
;; (find-uniloghandbookpage (+ 4  83)  "Piaget")
;; (find-uniloghandbookpage (+ 4  88) "Tutorials")
;; (find-uniloghandbookpage (+ 4  89)   "Fractals, topology and logic")
;; (find-uniloghandbookpage (+ 4  94)   "Coniglio")
;; (find-uniloghandbookpage (+ 4  95)   "Ideospheres")
;; (find-uniloghandbookpage (+ 4  95)   "Institutions")
;; (find-uniloghandbookpage (+ 4  96)   "Kripke's World")
;; (find-uniloghandbookpage (+ 4  98)   "Plurality")
;; (find-uniloghandbookpage (+ 4  98)   "Natural Deductions")
;; (find-uniloghandbookpage (+ 4 102)   "Joao Marcos")
;; (find-uniloghandbookpage (+ 4 103)   "Truth-values")
;; (find-uniloghandbooktext "" "Luiz Henrique da Cruz Silvestrini")
;; (find-uniloghandbooktext "" "Juan Luis Gastaldi")
;; (find-uniloghandbooktext "" "James Brotherston")
;; (find-uniloghandbooktext "" "Danielle Macbeth")
;; (find-uniloghandbooktext "" "Abelian logic")
;; (find-uniloghandbooktext "" "Arno Bastenhof")
;; (find-uniloghandbooktext "")



;; «gdb»  (to ".gdb")
;; (find-es "emacs" "gdb-mi")
;; (find-es "gdb" "gdb-squeeze")
(code-c-d "gdb"    "/usr/share/doc/gdb-doc/html/gdb/"    "gdb")
(code-c-d "gdbint" "/usr/share/doc/gdb-doc/html/gdbint/" "gdbint")
(code-c-d "stabs"  "/usr/share/doc/gdb-doc/html/stabs/"  "stabs")
;; (find-gdbfile "")
;; (find-gdbnode "")
;; (find-gdbintfile "")
;; (find-gdbintnode "")
;; (find-stabsfile "")
;; (find-stabsnode "")



;; «bash»  (to ".bash")
;; (find-es "bash" "bash-debian")
(code-c-d "bash" "/usr/share/doc/bash/examples/" "bash")
;; (find-bashfile "")
;; (find-bashnode "")

;; «dash»  (to ".dash")
;; (find-es "bash" "dash")
;; (defun eepitch-dash () (interactive) (eepitch-comint "dash" "dash"))

;; (find-es "emacs" "dash")
(code-c-d "dash" "~/.emacs.d/elpa/dash-20220516.2220/" "dash")

;; «ksh»  (to ".ksh")
;; (find-es "zsh" "ksh")
;; (defun eepitch-ksh () (interactive) (eepitch-comint "ksh" "ksh"))

;; «tcsh»  (to ".tcsh")
;; (find-es "bash" "ksh")
;; (defun eepitch-tcsh () (interactive) (eepitch-comint "tcsh" "tcsh"))

;; «zsh»  (to ".zsh")
;; (find-es "zsh" "zsh-debian")
;; (defun eepitch-zsh () (interactive) (eepitch-comint "zsh" "zsh"))
(code-c-d "zsh" "/usr/share/doc/zsh/examples/" "zsh")
;; (find-zshfile "")
;; (find-zshnode "")




;; «guile»  (to ".guile")
;; (find-es "scheme" "guile-1.8")
;; (defun eepitch-guile () (interactive) (eepitch-comint "guile" "guile"))
(code-c-d "guile"    "/usr/share/guile/3.0/" "guile")
;; (find-guilefile "")
;; (find-guilefile "ice-9/")
;; (find-guilefile "ice-9/expect.scm")
;; (find-guilenode "")
;; (find-guilenode "REPL Commands")

;; «mit-scheme»  (to ".mit-scheme")
;; (find-es "scheme" "mit-scheme")
(code-c-d "mitscheme" "/usr/lib/mit-scheme-i386/" "mit-scheme-user")
' (defun eepitch-mitscheme () (interactive)
    (eepitch-comint "mit-scheme" "mit-scheme"))
;; (find-mitschemefile "")
;; (find-mitschemenode "")
;; (find-mitschemenode "Edwin")
;; (find-mitschemenode "Edwin REPL Mode")

;; «scsh»  (to ".scsh")
;; (find-es "scheme" "scsh")
(code-c-d "scshdoc" "/usr/share/doc/scsh-0.6-doc/")
;; (defun eepitch-scsh () (interactive) (eepitch-comint "scsh" "scsh"))
;; (find-scshdocfile "")
;; (find-scshdocfile "cheat.txt.gz")


;; «haskell»  (to ".haskell")
;; «haskell-docs»  (to ".haskell-docs")
;; (find-es "haskell" "haskell-docs")
;; (find-es "haskell" "haskell-docs" "zcat")
(code-pdf-page "h98" "~/tmp/haskell98-report.pdf")
(code-pdf-text "h98" "~/tmp/haskell98-report.pdf")
(code-pdf-page "h98t" "$S/https/www.haskell.org/tutorial/haskell-98-tutorial.pdf")
(code-pdf-text "h98t" "$S/https/www.haskell.org/tutorial/haskell-98-tutorial.pdf")
(code-c-d "h98"  "/usr/share/doc/haskell98-report/html/haskell98-report-html/")
(code-c-d "h98t" "/usr/share/doc/haskell98-tutorial/html/")
;; (find-h98file "")
;; (find-h98tfile "")
;; (find-h98page)
;; (find-h98text)
;; (find-h98tpage)
;; (find-h98ttext)

;; Old:
(code-c-d "hask98report" "/usr/share/doc/haskell98-report/html/haskell98-report-html/")
(code-c-d "hask98tut"    "/usr/share/doc/haskell98-tutorial/html/")
;; (find-hask98reportfile "")
;; (find-hask98reportw3m  "index.html")
;; (find-hask98reportw3m  "index98.html")
;; (find-hask98tutfile "")
;; (find-hask98tutw3m  "index.html")
;; (find-blogme3 "angglisp.lua" "haskell")

;; «haskell-mode»  (to ".haskell-mode")
;; (find-es "haskell" "haskell-mode")
;;(code-c-d "haskellmode" "~/usrc/haskell-mode-2.8.0/")
(code-c-d "haskellmode" "~/.emacs.d/elpa/haskell-mode-20220529.1859/")
;; (find-haskellmodefile "")
;;
;; (add-to-list 'load-path "~/usrc/haskell-mode-2.8.0/")
;; (when (file-exists-p "~/usrc/haskell-mode-2.8.0/haskell-site-file.el")
;;   ;; (find-haskellmodefile "inf-haskell.el" "haskell-program-name")
;;   ;; (setq haskell-program-name "hugs \"+.\"")
;;   (setq haskell-program-name "ghci")
;;   (load "haskell-site-file")
;;   (add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
;;   (add-hook 'haskell-mode-hook 'turn-on-haskell-indentation)
;;   )

;; «hoogle»  (to ".hoogle")
;; (find-es "haskell" "hoogle")
(defun find-hoogle (str &rest rest)
  (apply 'find-sh (concat "hoogle --count=2000 " str) rest))

;; (find-es "emacs" "eval-after-load")
(setq haskell-hoogle-command "hoogle")
(eval-after-load "haskell-mode"
  '(define-key haskell-mode-map "\C-ch" 'haskell-hoogle))


;; «ghc»  (to ".ghc")
;; (find-es "ghc" "ghc-8.10.3")
(code-c-d "ghc"     "~/bigsrc/ghc-8.10.3/")
(code-c-d "ghcbase" "~/bigsrc/ghc-8.10.3/libraries/base/")
;; (find-ghcfile "")
;; (find-ghcbasefile "")
;;
;; (find-es "haskell" "ghc6")
(code-c-d "ghcdoc"  "/usr/share/doc/ghc6-doc/html/")
(code-c-d "ghcusrh" "/usr/share/doc/ghc6-doc/html/users_guide/")
;; (find-ghcdocfile "")
;; (find-ghcusrhfile "")
;; (find-ghcusrhw3m  "index.html")
;; (find-ghcusrhw3m  "ghci.html")
;; (find-libhugsfile "libraries/Hugs/Prelude.hs")




;; «hugs»  (to ".hugs")
;; (find-es "haskell" "hugs")
;; (code-c-d "hugsbase" "/usr/lib/hugs/packages/hugsbase/Hugs/")
;; (code-c-d "hugsoldlib" "/usr/lib/hugs/oldlib/")
;; (code-c-d "hugsuserguide" "/usr/share/doc/hugs/users_guide/")
;; (defun eepitch-hugs   () (interactive) (eepitch-comint "hugs" "hugs"))
;; (defun eepitch-hugs98 () (interactive) (eepitch-comint "hugs" "hugs -98"))
;; (find-hugsbasefile "")
;; (find-hugsbasefile "Prelude.hs")
;; (find-hugsoldlibfile "")
;; (find-hugsuserguidefile "")
;; (find-hugsuserguidew3m  "index.html")
;; (find-libhugsfile "")
;; (find-es "haskell" "eepitch-hugs")



;; «ocaml»  (to ".ocaml")
;; (find-es "ocaml" "ocaml-doc")
(code-pdf-page "ocamlref" "/usr/share/doc/ocaml-doc/ocaml-4.11-refman.pdf")
(code-pdf-text "ocamlref" "/usr/share/doc/ocaml-doc/ocaml-4.11-refman.pdf" 2)
;; (find-ocamlrefpage)
;; (find-ocamlreftext)

;; (find-es "ocaml" "tuareg-git")
(code-c-d "tuareg" "~/.emacs.d/elpa/tuareg-20220104.2039/")
(code-c-d "tuareggit" "~/usrc/tuareg/")
;; (find-tuaregfile "")
;; (find-tuareggitfile "")
;; (find-es "ocaml" "opam")
(code-pdf-page "opam" "/usr/share/doc/opam-docs/dev-manual.pdf")
(code-pdf-text "opam" "/usr/share/doc/opam-docs/dev-manual.pdf")
(code-c-d      "opam" "~/.opam/")
(code-c-d "opamsources" "~/.opam/default/.opam-switch/sources/")
;; (find-opamfile "")
;; (find-opamsourcesfile "")

;; (find-fline "/usr/share/doc/ocaml-doc/ocaml-3.10-refman.txt.gz")
(code-c-d "ocaml"    "/usr/share/doc/ocaml-doc/ocaml.html/libref/" "ocaml")
(code-c-d "ocamlref" "/usr/share/doc/ocaml-doc/ocaml.html/libref/" "ocaml")
;; (find-ocamlnode "")
;; (find-ocamlfile "")



;; «plzoo»  (to ".plzoo")
;; (find-es "ml" "plzoo")
;; (find-es "ocaml" "plzoo-git")
(code-c-d "plzoo" "~/usrc/plzoo/")
;; (find-plzoofile "")

;; «levy» (to ".levy")
;; (find-es "ml" "levy")
(code-c-d "levy" "~/usrc/levy/")
;; (find-levyfile "")
(defun eepitch-levy () (interactive)
  (eepitch-comint-at "~/usrc/levy/" "levy" "levy.byte"))

;; (find-angg ".emacs.papers" "levy")
;; http://www.cs.bham.ac.uk/~pbl/papers/ctcs02journal.pdf
;; (find-fline "$S/http/www.cs.bham.ac.uk/~pbl/papers/")
(code-xpdf     "cbpvadj" "$S/http/www.cs.bham.ac.uk/~pbl/papers/ctcs02journal.pdf")
(code-pdf-text "cbpvadj" "$S/http/www.cs.bham.ac.uk/~pbl/papers/ctcs02journal.pdf")
;; (find-cbpvadjpage)
;; (find-cbpvadjtext)



;; «picolisp»  (to ".picolisp")
;; (find-es "lisp" "picolisp")
(code-c-d "picolisp" "~/usrc/picoLisp/")
(defun eepitch-picolisp () (interactive)
  (eepitch-comint "picolisp" (ee-picolispfile "bin/picolisp")))
(defun eepitch-picolisp () (interactive)
  (eepitch-comint-at ee-picolispdir "picolisp" "bin/picolisp"))

;; (find-es "lisp" "slime-cvs-run")
;; (find-slimefile "slime.el" "CONTRIBS is a list")
;; (find-slimefile "slime.el")
(code-c-d "slime" "~/usrc/slime/" "slime")

;; (defun eepitch-sbcl  () (interactive) (eepitch-comint "sbcl" "sbcl"))
;; (defun eepitch-gcl   () (interactive) (eepitch-comint "gcl"  "gcl"))

;; (find-es "lisp" "dpans2texi")
;; (find-ansiclnode "")
;; (find-ansiclnode "Index")
(code-c-d "ansicl" "~/usrc/dpans2texi-1.05/" "ansicl")

;; (find-es "lisp" "sbcl")
(code-c-d "sbcl" "/usr/share/sbcl-source/" "sbcl")

;; (find-es "lexyacc")
(code-c-d "bison" "~/BISON/" "bison")


;; «ee-backup-lua-locals»  (to ".ee-backup-lua-locals")
;; (find-efunction 'ee-split)
;; A test:
;; (find-elinks '((bll "foo bar  plic")))

(defun ee-backup-lua-locals (vars)
  (let* ((vars  (ee-split vars))
	 (vars,  (mapconcat 'identity vars ",  "))
	 (vars_, (mapconcat 'identity vars "_, ")))
    (concat "    local " vars_, "_ =\n"
	    "          " vars, "\n"
	    "    " vars, "  =\n"
	    "    " vars_, "_\n")))

(defun bll (vars) (insert "\n" (ee-backup-lua-locals vars)))

(seen 11980)




;; (find-efunction 'find-pdftotext)
;; (find-efunction 'ee-code-pdftotext)
;; (find-efunction 'code-pdftotext)
;; (find-efunction 'find-callprocess0)
;; (find-man "djvutxt")
;; (find-man "djvused")

;; (defun find-djvutotext (fname &rest rest)
;;   (apply 'find-sh (format "djvutxt %s" fname) rest))
;; (defun ee-code-djvutotext (code djvufile)
;;   (format "
;;     (defun find-%stext (&rest rest) (interactive)
;;       (apply 'find-djvutotext %S rest))
;;   " code djvufile))
;; (defun code-djvutotext (c f) (eval (ee-read (ee-code-djvutotext c f))))


;; (find-node "(eev)Top")


;; «xmonad»  (to ".xmonad")
;; (find-es "haskell" "xmonad")
(code-c-d "xmonad" "~/usrc/xmonad-0.9/")

(defun find-eepitch-buffer (cmd &optional body &rest rest)
  (interactive (list "shell"))
  (apply 'find-estring
	 (format "\n* (eepitch-%s)\n* (eepitch-kill)\n* (eepitch-%s)\n%s"
		 cmd cmd (or body ""))
	 rest))
(defun find-eeshell (&optional body &rest rest)
  (apply 'find-eepitch-buffer "shell" body rest))
(defun find-eeshell-here (&optional body &rest rest)
  (apply 'find-eeshell (format "cd %s\n%s" default-directory body) rest))

;; (find-eepitch-buffer "shell" "foo")
;; (find-eeshell "foo")
;; (find-eeshell-here "foo")


(code-c-d       "853" "~/LATEX/2008graphs.tex" :anchor)
(code-dvi       "853" "~/LATEX/2008graphs.dvi")
(code-pdftotext "853" "~/LATEX/2008graphs.pdf")
;; (find-853file  "")
;; (find-853file  "" "LT-modalities")
;; (find-853      "" "LT-modalities")
;; (find-853page  21 "internal-diagram")
;; (find-853text  21 "Lawvere-Tierney Modalities\n")

;; «unilog-current»  (to ".unilog-current")
;; (find-TH "math-b" "internal-diags-in-ct")
;; (find-TH "math-b" "internal-diags-in-ct" "2010unilog-current.pdf")
;; (find-LATEX "2010unilog-current.tex")
;; (find-dvipage  "~/LATEX/2010unilog-current.dvi")
(code-c-d       "854" "~/LATEX/2010unilog-current.tex" :anchor)
(code-dvi       "854" "~/LATEX/2010unilog-current.dvi")
(code-pdftotext "854" "~/LATEX/2010unilog-current.pdf")
(code-c-d       "unilogcurr" "~/LATEX/2010unilog-current.tex" :anchor)
(code-dvi       "unilogcurr" "~/LATEX/2010unilog-current.dvi")
(code-pdftotext "unilogcurr" "~/LATEX/2010unilog-current.pdf")
;; (find-854file  "")
;; (find-854     "" "internal-diagram")
;; (find-854page  9 "internal-diagram")
;; (find-854     "" "phys-notation")
;; (find-854page 11 "phys-notation")
;; (find-854     "" "cheap-and-exp-adjs-2")
;; (find-854page 30 "cheap-and-exp-adjs-2")
;; (find-854     "" "yoneda-lemma")
;; (find-854page 32 "yoneda-lemma")
;; (find-854     "" "CCCs")
;; (find-854page 43 "CCCs")
;; (find-854text)

;; «idarct» (to ".idarct")
;; (find-es "dednat" "idarct")
;; (find-idarctfile "Makefile")
;; Links to the preliminary versions:
(code-c-d       "idarct0" "~/LATEX/idarct/" :anchor)
(code-c-d       "idarct" "~/LATEX/idarct/2010diags-body.tex" :anchor)
(code-dvi       "idarct" "~/LATEX/idarct/idarct-preprint.dvi")
(code-pdftotext "idarct" "~/LATEX/idarct/idarct-preprint.pdf" 0)
(code-dvi       "idarct" "~/LATEX/idarct-preprint.dvi")
(code-pdftotext "idarct" "~/LATEX/idarct-preprint.pdf" 0)
;; (find-idarct0file "")
;; (find-idarct0file "Makefile")
;;
;; «idarct-preprint»  (to ".idarct-preprint")
;; (find-angg ".emacs" "idarct-preprint")
;; (find-LATEX "catsem-ab.bib" "bib-IDARCT")
;; (find-books "__cats/__cats.el" "ochs")
;; (find-TH "math-b" "internal-diags-in-ct")
;; (find-TH "math-b" "internal-diags-in-ct" "idarct-preprint.pdf")
;; http://anggtwu.net/math-b.html#idarct
;; http://anggtwu.net/LATEX/idarct-preprint.pdf
(code-pdf-page "idarct" "$S/http/anggtwu.net/LATEX/idarct-preprint.pdf")
(code-pdf-text "idarct" "$S/http/anggtwu.net/LATEX/idarct-preprint.pdf")
;; (find-idarct     "")
;; (find-idarctpage)
;; (find-idarcttext)
;; (find-idarctpage  1 "1. Mental Space and Diagrams")
;; (find-idarcttext  1 "1. Mental Space and Diagrams")
;; (find-idarctpage  2 "2. Projections and Liftings")
;; (find-idarcttext  2 "2. Projections and Liftings")
;; (find-idarctpage  3 "3. Downcased Types")
;; (find-idarcttext  3 "3. Downcased Types")
;; (find-idarctpage  4 "4. The Dictionary")
;; (find-idarcttext  4 "4. The Dictionary")
;; (find-idarctpage  5 "5. Internal Diagrams")
;; (find-idarcttext  5 "5. Internal Diagrams")
;; (find-idarctpage  6 "6. Parallel Notations")
;; (find-idarcttext  6 "6. Parallel Notations")
;; (find-idarctpage  7 "7. Functors")
;; (find-idarcttext  7 "7. Functors")
;; (find-idarctpage  9 "8. Natural Transformations")
;; (find-idarcttext  9 "8. Natural Transformations")
;; (find-idarctpage  9 "9. Adjunctions")
;; (find-idarcttext  9 "9. Adjunctions")
;; (find-idarctpage 12 "10. Transmission")
;; (find-idarcttext 12 "10. Transmission")
;; (find-idarctpage 13 "11. Intuition")
;; (find-idarcttext 13 "11. Intuition")
;; (find-idarctpage 15 "12. Skeletons of proofs")
;; (find-idarcttext 15 "12. Skeletons of proofs")
;; (find-idarctpage 15 "13. Hyperdoctrines")
;; (find-idarcttext 15 "13. Hyperdoctrines")
;; (find-idarctpage 19 "14. Preservations, Frobenius, Beck-Chevalley")
;; (find-idarcttext 19 "14. Preservations, Frobenius, Beck-Chevalley")
;; (find-idarctpage 21 "15. The Eq-Elim rule")
;; (find-idarcttext 21 "15. The Eq-Elim rule")
;; (find-idarctpage 23 "16. Archetypal Models")
;; (find-idarcttext 23 "16. Archetypal Models")
;; (find-idarctpage 24 "17. Cartesian Closed Categories")
;; (find-idarcttext 24 "17. Cartesian Closed Categories")
;; (find-idarctpage 26 "18. Objects of Line Type")
;; (find-idarcttext 26 "18. Objects of Line Type")
;; (find-idarctpage 27 "19. The syntactical world")
;; (find-idarcttext 27 "19. The syntactical world")
;; (find-idarctpage 28 "20. The problem with toposes")
;; (find-idarcttext 28 "20. The problem with toposes")
;; (find-idarctpage 28 "21. Formalizing diagrams (in Type Theory)")
;; (find-idarcttext 28 "21. Formalizing diagrams (in Type Theory)")
;; (find-idarctpage 29 "22. A Database of Categorical Theorems")
;; (find-idarcttext 29 "22. A Database of Categorical Theorems")
;; (find-idarctpage 31 "23. Epilogue")
;; (find-idarcttext 31 "23. Epilogue")

;; (find-idarct "2010diags-body.tex" "build-scripts")



;; «idct» (to ".idct")
;; (find-LATEX "2010diags.tex")
;; http://anggtwu.net/math-b.html#internal-diags-in-ct
;; http://anggtwu.net/LATEX/2010diags.pdf
(code-c-d       "idct" "~/LATEX/2010diags.tex" :anchor)
(code-xpdf      "idct" "~/LATEX/2010diags.pdf")
(code-dvi       "idct" "~/LATEX/2010diags.dvi")
(code-pdftotext "idct" "~/LATEX/2010diags.pdf")
;; (find-idct     "" "olts")
;; (find-idctpage 25 "17. Objects of Line Type")
;; (find-idcttext)

;; «minicats»  (to ".minicats")
;; (find-angg "LATEX/2012minicats.tex")
(code-c-d       "minicats" "~/LATEX/2012minicats.tex" :anchor)
(code-dvi       "minicats" "~/LATEX/2012minicats.dvi")
(code-pdftotext "minicats" "~/LATEX/2012minicats.pdf")
;; (find-minicatspage 2  "Program (1)")
;; (find-minicats     "" "lambda-intro")
;; (find-minicatspage 25 "17. Objects of Line Type")
;; (find-minicatstext)

;; «eblslides»  (to ".eblslides")
;; (find-angg "LATEX/2011ebl-slides.tex")
(code-c-d       "eblslides" "~/LATEX/2011ebl-slides.tex" :anchor)
(code-dvi       "eblslides" "~/LATEX/2011ebl-slides.dvi")
(code-pdftotext "eblslides" "~/LATEX/2011ebl-slides.pdf")
;; (find-eblslides     "" "fav-top-space")
;; (find-eblslidespage  7 "Essential arrows")
;; (find-eblslidespage 10 "Our favorite topological space: V")
;; (find-eblslides     "" "evil-presheaf")
;; (find-eblslidespage 13 "The evil presheaf")
;; (find-eblslidestext)

;; «eblsheaves»  (to ".eblsheaves")
;; (find-angg "LATEX/2011ebl-abs.tex")
(code-c-d       "eblsheaves" "~/LATEX/2011ebl-abs.tex" :anchor)
(code-dvi       "eblsheaves" "~/LATEX/2011ebl-abs.dvi")
(code-pdftotext "eblsheaves" "~/LATEX/2011ebl-abs.pdf")
;; (find-eblsheaves     "")
;; (find-eblsheavespage  5 "Priming")
;; (find-eblsheavespage  9 "int-and-coint")
;; (find-eblsheavespage 13 "thinness")
;; (find-eblsheavespage 17 "Heyting Algebras")
;; (find-eblsheavestext)

;; (code-c-d       "34" "~/LATEX/2011ebl-abs.tex" :anchor)
;; (code-dvi       "34" "~/LATEX/2011ebl-abs.dvi")
;; (code-pdftotext "34" "~/LATEX/2011ebl-abs.pdf")
;; (find-34     "" "thinness")
;; (find-34page 13 "thinness")

;; «sheavesforchildren» (to ".sheavesforchildren")
;; (find-angg "sheavesforchildren/")
;; (find-TH "sheavesforchildren")
(defun eejump-56 () (find-TH "sheavesforchildren"))
(code-c-d "sfc" "~/sheavesforchildren/" :anchor)
;; (find-sfcfile "")

;; (defun eejump-57 () (find-LATEX "2014-resposta.tex"))





;; «find-2»  (to ".find-2")
;; Rewritten: (find-eev "eev-multiwindow.el" "find-2a")

;; (defun find-2 (sexp1 sexp2)
;;   (eek "C-x 1")
;;   (eval sexp1) (eek "C-x 2  M-o")
;;   (eval sexp2))
;;
;; (defun find-22o (sexp1 sexp2 sexp3)
;;   (eek "C-x 1")
;;   (eval sexp1) (eek "C-x 2  M-o")
;;   (eval sexp2) (eek "C-x 2  M-o  C-x +")
;;   (eval sexp3) (eek "C-x o"))
;;
;; (defun find-3 (sexp1 sexp2)
;;   (eek "C-x 1")
;;   (eval sexp1) (eek "C-x 3  M-o")
;;   (eval sexp2))
;;
;; (defun find-3o2 (sexp1 sexp2 sexp3)
;;   (eek "C-x 1")
;;   (eval sexp1) (eek "C-x 3  M-o")
;;   (eval sexp2) (eek "C-x 2  M-o")
;;   (eval sexp3))
;;
;; (defun find-3o2o2 (sexp1 sexp2 sexp3 sexp4)
;;   (eek "C-x 1")
;;   (eval sexp1) (eek "C-x 3  M-o")
;;   (eval sexp2) (eek "C-x 2  M-o")
;;   (eval sexp3) (eek "C-x 2  M-o")
;;   (eval sexp4) (eek "C-x +")
;;   (eek "M-0 C-l  M-o")
;;   (eek "M-0 C-l  M-o")
;;   (eek "M-0 C-l  M-o")
;;   (eek "M-0 C-l  M-o"))
;;
;; ' (find-3o2o2
;;    '(find-TH "2010.2-MD" "resumos-das-aulas")
;;    '(find-es "puro" "ementa-e-programa-MD")
;;    '(find-TH "2010.2-MD" "diario-de-classe")
;;    '(find-TH "2010.2-MD" "plano-de-aulas")
;;    )



;; «chaui»  (to ".chaui")
;; (find-fline "~/SCANS/univ_form_cid/chaui.txt")
;; Marilena Chaui: "As Humanidades contra o Humanismo", e:
;; Eduardo Rinesi: "Universidade Reflexiva e Cidadania Crítica"
(code-djvu "hch" "~/SCANS/univ_form_cid/hch_e_rinesi.djvu")
;; M-vrr M-vzw F11
;; (find-hchpage (+ -14 15) "Chaui")
;; (find-hchpage (+ -76 87) "Rinesi")
;; (find-hchpage (+ -77 89) "a universidade" "pensa por nosso intermédio")
;; (find-hchpage (+ -78 92) "a universidade replica")
;; (find-hchpage (+ -80 95) "os indivíduos tendem a se voltar para o espaço da sua privacidade")
;; (find-hchpage (+ -80 95) "a própria noção que as universidade têm de sua tarefa e de sua função")

;; (find-LATEX "chaui-hch.tex")


;; (defun ee-wrap-zsh (&optional n)
;;   (interactive "p")
;;   (ee-delete-extract-wrap (lambda (str) `((find-zsh ,str))) n))

;; (define-key eev-mode-map "\M-Z" 'ee-wrap-zsh)


;; «metapost»  (to ".metapost")
;; (find-angg ".emacs.papers" "metapost")
;; (find-es "tex" "metapost")
;; (find-metapostfile "")
;; (find-metapostfile "base/")
;; (find-metapostdocfile "")
;; (find-metapostdocfile "base/")
;; (find-metapostdocfile "base/source-manual/")
;; (find-metapostdocfile "base/source-tutorial/")
(code-c-d "metapost"    "/usr/share/texmf-texlive/metapost/")
(code-c-d "metapostdoc" "/usr/share/doc/texlive-metapost-doc/metapost/")
(code-c-d "featpostdoc" "/usr/share/doc/texlive-metapost-doc/metapost/featpost/")
(defun eepitch-mpost () (interactive) (ee-eepitch-comint "/tmp/" "mpost" "mpost"))
(defun eepitch-mf    () (interactive) (ee-eepitch-comint "/tmp/" "mf"    "mf"))
;; (find-efile "progmodes/meta-mode.el")

;; (find-angg ".emacs" "dn4-block")
(defun mp-block ()
  (interactive)
  (insert "
* (eepitch-mpost)
* (eepitch-kill)
* (eepitch-mpost)
null
outputtemplate:=\"/tmp/mp-%3c.mps\"; prologues:=3;
beginfig(1);
endfig;
% (find-pspage \"/tmp/mp-001.mps\")
"))



;; «projeto»  (to ".projeto")
(code-c-d "projeto"  "/scp:projeto@projeto.twu.net:/home/projeto/")
(code-c-d "projetop" "/scp:projeto@projeto.twu.net:/home/projeto/public_html/")
;; (find-projetofile "")
;; (find-projetopfile "")
;; (find-projetopfile "index.html")
;; http://projeto.twu.net/


;; «find-luac»  (to ".find-luac")
;; (find-es "lua5" "vmmerge5.lua")
;; (find-luac                "a.b.c.d.__mt = mt")
;; (find-luac   "setmetatable(a.b.c.d,       mt)")
;; (find-luac              "p(a.b.c.d.__mt)")
;; (find-luac "p(getmetatable(a.b.c.d))")
(defun find-luac0 (luacode)
  (ee-write-string luacode (ee-expand "$EEVTMPDIR/ee.luac"))
  (find-callprocess0 "luac51 -p -l $EEVTMPDIR/ee.luac"))
(defun find-luac (luacode &rest rest)
  (apply 'find-eoutput-reuse
	 (format "*luac: %s*" luacode)
	 `(insert ,(find-luac0 luacode))
	 rest))


;; «find-lua51ev»  (to ".find-lua51ev")
;; Tests: (find-lua51ev "print 'foo'")
;;        (find-lua51c  "print 'foo'")
;; See: (find-lua51w3m "doc/luac.html")
;;      (find-sh "luac51 -p -l - <<'%%%'\nprint 'foo'\n%%%")
;;      (find-es "lua-intro" "bytecode:captures")
(defun find-lua51ev (code &rest rest)
  (apply 'find-estring (find-callprocess0 `("lua51" "-e" ,code)) rest))
(defun find-lua51c (code &rest rest)
  (apply 'find-sh (concat "luac51 -p -l - <<'%%%'\n" code "\n%%%") rest))




;; «gs»  (to ".gs")
;; (find-es "ps" "eepitch-gs")
;; (find-es "ps" "ps-intro")
(defun eepitch-gs () (interactive) (eepitch-comint "gs" "gs -r45"))
(defun eepitch-gs () (interactive) (eepitch-comint "gs" "gs -r48"))
(defun eepitch-gs () (interactive) (eepitch-comint "gs" "gs -r60"))
(code-c-d "gslib" "/usr/share/ghostscript/8.62/lib/")
;; (find-gslibfile "")
;; (find-gslibfile "gs_cmdl.ps" "command line")
;; (find-gslibfile "acctest.ps")
;; (find-gslibfile "gs_init.ps")
;; (find-gslibfile "gs_init.ps" "/=== ")
;; (find-gslibfile "gs_init.ps" "/pstack")
;; (find-gslibfile "gs_init.ps" "/prompt")
;; (find-gslibfile "gs_init.ps" "countexecstack")
;; (find-gslibfile "gs_init.ps" "Operand stack:")
;; (find-gslibfile "opdfread.ps")
;; (find-gslibfile "ppath.ps" "print the current path")
;; (find-gslibfile "showchar.ps")
;; (find-gslibfile "wrfont.ps" "unless you have loaded unprot.ps first")
;; (find-gslibfile "unprot.ps")
;; (find-gslibfile "type1enc.ps")
;; (find-gslibfile "type1ops.ps")
;; (find-gslibfile "gs_init.ps" "prints dictionaries")
;; (find-gslibfile "uninfo.ps" "printing")

;; «gforth»  (to ".gforth")
;; (find-es "gforth" "gforth-basics")
(defun eepitch-gforth  () (interactive) (eepitch '(run-forth "gforth")))
(defun eepitch-gforth  () (interactive) (eepitch-comint "gforth" "gforth"))
(code-c-d "gforth" "/usr/share/gforth/0.7.0/" "gforth")
;; (find-gforthfile "")
;; (find-gforthnode "")

;; «erlang»  (to ".erlang")
;; (find-es "erlang")
;; (find-eev "eepitch.el" "eepitch-erl")
;; (defun eepitch-erl () (interactive) (eepitch-comint "erl" "erl"))


;; «google-dns»  (to ".google-dns")
;; (eesteps '("C-n M-e" "C-n M-e" "C-n M-e" "C-n M-e" "C-n # C-a C-n C-y"))
;; (find-sh0 "cat /etc/resolv.conf")
;; (find-sh0 "sudo chmod 666 /etc/resolv.conf")
;; (find-fline "/etc/resolv.conf")
;;
;; (kill-new "nameserver 8.8.8.8\n")
;; (find-fline "$ASROOT/etc/resolv.conf")
;;
(defun google-dns () (interactive)
  (find-angg ".emacs" "google-dns"))



;; «google»  (to ".google")
;;; Old version:
;;; (find-efunctiondescr 'url-hexify-string)
;;; (find-efunction      'url-hexify-string)
;;
;; (defun google-maps-url (query)
;;   (concat "http://maps.google.com/maps?f=q&q="
;;            (url-hexify-string query)
;;           ))
;; (defun gmap (query &rest rest)
;;   (brm (google-maps-url query)))
;;
;; (find-blogme3 "anggdefs.lua" "cgiquote")
;; (find-google-links "Eduardo Ochs")

(defun ee-wrap-google-maps- (li)
  (format "http://maps.google.com/maps?f=q&q=%s,+London"
	  (replace-regexp-in-string " " "+" li)))
(defun ee-wrap-google-maps () (interactive)
  (ee-wrapc '(li) '(insert (ee-wrap-google-maps- li))))

(defun find-google-links (&optional str &rest rest)
  "Visit a temporary buffer containing hyperlinks for google."
  (interactive)
  (setq str (or str "{str}"))
  (let ((qstr (replace-regexp-in-string " " "+" str)))
    (apply 'find-elinks `(
      ;; Convention: the first sexp always regenerates the buffer.
      (find-google-links ,str ,@rest)
      ;; Body:
      ""
      ,(ee-template0 "\
http://www.google.com/search?q={qstr}
http://www.google.com.br/search?tbm=isch&q={qstr}
http://www.google.com.br/search?tbm=isch&hl=en&safe=off&q={qstr}
http://maps.google.com/maps?f=q&q={qstr}")
    ) rest)))






(code-c-d "initd" "/etc/init.d/")
;; (find-initdfile "")


;; (find-es "ubuntu" "thttpd")

(defun monep () (interactive) (find-TH "monep"))

;; «fv»  (to ".fv")
;; (find-angg ".fvwm/.fvwm2rc")
;; (find-es "fvwm")
(defun fv () (interactive) (find-angg ".emacs" "fv"))


;; «scan»  (to ".scan")
;; (find-es "scan" "xsane-needs-root")
;; (find-fline "/tmp/dejours/")
(defun edrx ()
  (interactive)
  ;; (find-sh0 "sudo chown edrx:edrx /tmp/dejours/")
  ;; (find-sh0 "sudo chown edrx:edrx /tmp/dejours/*")
  ;; (find-sh0 "sudo chmod 666       /tmp/dejours/*")
  (find-sh0 "sudo chown edrx:edrx .")
  (find-sh0 "sudo chown edrx:edrx *")
  (find-sh0 "sudo chmod 666       *")
  (revert-buffer)
  )
(defun xz (fname &rest rest)
  (interactive (list (ee-dired-to-fname)))
  (find-bgprocess `("xzgv" "--geometry" "1012x572+0+0" ,fname)))

;; (find-br-links "xz" "xz")
(code-brfile 'xz :local 'brxzl)

;; «rotate» (to ".rotate")
;; (find-eev "eev-brxxx.el")
(defun rot90 (fname)
  (interactive (list (ee-dired-to-fname)))
  (find-callprocess `("convert" ,fname "-rotate" "90" ,fname)))
(defun rot180 (fname)
  (interactive (list (ee-dired-to-fname)))
  (find-callprocess `("convert" ,fname "-rotate" "180" ,fname)))
(defun rot270 (fname)
  (interactive (list (ee-dired-to-fname)))
  (find-callprocess `("convert" ,fname "-rotate" "270" ,fname)))

;; (find-es "imagemagick" "exif-orientation")
(defun rot-ao (fname)
  (interactive (list (ee-dired-to-fname)))
  (find-callprocess `("convert" ,fname "-auto-orient" ,fname)))
(defun rot0 (fname)
  (interactive (list (ee-dired-to-fname)))
  (find-callprocess `("convert" ,fname "-rotate" "0" "-auto-orient" ,fname)))
(defun rot180 (fname)
  (interactive (list (ee-dired-to-fname)))
  (find-callprocess `("convert" ,fname "-rotate" "180" "-auto-orient" ,fname)))
(defun rotleft (fname)
  (interactive (list (ee-dired-to-fname)))
  (find-callprocess `("convert" ,fname "-rotate" "270" "-auto-orient" ,fname)))
(defun rotright (fname)
  (interactive (list (ee-dired-to-fname)))
  (find-callprocess `("convert" ,fname "-rotate" "90" "-auto-orient" ,fname)))

;; (xz "/tmp/dejours/0030.jpeg")
;; (rot180 "/tmp/dejours/0030.jpeg")
;; (find-fline "~/SCANS/dejours/")
;; (find-fline "~/SCANS/moyses2/")

(code-c-d "tclmagick" "~/usrc/TclMagick/")
;; (find-es "tcl" "tclmagick")
;; (find-es "imagemagick")


;; «tex-def-many»  (to ".tex-def-many")
;; (find-es "tex" "more-than-9-args")
;; (find-angg "LUA/defwithmanyargs.lua" "run")
;; (find-angg "LUA/defwithmanyargs.lua" "test-run")
;; Tests: (find-tex-def-many "nam" 19)
;;        (find-tex-def-many "nam" 20 "% bbooddyy\n")
;;
(defun tex-def-many (name n &optional body)
  (find-callprocess00-ne
    (list (ee-expand "~/LUA/defwithmanyargs.lua")
          "--longdef" name (format "%s" n) (or body "% body\n"))))
(defun find-tex-def-many (name n &optional body)
  (find-estring (tex-def-many name n body)))


;; «process-coding-system»  (to ".process-coding-system")
;; (find-es "emacs" "process-coding-system")
;; (setq default-process-coding-system '(undecided-unix . utf-8-unix))
(setq default-process-coding-system '(utf-8-unix . utf-8-unix))


;; «agda»  (to ".agda")
;; Moved to: (find-angg ".emacs.agda")
' (load "~/.emacs.agda" 'noerror)
;;
;; (find-angg ".emacs.papers" "agda")
;; (find-agdagitfile "")
;; (find-agdausermanualpage)
;; (find-agdausermanualtext)

;; «agda-cabal»  (to ".agda-cabal")
;; (code-c-d "agda"     "~/.cabal/unpack/Agda-2.6.2/")
;; (code-c-d "agdamode" "~/.cabal/unpack/Agda-2.6.2/src/data/emacs-mode/")
;; (code-c-d "agdag"    "~/.cabal/store/ghc-8.8.4/Agda-2.6.2-b2f8eb43cd09b8b95a6e2958c006bc2f47b9966435e6f21d09b053b958e4fc43/")
;; (code-c-d "agdastdlib" "~/usrc/agda-stdlib-1.7/")
;; (find-agdagfile "")
;; (find-agdafile "")
;; (find-agdamodefile "")
;; (find-agdastdlibfile "")

;; «agda-stack»  (to ".agda-stack")
;; «agda-plfa»  (to ".agda-plfa")




;; «idris»  (to ".idris")
;; (find-es "idris" "idris-git")
;; (find-es "idris" "idris-doc-complete")
(code-pdf-page "idrisdocc" "~/usrc/Idris-dev/docs/_build/latex/idris-documentation-complete.pdf")
(code-pdf-text "idrisdocc" "~/usrc/Idris-dev/docs/_build/latex/idris-documentation-complete.pdf" 1)
(code-c-d      "idrisgit"  "~/usrc/Idris-dev/")
;; (find-idrisdoccpage)
;; (find-idrisdocctext)

;; «idris2»  (to ".idris2")
;; (find-es "idris" "idris2")
;; (find-es "idris" "idris2-git")
(code-c-d "idris2"    "~/usrc/Idris2-0.2.1/")
(code-c-d "idris2git" "~/usrc/Idris2/")

(code-c-d "idrislibs" "~/.cabal/share/x86_64-linux-ghc-8.0.1/idris-1.3.2/libs/")
;; (find-idrislibsfile "")

;; «idris-ct»  (to ".idris-ct")
;; (find-es "idris" "idris-ct")
(code-c-d      "idrisct" "~/usrc/idris-ct/")
(code-pdf-page "idrisct" "~/usrc/idris-ct/docs/main.pdf")
(code-pdf-text "idrisct" "~/usrc/idris-ct/docs/main.pdf")
;; (find-idrisctfile "")
;; (find-idrisctpage)
;; (find-idriscttext)

;; «idris-bradytdd»  (to ".idris-bradytdd")
;; (find-books "__comp/__comp.el" "brady")
(code-pdf-page "bradytdd" "~/books/__comp/brady__type-driven_development_with_idris.pdf")
(code-pdf-text "bradytdd" "~/books/__comp/brady__type-driven_development_with_idris.pdf" 26)
;;
;; (find-es "idris" "bradys-book-examples")
(code-c-d "bradytdd" "~/usrc/TypeDD-Samples/")
;; (find-bradytddfile "")

;; «idris2-tutorial»  (to ".idris2-tutorial")
;; (find-angg ".emacs" "idris2-tutorial")
;; (find-es "idris" "idris2-git")
(code-pdf-page "idris2tut" "~/usrc/Idris2/docs/build/latex/idris-tutorial.pdf")
(code-pdf-text "idris2tut" "~/usrc/Idris2/docs/build/latex/idris-tutorial.pdf")
;; (find-idris2tutpage)
;; (find-idris2tuttext)

;; «idris2-mode»  (to ".idris2-mode")
;; (find-es "idris" "idris2-mode")
;;
(add-to-list 'load-path "~/usrc/idris2-mode/")
(add-to-list 'auto-mode-alist '("\\.idr\\'" . idris2-mode))
(autoload 'idris2-mode "idris2-mode" "Idris2 Mode." t)




;; «racket»  (to ".racket")
;; (find-es "racket" "racket-mode")
(code-c-d "racketlocal" "~/.local/share/racket/7.9/")
;; (find-racketlocalfile "")
;; (find-racketlocalsh "find * | sort")
;; (find-racketlocalfile "pkgs/sicp/sicp-pict/")

;; «cabal-path»  (to ".cabal-path")
;; (find-angg ".zshrc" "cabal")
;; (find-es "haskell" "cabal-PATH")
;; (find-fline "~/.cabal/bin/")
;; (find-epp (getenv "PATH"))
;; (setenv "PATH" (format "%s/.cabal/bin:%s" (getenv "HOME") (getenv "PATH")))

;; «luarocks»  (to ".luarocks")
;; (find-es "lua5" "luarocks-deb")
(code-c-d "luarocks"      "/usr/share/lua/5.1/luarocks/")
(code-c-d "luarocksl"     "~/.luarocks/lib/luarocks/rocks/")
;; (find-luarocksfile "")
;; (find-luarockslfile "")

;; (find-es "lua5" "luarocks")
;; (find-angg "LUA/lua50init.lua" "userocks")
(code-c-d "luarockssrc"   "~/usrc/luarocks-2.0.4/")
(code-c-d "luarocks"      "~/usrc/luarocks/")
(code-c-d "luarocksbin"   "~/usrc/luarocks/bin/")
(code-c-d "luarocksrocks" "~/usrc/luarocks/lib/luarocks/rocks/")
(code-c-d "luarocks51"    "~/usrc/luarocks/share/lua/5.1/luarocks/")
;; (find-luarockssh "find * | sort")
;; (find-luarocksfile "")
;; (find-luarocksfile "etc/luarocks/config.lua")

;; «ltcltk»  (to ".ltcltk")
;; (find-es "lua5" "ltcltk")
;; (find-luarocks-links "ltcltk")
;; (find-luarocks-links "ltcltk" "0.9-2" "")
(code-c-d "ltcltk" "~/usrc/ltcltk-0.9-2/")
;; (find-ltcltkfile "")

;; (find-lposixfile "")
(code-c-d "lposix" "~/usrc/posix/")
;; (find-luarocksfile "lib/luarocks/rocks/lposix/20031107-1/lposix-20031107-1.rockspec")

(code-c-d "penlight" "~/usrc/penlight/Penlight/")
(code-c-d "pluto" "~/usrc/pluto-2.4/")
(code-c-d "serpent" "~/usrc/serpent/")
(code-c-d "ldoc" "~/usrc/ldoc-1.4.2/LDoc/")
;; (find-penlightfile "")
;; (find-plutofile "")
;; (find-serpentfile "")
;; (find-ldocfile "")

;; (find-luarocks-links "alien" "0.5.0-1")
;; (find-luarocks-links "copas" "1.1.6-1")
;; (find-luarocks-links "coxpcall" "1.13.0-1")
;; (find-luarocks-links "lpeg" "0.10-1")
;; (find-luarocks-links "lposix" "" "20031107-1")
;; (find-luarocks-links "ltcltk" "0.9-1")
;; (find-luarocks-links "luafilesystem" "1.5.0-1")
;; (find-luarocks-links "luagl" "1.01-1")
;; (find-luarocks-links "luasocket" "2.0.2-3")
;; (find-luarocks-links "xavante" "2.2.1-1")



;; «inkscape»  (to ".inkscape")
;; (find-es "inkscape" "save-tutorials-to-pdfs")
(code-pdf-page   "inkscapetut1" "~/INKSCAPE/tut_inkscape_basic.pdf")
(code-mupdf-page "inkscapetut1" "~/INKSCAPE/tut_inkscape_basic.pdf")
(code-pdf-text   "inkscapetut1" "~/INKSCAPE/tut_inkscape_basic.pdf")
(code-pdf-page   "tutinkscape2" "~/INKSCAPE/tut_inkscape_shapes.pdf")
(code-mupdf-page "tutinkscape2" "~/INKSCAPE/tut_inkscape_shapes.pdf")
(code-pdf-text   "tutinkscape2" "~/INKSCAPE/tut_inkscape_shapes.pdf")
(code-pdf-page   "tutinkscape3" "~/INKSCAPE/tut_inkscape_advanced.pdf")
(code-mupdf-page "tutinkscape3" "~/INKSCAPE/tut_inkscape_advanced.pdf")
(code-pdf-text   "tutinkscape3" "~/INKSCAPE/tut_inkscape_advanced.pdf")
;; (find-inkscapetut1page)
;; (find-inkscapetut1text)
;; (find-inkscapetut1page 2 "Panning the canvas")
;; (find-inkscapetut1text 2 "Panning the canvas")
;; (find-inkscapetut1page 5 "with a blue fill and a black stroke")
;; (find-inkscapetut1text 5 "with a blue fill and a black stroke")
;; (find-inkscapetut1page 10 "Grouping")
;; (find-inkscapetut1text 10 "Grouping")
;; (find-inkscapetut1page 12 "Fill and stroke")
;; (find-inkscapetut1text 12 "Fill and stroke")
;; (find-inkscapetut1page 13 "the color picker is updated")
;; (find-inkscapetut1text 13 "the color picker is updated")
;; (find-tutinkscape2page)
;; (find-tutinkscape2text)
;; (find-tutinkscape2page 2 "Rectangles")
;; (find-tutinkscape2text 2 "Rectangles")
;; (find-tutinkscape2page 4 "Scale rounded corners")
;; (find-tutinkscape2text 4 "Scale rounded corners")
;; (find-tutinkscape3page)
;; (find-tutinkscape3text)
;; (find-tutinkscape3page 2 "Paste Style (Shift+Ctrl+V)")
;; (find-tutinkscape3text 2 "Paste Style (Shift+Ctrl+V)")
;; (find-tutinkscape3page 3 "Drawing freehand and regular paths")
;; (find-tutinkscape3text 3 "Drawing freehand and regular paths")
;; (find-tutinkscape3page 4 "click and drag creates a smooth Bezier")
;; (find-tutinkscape3text 4 "click and drag creates a smooth Bezier")
;; (find-tutinkscape3page 5 "Editing paths")
;; (find-tutinkscape3text 5 "Editing paths")
;; (find-tutinkscape3page 6 "A node can be made cusp (Shift+C)")
;; (find-tutinkscape3text 6 "A node can be made cusp (Shift+C)")

(defun find-inks (fname) (find-bgprocess `("inkscape" ,fname)))
(defun find-inkv (fname) (find-bgprocess `("inkview" ,fname)))

(code-brfile 'find-inks :local 'brinksl :dired 'brinksd)
(code-brfile 'find-inkv :local 'brinkvl :dired 'brinkvd)

(defun find-nautilus (fname) (find-bgprocess `("nautilus" ,fname)))
(code-brfile 'find-nautilus :local 'brnaul :dired 'brnaud)






;; http://www.uff.br/eleicoesreitoria2006/normas/rgce.pdf
;;(code-xpdf      "rgce" "$S/http/www.uff.br/eleicoesreitoria2006/normas/rgce.pdf")
;;(code-pdftotext "rgce" "$S/http/www.uff.br/eleicoesreitoria2006/normas/rgce.pdf")
;; (find-rgcepage 1 "Contents")
;; (find-rgcetext "")



;; «rubyforth»  (to ".rubyforth")
;; (find-es "rubyforth" "rubyforth")
(code-c-d "rubyforth" "~/usrc/rubyforth/" :anchor)
(defun eepitch-rubyforth () (interactive)
  (ee-eepitch-comint (ee-rubyforthfile "") "rubyforth" "./rubyforth"))

;; (defun eepitch-rubyforth (&optional rubyforthargs)
;;   (interactive)
;;   (ee-eepitch-comint (ee-rubyforthfile "")
;;                      (format   "rubyforth%s" (or rubyforthargs ""))
;;                      (format "./rubyforth%s" (or rubyforthargs ""))))
;;
;; «pythonforth»  (to ".pythonforth")
;; (defun eepitch-pythonforth (&optional pythonforthargs)
;;   (interactive)
;;   (ee-eepitch-comint (ee-pythonforthfile "")
;;                      (format   "pythonforth%s" (or pythonforthargs ""))
;;                      (format "./pythonforth%s" (or pythonforthargs ""))))


;; «eepitch-rubyforth»  (to ".eepitch-rubyforth")
;; (find-es "fortho")
;; (find-es "fortho" "rubyforth-demos")
;; (find-es "fortho" "rubyforth")
;; (find-es "fortho" "rubyforth-angg")
;; (code-c-d "rubyforth" "/tmp/rubyforth/rubyforth-0.18/" :angg)
;; (find-rubyforthfile "")
;;   (ee-rubyforthfile "")
;; (code-c-d "rubyforth" "~/usrc/rubyforth-0.23/" :anchor)



;; «eepitch-dednat4»  (to ".eepitch-dednat4")
;; (find-angg "LUA/lua50init.lua" "load_dednat4")
;; (find-es "xypic" "eepitch-dednat4")
;; (find-es "dednat" "eepitch-dednat4")
;; (eepitch-kill)
;; (eepitch-dednat4)
(defun eepitch-dednat4 () (interactive)
  (eepitch-comint "dednat4" "lua51 -e load_dednat4() -i"))


;; «duoforths»  (to ".duoforths")
(code-c-d "duoforths" "~/duoforths/" :anchor)
;; (find-duoforthsfile "")

;; «rubyforth»  (to ".rubyforth")
;; (find-es "rubyforth" "rubyforth")

;; «dflua»  (to ".dflua")
;; (find-es "rubyforth" "dflua")
(code-c-d "dflua" "~/usrc/df-lua-0.0.3/")
(defun eepitch-dflua () (interactive)
  (ee-eepitch-comint ee-dfluadir "dflua" "lua51 forth.lua"))
;; (find-dfluafile "")
;; (find-es "rubyforth" "dflua")

;; «zbforth»  (to ".zbforth")
;; (find-es "rubyforth" "zbforth")
(code-c-d "zbforth" "~/usrc/zbforth-0.0.1d/")
(defun eepitch-zbforth () (interactive)
  (ee-eepitch-comint ee-zbforthdir "zbforth" "zbforth"))



;; «pulseaudio»  (to ".pulseaudio")
;; (find-es "pulseaudio" "pacmd")
;; (find-es "alsa" "pulseaudio")
;; (find-es "sound" "pulseaudio")
(defun eepitch-pacmd () (interactive) (eepitch-comint "pacmd" "pacmd"))
(defun find-pacmd0 (cmd)
  (apply 'find-sh0 (format "echo '%s' | pacmd" cmd) rest))
(defun find-pacmd (cmd &rest rest)
  (apply 'find-sh (format "echo '%s' | pacmd" cmd) rest))
;;
;; (find-pacmd "help")
;; (find-pacmd "play-file /usr/share/sounds/question.wav 0")





(defun eepitch-turquia () (interactive)
  (eepitch '(find-comintprocess "ssh turquia" "ssh llarc@turquia")))
(defun eepitch-brasil () (interactive)
  (eepitch '(find-comintprocess "ssh brasil"  "ssh llarc@brasil")))
(defun eepitch-jamaica () (interactive)
  (eepitch '(find-comintprocess "ssh jamaica" "ssh llarc@jamaica")))
(defun eepitch-canada () (interactive)
  (eepitch '(find-comintprocess "ssh canada"  "ssh llarc@canada")))
(defun eepitch-gana () (interactive)
  (eepitch '(find-comintprocess "ssh gana"    "ssh llarc@gana")))
(defun eepitch-papua () (interactive)
  (eepitch '(find-comintprocess "ssh papua"   "ssh llarc@papua")))

(code-c-d "turquia" "/scp:llarc@turquia:")
(code-c-d "brasil"  "/scp:llarc@brasil:")
(code-c-d "jamaica" "/scp:llarc@jamaica:")
(code-c-d "canada"  "/scp:llarc@canada:")
(code-c-d "gana"    "/scp:llarc@gana:")
;; (find-ganafile "")
(code-c-d "papua"   "/scp:llarc@papua:")

(defun eepitch-persephone () (interactive)
  (eepitch '(find-comintprocess "ssh persephone" "ssh edrx@persephone")))
(defun eepitch-horses () (interactive)
  (eepitch '(find-comintprocess "ssh horses" "ssh edrx@horses")))
(defun eepitch-gwen () (interactive)
  (eepitch '(find-comintprocess "ssh gwen" "ssh edrx@gwen")))
(defun eepitch-gwenv () (interactive)
  (eepitch '(find-comintprocess "ssh gwen" "ssh valeria@gwen")))
(defun eepitch-reef () (interactive)
  (eepitch-de '(find-comintprocess "ssh reef" "ssh edrx@reef")))

(code-c-d "persephone" "/scp:edrx@persephone:")
(code-c-d "horses" "/scp:edrx@horses:")
(code-c-d "gwen"  "/scp:edrx@gwen:")
(code-c-d "gwenv" "/scp:valeria@gwen:")
(code-c-d "reef" "/scp:edrx@reef:")


;; (find-persephonefile "")
;; (find-horsesfile "")
;; (find-gwenfile "")
;; (find-reeffile "")


;; «tramp-2.1.9»  (to ".tramp-2.1.9")
;; (find-es "emacs" "tramp-2.1.9")
;; (find-fline "~/usrc/tramp-2.1.9/lisp/")
;; (find-fline "~/usrc/tramp-2.1.9/info/")
;; (find-trampnode "Password caching")
;; (find-trampnode "Password caching" "`password.el'")
;; (find-node "(tramp)Password handling")
;; (find-trampfile "contrib/")
;; (find-trampfile "contrib/password.el")
;; (find-trampnode "Multi-hops")
;; (find-trampnode "Multi-hops" "\\\\`root\\\\'")
;; (find-evardescr 'tramp-default-proxies-alist)
;;
(code-c-d "tramp" "~/usrc/tramp-2.1.9/" "tramp")
(code-c-d "tramp" "~/usrc/tramp-2.1.9/" "~/usrc/tramp-2.1.9/info/tramp")
(require 'info)
;; (add-to-list         'Info-directory-list "~/usrc/tramp-2.1.9/info/")
;; (add-to-list 'Info-default-directory-list "~/usrc/tramp-2.1.9/info/")
;; (add-to-list 'load-path           "~/usrc/tramp-2.1.9/lisp/")
;; (add-to-list 'load-path           "~/usrc/tramp-2.1.9/contrib/")
;;
(setq tramp-default-proxies-alist nil)
(add-to-list 'tramp-default-proxies-alist '("\\.k8\\.com\\.br\\'" "\\`root\\'" "/ssh:%h:"))
(setq password-cache-expiry nil)
;;
;; (require 'tramp)
;; tramp-version
;; ^ should be 2.1.9
;; (find-efile "net/trampver.el" "defconst tramp-version")
;; ^ in cvs-emacs tramp is 2.0.55.



;; «varda»  (to ".varda")
(defun eepitch-varda () (interactive)
  (eepitch '(find-comintprocess "varda" "ssh edrx@varda")))
(defun eepitch-vardav () (interactive)
  (eepitch '(find-comintprocess "varda" "ssh valeria@varda")))
(code-c-d "varda"  "/scp:edrx@varda:/")
(code-c-d "varda"  "/ssh:edrx@varda:/")
(code-c-d "vardar" "/ssh:root@varda:/")
(code-c-d "vardav" "/scp:valeria@varda:")
;;
;; (find-vardafile "")
;; (find-vardarfile "")
;; (setenv "VA" "/ssh:edrx@varda:")
;; (setenv "VR" "/ssh:root@varda:")
;; (find-fline "$VR/")
;;
;; (find-es "emacs" "multi-hop")
;;(setq         tramp-default-proxies-alist nil)
;;(add-to-list 'tramp-default-proxies-alist '("varda\\'" "\\`root\\'" "/ssh:%h:"))
;;(add-to-list 'tramp-default-proxies-alist '("lugao\\'" "\\`root\\'" "/ssh:%h:"))
;; (find-angg ".emacs.templates" "find-newhost-links")

;; «find-newhost-links»  (to ".find-newhost-links")
;; (find-fline "/etc/hosts")
;; (find-newhost-links "gwen"  "192.168.1.101" "GW")
;; (find-newhost-links "varda" "192.168.1.100" "VA")
;; (find-newhost-links "flaviobia" "192.168.0.198")
;; (find-newhost-links "flaviobia" "192.168.1.126")

;; «apt-cacher»  (to ".apt-cacher")
;; (find-es "debrepository" "apt-cacher")
;; (to "LR-and-RE-and-RR")
(code-c-d "aptcacher" "/var/cache/apt-cacher/")
;; (find-aptcacherfile "")
;; (find-aptcacherfile "packages/")
;; (find-aptcachersh "find * | sort")
;; (find-aptcachersh "du -c")
;; (find-fline "/var/log/apt-cacher/")
;; (find-sh "ps ax")
;; (find-sh "ps ax | grep cache")
;; (find-sh "sudo /etc/init.d/apt-cacher restart")




(code-c-d "RETRO" "~/RETRO/" :anchor)


;; This is useful for some situations in which tramp has bugs
;; (find-node "(emacs)Backup")
(defun bup () (interactive)
  (make-local-variable 'backup-inhibited)
  (setq backup-inhibited (not backup-inhibited))
  (message "backup-inhibited is now %S" backup-inhibited))







;; «blogme4-texi»  (to ".blogme4-texi")
;; (find-blogme4 "doc/blogme4.b4texi")
;; (find-efunction 'ee-gformat)

(defun ee-delete-and-extract-line-body ()
  (ee-no-trailing-nl
   (ee-no-properties
    (ee-delete-and-extract-line 1))))

(defun ee-gformat00 (pat fmt)
  `(lambda (str) (replace-regexp-in-string ,pat ,fmt str 'fixedcase)))

(defun ee-gformat1 (fmt)
  (ee-gformat00 "\\`[ \t]*\\([^ \t]+\\)[ \t]+\\(.*\\)\\'" fmt))

(defun ee-wrap-line (fun)
  (insert (funcall fun (ee-delete-and-extract-line-body)))
  (next-line 1))

(defun nd () (interactive)
  (ee-wrap-line (ee-gformat1
" # «.\\1»	(to \"\\1\")
\[ANODE «\\1»  (to \".\\1\")
  (find-blogme4node \"\\2\")
  [J \\2]
\[LE'
]
]\n
")))


;; (find-blogme4 "doc/blogme4.b4texi")
;; (find-find-links-links "b4texi" "dir stem")
;; (find-b4texi-links)
;; (find-b4texi-links "blogme4/doc/" "eev")

(defun find-b4texi-links (&optional dir stem &rest rest)
  "Visit a temporary buffer containing hyperlinks for b4texi."
  (interactive)
  (setq dir (or dir "{dir/}"))
  (setq stem (or stem "{stem}"))
  (apply 'find-elinks `(
    ;; Convention: the first sexp always regenerates the buffer.
    (find-b4texi-links ,dir ,stem ,@rest)
    (find-angg ,(format "%s%s.b4texi" dir stem))
    ;; Body:
    ""
    ,(ee-template `(dir stem ("foo" ,"AAA")) "\
\[#
\(defun c () (interactive)
  (find-sh \"cd ~/{dir} &&
            blogme4.lua -o {stem}.texi -i {stem}.b4texi &&
            makeinfo {stem}.texi\"))
\(defun i () (interactive) (find-node \"({stem})Top\"))
\(defun ii () (interactive) (find-angg \"{dir}{stem}.b4texi\"))
;;
;; (find-sh0 \"cd ~/info/ && rm -v {stem}.info\")
;; (find-sh0 \"cd ~/info/ && ln -s ../{dir}{stem}.info .\")
;; (find-angg \"info/\")
;; (find-node \"({stem})Top\")
;;
;; (find-blogme4 \"texinfo.lua\")
;; (find-angg \".emacs\" \"nd\")
#]
\[# Nodes:
#]


\[TOP {stem} [J The {stem} manual]
  body
\]
\[lua:
  tt.srclink_fmt  = '(find-angg \"{dir}{stem}.b4texi\" \"%s\")'
  tt.infolink_fmt = '(find-node \"({stem})%s\")'
\]

\[lua: blogme_output = tt:full_texi() ]
\[#
 # Local Variables:
 # coding: raw-text-unix
 # modes: (fundamental-mode blogme-mode)
 # End:
#]
")
    ) rest))

;; (find-b4texi-links "blogme4/doc/" "eev")
;; (find-angg "blogme4/doc/eev.b4texi")



(code-c-d "apachedoc" "/usr/share/doc/apache2-doc/manual/en/")
;; (find-apachedocfile "")
;; (find-apachedocfile "mod/")
;; (find-apachedocw3m "mod/mod_rewrite.html")

;; «quadro»  (to ".quadro")
;; «olympus»  (to ".olympus")
;; (find-books "__comp/__comp.el" "gersting")
(code-c-d "olymp" "/tmp/pen/DCIM/100OLYMP/")
(code-c-d "QUADRO" "~/FOTOS/QUADRO/")
(defun find-QUADRO (fname &rest rest) (xz (ee-QUADROfile fname)))
;; (find-QUADROfile "")
;; (find-QUADRO "")
;; (find-QUADRO "2011-09-29-MD-1.jpg")
;; (find-QUADRO "2011-09-29-MD-2.jpg")
;; (find-QUADRO "2011-09-29-MD-3.jpg")
;; (find-QUADRO "2011-09-30-GA-1.jpg")
;; (find-QUADRO "2011-09-30-GA-2.jpg")
;; (find-QUADRO "2011-10-05-MD-1.jpg")
;; (find-QUADRO "2011-10-05-MD-2.jpg")
;; (find-QUADRO "2011-10-05-MD-3.jpg")
;; (find-QUADRO "2011-10-06-MD-1.jpg")
;; (find-QUADRO "2011-10-06-MD-2.jpg")
;; (find-QUADRO "2011-10-06-MD-3.jpg")
;; (find-QUADRO "2011-10-06-MD-4.jpg")
;;
;; (find-QUADRO "2011-10-13-MD-1.jpg")
;; (find-QUADRO "2011-10-13-MD-2.jpg")
;; (find-QUADRO "2011-10-13-MD-3.jpg")
;; (find-QUADRO "2011-10-13-MD-4.jpg")
;; (find-QUADRO "bel-subconjunto.jpg")
;; (find-QUADRO "bel-tabela-pertinencia.jpg" "tabela" "diagrama de arvore")
;; (find-olympfile "")
;; (find-pen-links)
;; (find-sh "dmesg | grep sd")
;; (find-sh "sudo mount -o uid=$UID /dev/sdb1 /tmp/pen/")
;; (find-sh0 "sudo umount /tmp/pen")
' (find-3 ' (find-olympfile "")
	  ' (find-QUADROfile "")
            )
;; (find-QUADROfile "" "2011-10-06-MD-1")


;; «scala»  (to ".scala")
;; (find-es "scala")
(defun eepitch-scala () (interactive)
  (eepitch-de '(find-comintprocess "scala" "scala")))

;; «clojure»  (to ".clojure")
;; (find-es "clojure")
(defun eepitch-clojure () (interactive)
  (eepitch '(find-comintprocess "clojure" "clojure -r")))

;; «J»  (to ".J")
;; (to "ee-rstdoc-:J")
;; (find-es "apl" "J")
;; (find-es "apl" "J-primer")
;; (find-es "apl" "learning-J")
(code-c-d "J"         "~/usrc/j9.5/")
(defun eepitch-J () (interactive)
  (eepitch-comint "J" "~/usrc/j9.5/jconsole.sh"))

;; (code-c-d "Jlearning" "~/usrc/j/j701/addons/docs/help/learning/")
(code-c-d "Jhelp" "$S/https/www.jsoftware.com/help/")
(code-c-d "Jsrc"  "~/usrc/jgplsrc/")
;; (find-Jhelpfile "")
;; (find-Jprimerfile "")

;; (find-Jfile "")
;; (find-Jdocsfile "")
;; (find-Jhelpfile "")
;; (find-Jprimerfile "")
;; (find-Jsrcfile "")
;; (find-Jlearningfile "")
;; (find-Jlearningw3m "contents.htm")
;; (find-Jhelpfile "")
;; (find-Jhelpw3m "dictionary/contents.htm")
;; (find-Jhelpw3m "jforc/contents.htm")
;; (find-Jhelpw3m "phrases/contents.htm")
;; (find-Jhelpw3m "user/boxdraw.htm")
;; (find-Jhelpw3m "user/contents.htm")
;; (find-Jhelpw3m "user/emacs.htm")


;; «octave»  (to ".octave")
;; (find-es "octave")
(code-c-d "octave"    "/usr/share/octave/3.2.4/m/" "octave")
(code-c-d "octavefaq" "/usr/share/octave/3.2.4/m/" "Octave-FAQ")
(defun eepitch-octave () (interactive) (eepitch-comint "octave" "octave"))
;; (find-octavefile "")
;; (find-octavenode "")
;; (find-octavenode "Matrix Manipulation")
;; (find-octavefaqnode "")

;; «R»  (to ".R")
;; (find-es "r" "pager")
;; (find-es "r" "R-sample")
' (defun eepitch-R () (interactive)
    (eepitch `(let ((process-environment `("PAGER=cat" . ,process-environment)))
                (find-comintprocess "R" "R"))))

;; «joy»  (to ".joy")
;; (find-es "joy" "joy")
;; (find-joyfile "")
(code-c-d "joy" "~/usrc/joy/")
(defun eepitch-joy () (interactive)
  (eepitch-comint-at ee-joydir "joy" "joy"))




;; «cc-mode»  (to ".cc-mode")
;; (find-es "emacs" "C-mode")
(code-c-d "ccmode" (ee-efile "progmodes/") "ccmode")
(setq-default c-electric-flag nil)




;; ;; «eevbuild»  (to ".eevbuild")
;; ;; (find-es "eev" "dh-make-2")
;; ;; (find-dhmake-links "eev" "eevbuild" "20110612")
;; ;; (find-dhmake-links "eev" "eevbuild" "20120404")
;; (code-c-d "eevbuild"   "~/usrc/eev/eev-0.1.20110612/")
;; (code-c-d "eevbuildd"  "~/usrc/eev/eev-0.1.20110612/debian/")
;; (code-c-d "eevbuilddd" "~/usrc/eev/eev-0.1.20110612/debian/eev/")
;; (code-c-d "eevbuildu"  "~/usrc/eev/eev-unpacked/")
;; ;; (find-eevbuildfile   "")
;; ;; (find-eevbuilddfile  "")
;; ;; (find-eevbuildddfile "")
;; ;; (find-eevbuildufile  "")
;; ;; (find-eevbuildddsh "find * | sort")
;; ;; (find-eevbuildush  "find * | sort")
;; ;; (find-status   "eev")
;; ;; (find-vldifile "eev.list")
;; ;; (find-udfile   "eev/")
;; ;; (find-fline "/etc/emacs/site-start.d/90eev.el")
;; 
;; ;; «eev-puro»  (to ".eev-puro")
;; ;; (find-angg ".emacs.templates" "find-dhmake-links")
;; ;; (find-dhmake-links "eev-puro" "eevpuro" "20111114")
;; ;; (find-dhmake-links "eev-puro" "eevpuro" "20111204")
;; ;; (find-dhmake-links "eev-puro" "eevpuro" "20111230")
;; ;; (find-eepitch-buffer "shell" "ssh -X valeria@gwen emacs")
;; 
;; ;; «eev-puro-deb»  (to ".eev-puro-deb")
;; ;; (find-angg "eev-puro/do-build.sh")
;; ;; (find-sh "~/eev-puro/do-build.sh")
;; ;; (find-angg "eev-puro/do-install.sh")
;; ;; (find-sh "~/eev-puro/do-install.sh")
;; ;; (find-eepitch-buffer "eshell" "cp -v ~/usrc/eev-puro/eev*.deb $RE/tmp/")
;; ;; (find-eepitch-buffer "RE" "sudo dpkg -i /tmp/eev*.deb")
;; ;; (find-eepitch-buffer "shell" "ssh -X valeria@gwen emacs")
;; ;; (find-anggfile "eev-puro/.emacs")
;; ;; (find-fline "$RE/usr/share/eev-puro/.emacs")
;; ;;
;; ;; (find-status   "eev-puro")
;; ;; (find-vldifile "eev-puro.list")
;; ;; (find-udfile   "eev-puro/")
;; ;; (find-angg "eev-puro/")
;; ;; (find-angg "eev-puro/debian/")
;; ;; (find-angg "eev-puro/debian/rules")
;; ;;
;; ;; (find-dhmake-links "eev-puro" "eevpuro" "20111204")
;; ;; (find-dhmake-links "eev-puro" "eevpuro" "20111114")
;; ' (ee-cp     "~/usrc/eev-puro/eev-puro_0.1.20111114_all.deb"
;; 	 (ee-twusfile "debian/eev-puro_0.1.20111114_all.deb")
;; 	 'over)
;; ;; (find-angg "eev-puro/")
;; ;; (find-angg "eev-puro/.emacs")
;; ;; (find-fline "/usr/share/eev-puro/")
;; ;; (find-fline "/usr/share/eev-puro/mini-lua-intro.e")
;; (code-c-d "eevpuro"    "~/usrc/eev-puro/eev-puro-0.1.20111114/")
;; (code-c-d "eevpurod"   "~/usrc/eev-puro/eev-puro-0.1.20111114/debian/")
;; (code-c-d "eevpurodd"  "~/usrc/eev-puro/eev-puro-0.1.20111114/debian/eev-puro/")
;; (code-c-d "eevpurounp" "~/usrc/eev-puro/eev-puro-unpacked/")
;; ;; (find-eevpurofile    "")
;; ;; (find-eevpurodfile   "")
;; ;; (find-eevpuroddfile  "")
;; ;; (find-eevpurounpfile "")
;; ;; (find-eevpurodsh   "find * | sort")
;; ;; (find-eevpuroddsh  "find * | sort")
;; ;; (find-eevpurounpsh "find * | sort")
;; ;; (find-status   "eev-puro")
;; ;; (find-vldifile "eev-puro.list")
;; ;; (find-udfile   "eev-puro/")


;; «LR-and-RE-and-RR»  (to ".LR-and-RE-and-RR")
;; (to "apt-cacher")
;; (find-es "emacs" "multi-hop")
;; (find-es "kernel" "lugao")
;; (find-es "debrepository" "apt-cacher")
;; LR: localhost as root
;; RE: remote as edrx
;; RR: remote as root

;; (find-fline "/etc/hosts")

;; (setenv "LR" "/sudo::")
;; (setenv "RE"  "/ssh:edrx@lugao:")
;; (setenv "RR" "/sudo:root@lugao:")
;; (code-c-d "LR" (ee-expand "$LR/"))
;; (code-c-d "RE" (ee-expand "$RE/"))
;; (code-c-d "RR" (ee-expand "$RR/"))
;; (defun eepitch-RE () (interactive) (eepitch-comint "lugao" "ssh edrx@lugao"))
;; (defun eepitch-RR () (interactive) (eepitch-comint "lugao/R" "ssh edrx@lugao"))

;; (find-LRfile "etc/")
;; (find-REfile "etc/")
;; (find-RRfile "etc/")
;; (find-lugaorfile "")
(defun eepitch-lugao () (interactive) (eepitch-comint "lugao" "ssh edrx@lugao"))

;; «ee-tramp-proxy»  (to ".ee-tramp-proxy")
(defun ee-tramp-proxy (host proxy)
  (setq         tramp-default-proxies-alist nil)
  (add-to-list 'tramp-default-proxies-alist
	       `(,(format "\\`%s\\'" host) "\\`root\\'" ,proxy))
  tramp-default-proxies-alist)

;; (describe-variable 'tramp-default-proxies-alist)
(defun find-RR3 (fname &rest rest)
  (find-3 `(find-fline ,(format "/%s" fname) . ,rest)
	  `(find-RRfile ,fname)))

(defun eepitch-comint-de-at (dir name program-and-args)
  (ee-at0 dir `(eepitch-comint-de ,name ,program-and-args)))

(defun eepitch-gdb-lua () (interactive)
  (eepitch-comint-de "gdb lua" `("gdb" ,(ee-lua51file "bin/lua"))))

;; (find-efunction 'find-dn4tex-links)
;; (find-dn4tex-links)
(defun wrobak (n code)
  "With the rest of this buffer as a new kill, execute CODE"
  (next-line n)
  (eek "C-a C-SPC M-> C-x C-x M-w")
  (eval code))


(seen 13050)


;; «ee-splitn»  (to ".ee-splitn")
;; «ee-wrapt»  (to ".ee-wrapt")
;; «ee-wrapc»  (to ".ee-wrapc")

;; (describe-function 'ee-splitn)
;; (describe-function 'ee-zip)
;; (describe-function 'ee-wrapt)
;; (describe-function 'ee-wrapc)
;; (find-efunction 'ee-wrap-file)
;; (find-efunction 'ee-pph)
;; (find-efunction 'ee-pp0)
;; (find-efunction 'find-elinks)
;;
;; (find-efunction 'ee-pp0)
;; (find-efunction 'ee-pph)
;; (find-efunction 'find-elinks)

;; (find-eev "eev-insert.el" "ee-wrap-file")
;; (find-eev "eev-insert.el" "ee-delete-extract-wrap")
;; (find-eev "eev-insert.el" "ee-delete-and-extract-line")
;; (find-eev "eev-insert.el" "ee-links-to-string")

;; mkto needs to be rewritten.
;; find-elinks needs to be rewritten.
;; ee-zipp is a wild hack, incomplete.
;; intention: uppercase -> quoted in patterns
(defun ee-zipp (list1 list2)
"Example: (ee-zipp '(\"a\" \"b\") '(\"aa\" \"bb\"))
            --> ((a aa) (b bb) (c cc))?"
  (if list1
      `((,(car list1)          ,(car list2))
	(,(upcase (car list1)) ,(car list2))
	. ,(ee-zip (cdr list1) (cdr list2)))))



(code-c-d "libc" "/usr/share/doc/glibc-doc-reference/html/" "libc")
;; (find-libcfile "")
;; (find-libcnode "")





;; «binutils»  (to ".binutils")
;; (find-es "anatocc" "binutils")
(code-c-d "binutils" "/usr/lib/ldscripts/" "binutils")
;; (find-binutilsfile "")
;; (find-binutilsnode "")

;; «wget»  (to ".wget")
;; (find-es "wget")
(code-c-d "wget" "$S/" "wget")
;; (find-wgetnode "")




;; «ee-popup»  (to ".ee-popup")
;; (find-es "fvwm" "style:bare")
;; (find-es "x" "xpad" "ffee99")
;; (find-es "console" "terminfo")
;; (find-man "5 terminfo" "cursor_invisible")
;; (find-man "1 infocmp")
;; (find-sh "infocmp xterm" "civis=")
;;
(defun ee-popup-prepare (delay str)
  (ee-write-string str "/tmp/msg")
  (ee-write-string
   (format "#!/bin/sh
       cat /tmp/msg
       echo -n '\e[?25l'
       sleep %f" delay)
   "/tmp/msg.sh" "755"))

(defun ee-popup-run (args)
  (find-sh0 (format "xterm -class Bare %s -e /tmp/msg.sh" args)))

(defun ee-popup-size (str)
  (let ((width (apply 'max (mapcar 'length (split-string str "\n"))))
	(height (+ 1 (length (replace-regexp-in-string "[^\n]+" "" str)))))
    (format "%dx%d" width height)))

(defun ee-popup-args (where str)
  (format "-bg '#ffee99' -fg black -geometry %s%s"
	  (ee-popup-size str) where))

(defun ee-popup0 (delay where str)
  (ee-popup-prepare (or delay 1) str)
  (ee-popup-run (ee-popup-args where str)))

;; (ee-popup0 2 "+0+0" "foo\nbar plic")
;; (ee-popup0 1 "+100+30" "foo\nbar plic")



;; «find-wset»  (to ".find-wset")
;; (find-eev "eev-multiwindow.el" "find-wset")



;; «inet-addr»  (to ".inet-addr")
;; (find-angg "bin/etc.lua" "inet_addr")
;; (inet-addr)
(defun inet-addr (&optional interface)
  (find-sh0 (format "/sbin/ifconfig %s | etc.lua inet_addr"
                    (or interface "wlan0"))))


;; «cleanindex»  (to ".cleanindex")
;; (find-angg "bin/etc.lua" "cleanindex")
(defun cleanindex (start end)
  (interactive "r")
  (shell-command-on-region
   start end
   (format "etc.lua cleanindex %s %s" ee-page-stem ee-page-offset)
   nil 'replace))




;; «virtualbox»  (to ".virtualbox")
;; (find-es "qemu" "virtualbox")
(code-xpdf      "virtualboxmanual" "/usr/share/doc/virtualbox/UserManual.pdf")
(code-pdftotext "virtualboxmanual" "/usr/share/doc/virtualbox/UserManual.pdf" 0)
;; (find-virtualboxmanualpage 1 "Contents")
;; (find-virtualboxmanualpage 2 "Index")
;; (find-virtualboxmanualtext "")




;; «gab»  (to ".gab")
;; (find-angg "gab/")
;; (find-angg "eev-puro/.emacs")
;; (find-fline "/usr/share/eev-puro/gab.lua")
;; (find-fline "/usr/share/eev-puro/gab-tests.lua")
;; (find-dn5 "gab.lua")
;; (find-dn5 "gab-tests.lua")
;;
(defun eepitch-gab () (interactive)
  (eepitch-comint-at "~/dednat5/" "gab.lua" "lua5.1 -l gab"))
(defun eepitch-gab () (interactive)
  (eepitch-comint-at "~/gab/" "gab.lua" "lua5.1 -l gab"))

(code-c-d "gab" "~/gab/" :anchor)
;; (find-gab "")



;; «find-rawcat»  (to ".find-rawcat")
;; (find-efunction 'find-eoutput-reuse)
;; (find-rawcat "~/eev-puro/mini-lua-intro.e")
;; (find-rawcat "~/eev-puro/mini-lua-intro.e" "intro:PP")
;;
(defun find-rawcat (fname &optional tag &rest rest)
  (apply
   'find-eoutput-reuse
   (format "*cat %s*" fname)
   `(progn
      (set-buffer-file-coding-system 'raw-text-unix 'force)
      (set-buffer-multibyte nil)
      (insert (ee-read-file ,fname)))
   (if (stringp tag) (ee-format-as-anchor tag))
   rest))


(defun raw-text-unix0 () (interactive)
  (set-buffer-file-coding-system 'raw-text-unix 'force)
  (set-buffer-multibyte nil))

(defun raw-text-unix (&optional arg) (interactive "P")
  (set-buffer-file-coding-system 'raw-text-unix 'force)
  (set-buffer-multibyte nil)
  (insert (format "
%sLocal Variables:
%scoding: raw-text-unix
%sEnd:
" ee-hyperlink-prefix ee-hyperlink-prefix ee-hyperlink-prefix)))






;; (find-efunction 'ee-wrap-code-c-d)
(defun ee-wrap-mkdir ()
  (interactive)
  (ee-wrapt "d" "\
rm -Rv {d}
mkdir  {d}
cd     {d}"))


;; (find-status   "coreutils")
;; (find-vldifile "coreutils.list")
;; (find-udfile   "coreutils/")
(code-c-d "coreutils" "/usr/share/doc/coreutils/" "coreutils")
;; (find-coreutilsfile "")
;; (find-coreutilsnode "")

(defun card () (interactive) (find-angg ".asoundrc"))


;; «estagios»  (to ".estagios")
;; (code-c-d "purouff-tk-"
;; 	  "/ftp:purouff@estagios.purouff.tk:/public_html/")
;; (code-c-d "estagios-purouff-tk-"
;; 	  "/ftp:purouff@estagios.purouff.tk:/public_html/estagios/")
;; (setenv   "ESTAGIOS"
;; 	  "/ftp:purouff@estagios.purouff.tk:/public_html/estagios/")
;; (defun eepitch-ftpestagios ()
;;   (interactive) (eepitch-comint "ftp estagios" "pftp estagios.purouff.tk"))
;; (find-purouff-tk-file          "")
;; (find-estagios-purouff-tk-file "")
;; (find-puroufftkfile "")
;; (find-puroufftkfile "estagios/")






(defun ee-evincepage (fname &optional page)
  `("evince"
    ,@(if page (list (format "--page-label=%d" page)))
    ,fname))

(defun find-evincepage  (fname &optional page &rest rest)
  (find-bgprocess (ee-evincepage fname page)))


;; «chomsky» (to ".chomsky")
;; (find-fline "/sda5/torrents/Consenso_fabricado/")
;; (find-fline "/sda5/videos/" "Consenso_Fabricado_-_Chomsky_e_a_M_dia_TVE_VHS-1IFKcdwCpwM.mp4")
;; (find-fline "/sda5/videos/Consenso_Fabricado_-_Chomsky_e_a_M_dia_TVE_VHS-1IFKcdwCpwM.mp4")

(code-video "chomskyleg" "/sda5/DVDs/chomsky-leg/chomsky-leg.avi")
(code-video "consenso" "/sda5/torrents/Consenso_fabricado/Consenso Fabricado - Chomsky e a Midia (TVE, VHS).avi")
(code-video "cf"       "/sda5/torrents/Consenso_fabricado/Consenso Fabricado - Chomsky e a Midia (TVE, VHS).avi")
(code-video "cf"       "/sda5/videos/Consenso_Fabricado_-_Chomsky_e_a_M_dia_TVE_VHS-1IFKcdwCpwM.mp4")
(code-video "cf"  "/sda1/home/videos/Consenso_Fabricado_-_Chomsky_e_a_M_dia_TVE_VHS-1IFKcdwCpwM.mp4")
;; (find-chomskyleg)
;; (find-consenso)
;; (find-consenso "12:53" "Foucault")

;; (eev-avadj-mode 1)
;; (find-consenso t)
;; (find-cf t)
;; 12:53 foucault
;; 2:00:00

;; (find-anggfile "manufacturing.srt" "but, at the core, sort of similar values")
(defun find-mcsrt (&rest pos) (apply 'find-fline "~/manufacturing.srt" pos))
;; (find-mcsrt "but, at the core, sort of similar values")
;; (find-es "chomsky")




;; «ee-rmprefix» (to ".ee-rmprefix")
;; «ee-killurl» (to ".ee-killurl")
(defun ee-rmprefix (prefix fname &optional newprefix)
  (setq prefix (ee-expand prefix))
  (setq fname  (ee-expand fname))
  (if (ee-prefixp prefix fname)
      (concat (or newprefix "")
	      (ee-remove-prefix prefix fname))))

(defun ee-fname-to-url0 (fname)
  (or (ee-rmprefix  "$S/http/" fname "http://")
      (ee-rmprefix "$S/http/s" fname "https://")
      (ee-rmprefix   "~/TH/L/" fname "http://anggtwu.net/")
      (ee-rmprefix   "~/TH/R/" fname "http://anggtwu.net/")
      (ee-rmprefix        "~/" fname "http://anggtwu.net/")
      (ee-rmprefix  ee-twusdir fname "http://anggtwu.net/")
      (ee-rmprefix  ee-twupdir fname "http://anggtwu.net/")
      ))

(defun ee-fname-here ()
  (or (and (eq major-mode 'dired-mode) (ee-dired-to-fname))
      buffer-file-name
      default-directory))

(defun kill-and-message (string)
  (if (not (stringp string))
      (error "Not a string: %S" string))
  (kill-new string)
  (message "Killing: %S" string))

(defun kill-pwd () (interactive)
  (kill-and-message default-directory))
(defalias 'kd 'kill-pwd)

(defun kill-url (fname)
  (interactive (list (ee-fname-here)))
  (kill-and-message (ee-fname-to-url0 fname)))




(defun ee-suffixp (suffix str)
  "Return t if STR ends with PREFIX."
  (let ((len (length suffix)))
    (and (<= len (length str))
	 (equal suffix (substring str (- len) (length str))))))

(defun ee-remove-suffix (suffix str)
  "Example: (ee-remove-prefix \"EF\" \"abcdef\") --> \"abcd\""
  (substring str 0 (- (length suffix))))

(defun ee-rmsuffix (suffix str)
  (and str
       (ee-suffixp suffix str)
       (ee-remove-suffix suffix str)))

(defun ee-rmprefixsuffix (prefix suffix fname)
  (let* ((fname-  (and fname  (ee-rmprefix prefix fname)))
	 (fname-- (and fname- (ee-rmsuffix suffix fname-))))
    fname--))

' (

;; (find-angg ".emacs.templates" "find-angg-upload-links")
;; (find-angg ".emacs.templates" "find-escript-upload-links")

(defun ee-fname-to-astem (fname)
  (ee-rmprefixsuffix "~/" "" fname))
(defun ee-fname-to-bstem (fname)
  (ee-rmprefixsuffix "~/TH/" ".blogme" fname))
(defun ee-fname-to-estem (fname)
  (ee-rmprefixsuffix "~/TH/" ".blogme" fname))

)



(defun kill-but-last-word () (interactive)
  (insert (car (nreverse (ee-split (ee-this-line-extract))))))



;; «cow-and-mow» (to ".cow-and-mow")
;;
(defun copy-line-to-other-window () (interactive)
  (let ((line-move-visual nil))
    (eek "C-a C-SPC <down> M-w M-o C-a C-y <<recenter>> M-- M-1 M-o")))

(defun move-line-to-other-window () (interactive)
  (let ((line-move-visual nil))
    (eek "C-a C-SPC <down> C-w M-o C-a C-y <<recenter>> M-- M-1 M-o")))

(defalias 'cow 'copy-line-to-other-window)
(defalias 'mow 'move-line-to-other-window)

;; «cuow» (to ".cuow")
(defun cuow () (interactive)
  "Copy URL to other (i.e., next) window"
  (let* ((fname (ee-dired-to-fname))
	 (url (ee-rmprefix "~/" fname "http://anggtwu.net/")))
    (eek "M-o C-a")
    (insert (format "  %s\n" url))
    (eek "M-- M-o <down>")
    ))






;; (find-angg ".zshrc" "makeL")
;;
(defun ee-in-eepitch-target (code)
  (eepitch-prepare)
  (save-selected-window
    (select-window (eepitch-target-window))
    (eval code)))

(defun makeR1C (relfname)
  (eepitch-shell)
  (ee-in-eepitch-target '(eek "M->"))
  (eev (format "makeR1C %s" relfname))
  (eepitch-line "ee"))

;; (makeR1C "tmp.html")

(defun eepitch-shell12 () (interactive)
  (find-wset "_13o_2o_o"
    ' (progn (eepitch-shell)
	     (eepitch-kill)
	     (eepitch-shell2)
	     (eepitch-kill)
	     (eepitch-shell)
	     (eepitch-shell2)
	     )
    ' (find-ebuffer "*shell*")
    ' (find-ebuffer "*shell 2*")
    )
  )

;; (find-enode "Useless Whitespace")
(defun show-trailing-whitespace () (interactive)
  (setq show-trailing-whitespace (not show-trailing-whitespace))
  (message "%S" `(setq show-trailing-whitespace ,show-trailing-whitespace)))



;; «tramp-no-remote-shells» (to ".tramp-no-remote-shells")
;; From: https://gist.github.com/4002203
;;       https://gist.github.com/legumbre
;;
'
(defadvice shell (around prevent-remote-shells-from-tramp compile activate)
  (let ((default-directory (if (file-remote-p default-directory)
                               "~/" default-directory)))
    ad-do-it))



;; «screencasts» (to ".screencasts")
;; (find-es "emacs" "adjust-geometry")
;; (find-es "emacs" "frame-geometry")
;; (find-es "fvwm" "resize")
;; x--: (find-sh0 "FvwmCommand 'Current Resize w-1c keep'")
;; x++: (find-sh0 "FvwmCommand 'Current Resize w+1c keep'")
;; y--: (find-sh0 "FvwmCommand 'Current Resize keep w-1c'")
;; y++: (find-sh0 "FvwmCommand 'Current Resize keep w+1c'")
;;      (find-sh0 "FvwmCommand 'Current Resize keep w+1c'")
;;      (find-sh0 "FvwmCommand 'Current Resize  80c 37c'")
;;      (find-sh0 "FvwmCommand 'Current Resize 167c 46c'")
;;      (find-sh0 "FvwmCommand 'Current Resize 123c 38c'")
;; (frame-parameter (selected-frame) 'width)
;; (frame-parameter (selected-frame) 'height)

(defun frame-width-height ()
  (format "%dc %dc"
	  (frame-parameter (selected-frame) 'width)
	  (frame-parameter (selected-frame) 'height)))
(defun frame-width-height-set (str)
  (find-sh0 (format "FvwmCommand 'Current Resize %s'" str)))
(defun frame-width--  () (frame-width-height-set "w-1c keep"))
(defun frame-width++  () (frame-width-height-set "w+1c keep"))
(defun frame-height-- () (frame-width-height-set "keep w-1c"))
(defun frame-height++ () (frame-width-height-set "keep w+1c"))
(defun framegeom (&optional h v)
  (interactive "P")
  (cond ((and (numberp h) (numberp v))
	 (frame-width-height-set (format "%dc %dc" h v)))
	((eq h 'big)   (framegeom 167 46))
        ((eq h 'v)     (framegeom  80 46))
        ((eq h 'small) (framegeom  80 37))
	((eq h 1)      (framegeom 'v))
	((eq h nil)    (framegeom 'small))
	(t (error))))

;; (frame-width--)
;; (frame-width++)
;; (frame-height--)
;; (frame-height++)
;; (frame-width-height)
;; (frame-width-height-set " 80c 37c")
;; (frame-width-height-set "167c 46c")

(defun ee-aligned (pow2 n) (= 0 (logand n (- pow2 1))))
(defun ee-align   (pow2 n)
  "Increase N until it becomes a multiple of POW2."
  (while (not (ee-aligned pow2 n)) (setq n (1+ n)))
  n)

(defun ee-scast-geometry0 (h v)
  "Warning: this assumes `-style bare -fn 6x13'!"
  (format "%dx%d+0+0" (+ 18 (* 6 h)) (* 13 v)))

(defun ee-scast-geometry (ah av)
  (ee-scast-geometry0
   (ee-align ah (frame-parameter (selected-frame) 'width))
   (ee-align av (frame-parameter (selected-frame) 'height))))

(setq ee-scast-cmdline
 "avconv -loglevel quiet -r 5 -s $GEOMETRY -f x11grab -i $DISPLAY /tmp/out.mp4")

(defun ee-scast-start () (interactive)
  (find-sh0 "rm -f /tmp/out.mp4")
  (setenv "GEOMETRY" (ee-scast-geometry 2 2))
  (find-bgprocess ee-scast-cmdline))

(defun ee-scast-stop  () (interactive)
  (find-sh0 "killall avconv"))

;; (setenv "GEOMETRY" (ee-scast-geometry 1 1))
;; (ee-scast-start)
;; (ee-scast-stop)
;; (find-fline "/tmp/" "out.mp4")
;; (find-video "/tmp/out.mp4")

' (defalias 'r 'ee-scast-start)
' (defalias 's 'ee-scast-stop)



;; «git» (to ".git")
;; (find-es "git" "git-doc")
(code-c-d "gitdoc" "/usr/share/doc/git-doc/")

;; «git-internals» (to ".git-internals")
;; (find-books "__comp/__comp.el" "git")
;; (code-xpdf      "gitinternals" "~/books/__comp/chacon__git_internals.pdf")
;; (code-pdftotext "gitinternals" "~/books/__comp/chacon__git_internals.pdf" 0)
;; (find-gitinternalspage  41 "The Treeish")
;; (find-gitinternalstext  41 "The Treeish")

;; «magit»  (to ".magit")
;; (find-es "magit")
;; (find-epackage-links 'magit)
;; (find-epackage       'magit)
(code-c-d "magit" "~/.emacs.d/elpa/magit-20210421.1731/" "magit")
;; (find-magitfile "")
;; (find-magitnode "")

;; (find-es "git" "magit")
(code-video "meetmagit" "/sda5/videos/meet_magit_504x380.flv")
;; (find-meetmagit)
;; (find-meetmagit  "7:02" "Other branches")
;; (find-meetmagit  "8:13" "SHA")
;; (find-meetmagit "10:20" "tree")
;; (find-magitfile "")
;; (find-magitfile "magit.el")
;; (find-magitnode "Top")


;; «pro-git» (to ".pro-git")
;; (find-books "__comp/__comp.el" "git-progit")
;; (find-books "__comp/__comp.el" "git-progit2")
(code-pdf       "progit"  "~/books/__comp/chacon__pro_git.pdf")
(code-pdftotext "progit"  "~/books/__comp/chacon__pro_git.pdf" 24)
(code-pdf-page "progit2" "$S/https/github.com/progit/progit2/releases/download/2.1.109/progit.pdf")
(code-pdf-text "progit2" "$S/https/github.com/progit/progit2/releases/download/2.1.109/progit.pdf" 5)
;; (find-progitpage)
;; (find-progittext)
;; (find-progitpage (+ 24  47) "3 Git Branching")
;; (find-progittext (+ 24  47)   "Git Branching")
;; (find-progitpage (+ 24  53)   "Basic Branching\n")
;; (find-progittext (+ 24  53)   "Basic Branching\n")



;; (find-es "git" "git-deb-src")
(code-c-d "gitsrc" "~/usrc/git/git-1.7.10.4/")

;; (find-es "git" "emacs-from-git")
(code-c-d "gitemacs" "~/bigsrc/git/emacs/")
(code-c-d "gitemacs" "~/bigsrc/emacs/")

;; Moved to:
;; (find-eev "eev-plinks.el" "find-gitk")
;; ;; (find-efunction 'ee-at0)
;; (defun find-gitk (path) (ee-at0 path '(find-bgprocess "gitk --all")))
;; (defun find-gitk (path) (ee-at0 path '(find-bgprocess "gitk --all --date-order")))
;; ;; (find-gitk "~/eev-current/")
;; ;; (find-gitk "/tmp/")

;; «find-gitdiag» (to ".find-gitdiag")
;; (find-angg "e/git.e" "git-animations")
;; (find-angg "bin/git-defs")
;;
(defun find-gitdiag0 (title dir cmd)
  (let ((fullcmd (format "cd %s && git-defs '%s'" dir cmd)))
  (find-eoutput-rerun title '(insert (find-sh0 fullcmd)))))

(defun find-gitdiag (dir)
  (find-gitdiag0 "*diagram*" dir "Diagram"))
(defun find-gitddiag (dir)
  (find-gitdiag0 "*dump/diagram*" dir "Dump; echo; Diagram"))

(defun ee-buffer-contents (b)
  (if (not (get-buffer b)) ""
    (with-current-buffer b (buffer-substring (point-min) (point-max)))))

(defun find-gitoldddiag ()
  (find-ebuffer "*old dump/diagram*")
  (erase-buffer)
  (insert (ee-buffer-contents "*dump/diagram*")))

(defun find-gitddiag-4a (dir)
  (find-wset "13o_2o_3o_o"
	     '(find-ebuffer "*shell*")
	     '(find-gitoldddiag)
	     `(find-gitddiag ,dir)))

;; (find-gitdiag0 "*tree*" ee-eevdir "Diagram")
;; (find-gitdiag0 "*tree*" ee-eevdir "pwd; Diagram")
;; (find-gitdiag0 "*dump/tree*" "/tmp/git/here/" "Dump; echo; Diagram")






;; «OP-1» (to ".OP-1")
;; (find-es "hardware" "OP-1")
;; (find-es "op-1")
(code-djvu      "op1manual" "~/tmp/OP-1_Manual_1.2_(EN).djvu")
(code-pdf-text  "op1manual" "~/tmp/OP-1_Manual_1.2_(EN).pdf")
(code-djvu-text "op1manual" "~/tmp/OP-1_Manual_1.2_(EN).djvu" 0)
(code-c-d       "op1manual" "~/tmp/OP-1_Manual_1.2_(EN).text")
;; (find-op1manualpage 3 "TOC")
;; (find-op1manualtext 3 "TOC")
;; (find-op1manualtext)
;; (find-op1manualfile "")




;; (find-eewrap-links "L" "latex" "word")
;; (find-efunction 'find-eewrap-links)

;; M-L: latex
(define-key eev-mode-map "\M-L" 'eewrap-latex)

(defun  eewrap-latex () (interactive)
  (ee-this-line-wrapn 1 'ee-wrap-latex))
(defun ee-wrap-latex (word)
  "An internal function used by `eewrap-latex'."
  (ee-template0 "\
\\begin{<}{word}{>}
\\end{<}{word}{>}
"))



;; «find-eev2-links» (to ".find-eev2-links")
;; (find-find-links-links "<none>" "eev2" "")
(defun find-eev2-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
  (interactive)
  (apply 'find-elinks
   `((find-eev2-links  ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-eev2-links)
     (find-es "magit" "magit-on-eev-2020oct28")
     (find-angg ".zshrc" "eev2-files")
     (find-angg ".zshrc" "eev2-files" "eev2-test ()")
     (find-angg "eev-intros/README")
     (find-anggfile "eev-intros/README" ";; end of the progn\n")
     (find-blogme3 "eevintros.lua" "add-new-intro")
     (find-eevfile "eev.el" "Version:")
     (find-eevfile "eev-pkg.el")
     (find-eev "eev-intro.el" "find-eev-install-intro" "packages/eev-")
     (find-es "eev" "eev-pkg-build")
     "# http://anggtwu.net/eev-intros/"
     "# https://github.com/edrx/eev"
     "# https://github.com/edrx/eev/tree/UTF-8"
     "# http://elpa.gnu.org/packages/eev.html"
     "
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
(TZ=GMT date; date) > ~/eev-current/VERSION
# eev2-files-all   | sort |& tee /tmp/ofa
# eev2-files-all-git      |& tee /tmp/ofag
# (find-tkdiff \"/tmp/ofa\" \"/tmp/ofag\")

rm -Rfv /tmp/eev-g
mkdir   /tmp/eev-g/
cd      /tmp/eev-g/ && git clone https://github.com/edrx/eev.git .
cd      /tmp/eev-g/
git checkout UTF-8

PAGER=cat git log --oneline --graph --all -20

my-git-list-files /tmp/eev-g/ | my-cmp-tkdiff \"~/eev-current/\" /tmp/eev-g/
# (find-fline \"~/eev-current/\")
# (find-fline \"/tmp/eev-g/\")
# (find-gitk \"/tmp/eev-g/\")
# cd ~/eev-current/
cd /tmp/eev-g/

MSG=\"***\"
MSG=\"Quote function names like this: \\`foo'\"
echo \"$MSG\"
git commit -a -m \"$MSG\"

# (find-eevsh0 \"PAGER=cat git log -1 --pretty=tformat:%s\")
# git commit -a --amend -m \"$MSG\"

# (find-gitk ee-eevdir)
# (find-eevsh0 \"gitk &\")
git push

# edrx Fa



# (find-angg \".zshrc\" \"eev2-files\")
# (find-angg \".zshrc\" \"eev2-files\" \"eev2-build-tgz-git\")
# (find-angg \".zshrc\" \"eev2-files\" \"eev2-upload\")

cd ~/eev-current/
# (TZ=GMT date; date) > VERSION
tar -cvzf /tmp/eev2.tgz $(git ls-files)
tar -cvzf /tmp/eev2.tgz $(cd /tmp/eev-g/ && git ls-files)
tar -cvf  /tmp/eev2.tar $(cd /tmp/eev-g/ && git ls-files)
laf       /tmp/eev2.tgz

cp /tmp/eev2.tgz ~/TH/R/eev-current/

eev2-upload
eev2-upload-tar

# (find-eev-create-tar-links)

cd /tmp/
rm -v eev2.tgz
wget http://anggtwu.net/eev-current/eev2.tgz
# (find-fline \"/tmp/eev2.tgz\")
# (find-fline \"/tmp/\" \"eev2.tgz\")
# (find-twupfile \"eev-current/\" \"eev2.tgz\")

# (find-es \"eev\" \"eev-pkg-build\")



# eev2-build-tgz
# eev2-test
# eev2-upload

# (find-eev-update-links)


# (find-fline \"~/eev-intros/README\" \";; end of the progn\\n\")
# (eejump-8)

"
     )
   pos-spec-list))

;; (find-eev2-links)
;; (find-eev2-links 21 "Quote function names like this:")



;; (find-eev-video-record-links "")
;; (find-eevvideos "")
;;(code-c-d "eevvideos" "~/eev-videos/" :anchor)
;; (find-eevvideos "4-bare.el")

;; (find-es "imagemagick" "exif")
(defun find-exif (fname &rest pos-spec-list)
  (apply 'find-callprocess `("exif" ,fname) pos-spec-list))

(code-brfile 'find-exif :local 'brexifl :dired 'brexifd)

(defun find-mediainfo (fname &rest pos-spec-list)
  (apply 'find-callprocess `("mediainfo" ,fname) pos-spec-list))

(code-brfile 'find-exif :local 'brexifl :dired 'brexifd)
(code-brfile 'find-mediainfo :local 'brmediainfol :dired 'brmediainfod)


;; «diags» (to ".diags")
;; (code-c-d "diags" "~/diags/")
;; (find-diagsfile "")
;; (find-idct "")
;; (find-LATEX "2010diags.tex")
;; (find-dn5file "")



;; «tags-mode» (to ".tags-mode")
;; (find-eminorkeymapdescr 'tags-mode)
;; (find-eevfile "eev-math-glyphs.el" "eev-glyphs-set-face")
;; (find-es "emacs" "faces")
;; (find-epalette)
;; (find-ecolors)
;; (find-angg ".emacs" "my-mode")

(defun tags-set-face (face fg bg)
  (make-face face)
  (set-face-foreground face fg)
  (set-face-background face bg))

(defun tag-get-point-at (code) (save-excursion (eval code) (point)))
(defun tag-s () (tag-get-point-at '(eek "C-a")))
(defun tag-e () (tag-get-point-at '(eek "C-e <right>")))
(defun tag-e () (tag-get-point-at '(eek "C-e")))
(defun tag-this-line (arg face)
  (if arg (remove-text-properties (tag-s) (tag-e) '(face nil))
    (set-text-properties          (tag-s) (tag-e) `(face ,face)))
  (eek "<down>"))

(setq tags-mode-map (make-sparse-keymap))
(define-minor-mode tags-mode
  "Makes the keymap `tags-mode-map' active.
See: (find-eminorkeymapdescr 'tags-mode)"
  :init-value nil :global nil :lighter " tags")

(defun tag-define-0  (key symbol fg bg)
  `(progn
     (defun ,symbol (arg) (interactive "P") (tag-this-line arg ',symbol))
     (tags-set-face ',symbol ,fg ,bg)
     (define-key tags-mode-map ,key ',symbol)))

(defun tag-define    (key symbol fg bg)
  (eval (tag-define-0 key symbol fg bg)))

(tag-define "\M-a" 'tag-art      "bisque" "snow4")
(tag-define "\M-a" 'tag-aumento  "bisque" "gray28")
(tag-define "\M-g" 'tag-gender   "bisque" "magenta3")
(tag-define "\M-i" 'tag-indios   "bisque" "green4")
(tag-define "\M-m" 'tag-music    "bisque" "blue4")
(tag-define "\M-n" 'tag-news     "bisque" "firebrick")
(tag-define "\M-p" 'tag-politics "bisque" "sienna4")
(tag-define "\M-t" 'tag-turkey   "bisque" "DarkOrange3")
(tag-define "\M-z" 'tag-unknown  "yellow" "red")
(tag-define "\M-z" 'tag-unknown  "red"    "yellow")
;; (set-face-bold     'tag-unknown t)

;; (tags-set-face 'tag-gender   "bisque" "magenta3")
;; (tags-set-face 'tag-music    "bisque" "blue4")
;; (tags-set-face 'tag-news     "bisque" "firebrick")
;; (tags-set-face 'tag-politics "bisque" "sienna4")
;;
;; (defun tag-gender   (arg) (interactive "P") (tag-this-line arg 'tag-gender))
;; (defun tag-music    (arg) (interactive "P") (tag-this-line arg 'tag-music))
;; (defun tag-news     (arg) (interactive "P") (tag-this-line arg 'tag-news))
;; (defun tag-politics (arg) (interactive "P") (tag-this-line arg 'tag-politics))
;;
;; (define-key tags-mode-map "\M-g" 'tag-gender)
;; (define-key tags-mode-map "\M-m" 'tag-music)
;; (define-key tags-mode-map "\M-n" 'tag-news)
;; (define-key tags-mode-map "\M-p" 'tag-politics)

;; «tags-mode-chars» (to ".tags-mode-chars")
;;
(defun tags-insert-at-bol (text)
  (save-excursion
    (let* ((b (ee-bol))
	   (c (buffer-substring b (1+ b))))
      (goto-char (1+ b))
      (insert-and-inherit (concat text c))
      (delete-region b (1+ b)))))

(defun tags-c-at-bol ()
  (save-excursion
    (save-match-data
      (goto-char (ee-bol))
      (if (looking-at "\\[\\(.\\)\\]")
	  (ee-no-properties (match-string 1))))))

(defun tags-line-face ()
  (get-char-property (ee-bol) 'face))





;; (find-eev "eev-brxxx.el" "code-brxxxs" "'brg ")
;; (find-eev "eev-brxxx.el" "code-brxxxs" "'brw ")
;; (find-eev "eev-brxxx.el" "code-brxxxs" "'brfl)")
' (code-brurl  'find-googlechrome :remote 'brg :local 'brgl :dired 'brgd)
' (code-brurl  'find-w3m          :remote 'brw :local 'brwl :dired 'brwd)
' (code-brfile 'find-fline                     :local 'brfl)



;; (find-eevfile "eev-brxxx.el" "brg")
;; (find-es "chrome" "chromium-vs-chrome")
(defun find-chromiumbrowser (url) (find-bgprocess `("chromium-browser" ,url)))
(code-brurl 'find-chromiumbrowser
            :remote 'brc :local 'brcl :dired 'brcd)

;; «eww» (to ".eww")
;; (find-es "emacs" "eww")
;; (find-efunction 'find-w3m)
;; (find-eevfile "eev-brxxx.el" "brwl")
;; (find-THLfile "")
;; (find-eww "~/TH/L/index.html")

(code-c-d "eww" (ee-elfile "net/") "eww" :gz)
;; (find-ewwfile "")
;; (find-ewwfile "eww.el")
;; (find-ewwnode "")
;; (find-eww "http://anggtwu.net/")
;; (find-eww "/tmp/")

;; (find-code-brurl 'find-eww :remote 'breww :local 'brewwl :dired 'brewwd)
        (code-brurl 'find-eww :remote 'breww :local 'brewwl :dired 'brewwd)
;; (find-code-brurl 'find-eww :remote 'brew  :local 'brewl  :dired 'brewd)
        (code-brurl 'find-eww :remote 'brew  :local 'brewl  :dired 'brewd)




;; «quadradinho» (to ".quadradinho")
(code-c-d "quadr" "~/quadradinho/" :anchor)
;; (find-quadrfile "")
;; (find-quadr "quadradinho-texto.tex")

;; (find-eevfile "eev-blinks.el")




;; (find-eev "eev-multiwindow.el")
(defun find-3L (sexp1 sexp2) (find-wset "13_o_o" sexp1 sexp2))
(defun find-3R (sexp1 sexp2) (find-wset "13_o_"  sexp1 sexp2))

(defalias 'nik 'find-pen-links)
(defalias 'find-dvipage 'find-xdvipage)

(seen 13560)

;; (find-fline "/etc/hosts" "Mel")
;; (find-newhost-links "mel" "192.168.0.130")
(defun eepitch-mel () (interactive)
  (eepitch '(find-comintprocess "ssh mel" "ssh edrx@mel")))


;; (find-eev "eev-browse-url.el" "ee-cp")
(defun ee-cp (from to &optional ok-flag)
  (require 'dired)
  (let ((tramp-verbose 0))
    (dired-copy-file (ee-expand from) (ee-expand to) ok-flag)))


;; «youtube-dl» (to ".youtube-dl")
;; (find-es "youtube" "youtube-dl-git")
;;
(code-c-d "youtubedl"   "~/usrc/youtube-dl/")
(code-c-d "youtubedly"  "~/usrc/youtube-dl/youtube_dl/")
(code-c-d "youtubedlye" "~/usrc/youtube-dl/youtube_dl/extractor/")
;; (find-youtubedlfile "")
;; (find-youtubedlyfile "")
;; (find-youtubedlyefile "")
;; (find-youtubedlyefile "youtube.py" "upload_date")


;; «ee-youtubedl-dirs» (to ".ee-youtubedl-dirs")
;; (find-eev "eev-tlinks.el" "find-youtubedl-links")
;;
(setq ee-youtubedl-dirs '("/sda5/videos/" "/tmp/videos/" "/tmp/"))
(setq ee-youtubedl-dir    "/sda5/videos/")
;;
;; http://www.youtube.com/watch?v=zqZNZHUr6B0

;; «ee-youtubedl-command»  (to ".ee-youtubedl-command")
;; (find-angg "bin/youtube-dl")
;; (find-eev "eev-tlinks.el" "ee-youtubedl-command")
;; (setq ee-youtubedl-command "yt-dlp -o '%(title)s-%(id)s.%(ext)s'")


;; «youtube-title» (to ".youtube-title")
;; (find-es "youtube" "youtube-title")
;; «yt» (to ".yt")
;; (find-eev "eev-elinks.el" "around-point")
;; (find-eev "eev-elinks.el" "around-point" "ee-url-at-point")

(defun yt (&optional url)
  (interactive)
  (setq url (or url (ee-url-at-point)))
  (let ((title (find-sh0 (format "youtube-dl -e '%s' | recode h..l1" url))))
    (eek "C-e SPC")
    (insert title)))


;; «youtube-db.lua» (to ".youtube-db.lua")
;; (find-angg     "LUA/youtube-db.lua")
;; (find-anggfile "LUA/youtube-db.lua" "-sort_td")
;; (defun yd () (interactive) (find-angg "LUA/youtube-db.lua"))
(defun lr () (interactive) (find-angg "linkdasruas.txt"))

(defun std (s e) (interactive "r")
  (shell-command-on-region s e "~/LUA/youtube-db.lua -sort_td" nil t))








;; «find-screenshot-links» (to ".find-screenshot-links")
;; See: (find-efunction 'find-escreenshot-links)
;; Skel: (find-find-links-links "{k}" "screenshot" "nn")
;; A test: (find-screenshot-links "00")
(defun find-screenshot-links (&optional nn &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
  (interactive)
  (setq nn (or nn "{nn}"))
  (apply 'find-elinks
   `((find-screenshot-links ,nn ,@pos-spec-list)
     (find-screenshot-links "00")
     (find-screenshot-links "01")
     (find-fline "/tmp/screenshots/")
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-screenshot-links)
     ""
     ,(ee-template0 "\
  (find-2a
   ' (find-fline \"/tmp/screenshots/\")
   ' (find-twupfile \"tmp/\")
   )

# (find-fline \"/tmp/screenshots/\")
# (find-fline \"/tmp/screenshots/ss{nn}.png\")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
Scp-np -v /tmp/screenshots/ss{nn}.png $TWUP/tmp/
# http://anggtwu.net/tmp/ss{nn}.png
")
     )
   pos-spec-list))



;; «find-freenode0» (to ".find-freenode0")
;; (find-eevfile "eev-rcirc.el")

(setq ee-freenode-ichannels "#eev #rcirc #transmission #org-mode")
(setq ee-freenode-achannels "#eev #rcirc #transmission #org-mode")

(setq ee-freenode-ichannels "#eev #org-mode")
(setq ee-freenode-achannels "#eev #org-mode")


;; «scast» (to ".scast")
;; (find-angg "bin/scast")
;; (defun scast () (interactive) (find-angg "bin/scast"))
(defun scast (&optional cmd)
  (interactive "P")
  (if cmd (find-sh0 (format "~/bin/scast '%s'" cmd))
    (find-angg "bin/scast")))


;; «android» (to ".android")
;; (find-es "android" "android-41-manuals")
(code-xpdf     "android41" "~/tmp/nexus_7_guidebook.pdf")
(code-pdf-text "android41" "~/tmp/nexus_7_guidebook.pdf" 0)
;; (find-android41page)
;; (find-android41text)
;; (find-android41page 83 "Factory data reset")
;; (find-android41text 83 "Factory data reset")

;; «android-adb» (to ".android-adb")
;; (find-es "android" "adb")
(defun eepitch-adbshell  () (interactive) (eepitch-comint "adb shell"   "adb shell"))
(defun eepitch-adbshell2 () (interactive) (eepitch-comint "adb shell 2" "adb shell"))

(defun eepitch-adbshell  () (interactive) (eepitch-comint-de "adb shell"   "adb shell"))
(defun eepitch-adbshell2 () (interactive) (eepitch-comint-de "adb shell 2" "adb shell"))






;;;
;;;  _ __   _____      __
;;; | '_ \ / _ \ \ /\ / /
;;; | | | |  __/\ V  V /
;;; |_| |_|\___| \_/\_/
;;;

;; (find-eevfile "eev-wrap.el" "eewrap-two-eepitches")

'(

;; (find-eewrap-links "#" "two-eepitches" "b c")
;; M-#: two-eepitches
(define-key eev-mode-map "\M-#" 'eewrap-two-eepitches)

(defun  eewrap-two-eepitches () (interactive)
  (ee-this-line-wrapn 2 'ee-wrap-two-eepitches))
(defun ee-wrap-two-eepitches (b c)
  "An internal function used by `eewrap-two-eepitches'."
  (ee-template0 "\
* (find-3EE '(eepitch-{b}) '(eepitch-{c}))
* (find-3ee '(eepitch-{b}) '(eepitch-{c}))
* (eepitch-{b})
* (eepitch-{c})
"))

)


;; «eev-videos» (to ".eev-videos")
;; (find-videos-intro "Eepitch video: table of contents")

;; (find-videos-intro)
;; (find-eev-video-links "eepitchvideo" "video4-eepitch" "Lj_zKC5BR64")
;; (find-eev-video-links "eevvideo"     "video2"         "doeyn5MOaB8")
;; (find-eev-video-links "eevvideopt"   "video2pt"       "yztYD9Y7Iz4")
(code-video "eepitchvideo" "$S/http/anggtwu.net/eev-videos/video4-eepitch.mp4")
(code-video "eevvideo"     "$S/http/anggtwu.net/eev-videos/video2.mp4")
(code-video "eevvideopt"   "$S/http/anggtwu.net/eev-videos/video2pt.mp4")

;; http://anggtwu.net/eev-videos/video4-eepitch.mp4
;; (find-fline "$S/http/anggtwu.net/eev-videos/")
;; (find-video "$S/http/anggtwu.net/eev-videos/video4-eepitch.mp4")
(code-video "eepitchvideo" "$S/http/anggtwu.net/eev-videos/video4-eepitch.mp4")
;; (find-eepitchvideo)
;; (find-eepitchvideo "0:00")
;; (find-eepitchvideo t)
;; (eev-avadj-mode 1)


;; (find-eevvideopt "7:43" "Como ativar o modo eev")
;; http://www.youtube.com/watch?v=yztYD9Y7Iz4&t=7m43s

;; http://anggtwu.net/tmp/portishead/Portishead_Machine_Gun.avi
(defun machine-gun () (interactive)
  (find-video "/sda5/videos/Portishead_Machine_Gun.avi" "0:02"))





;;;                   _
;;;  _ __   __ _  ___| | ____ _  __ _  ___  ___
;;; | '_ \ / _` |/ __| |/ / _` |/ _` |/ _ \/ __|
;;; | |_) | (_| | (__|   < (_| | (_| |  __/\__ \
;;; | .__/ \__,_|\___|_|\_\__,_|\__, |\___||___/
;;; |_|                         |___/
;;
;; «packages» (to ".packages")
;; (find-es "emacs" "packages")

;; (require 'package)
;; (add-to-list 'package-archives
;;     '("marmalade" .
;;       "http://marmalade-repo.org/packages/"))
;; (add-to-list 'package-archives
;;   '("melpa" .
;;     "http://melpa.milkbox.net/packages/") t)
;; (add-to-list 'package-archives
;;   '("angg" .
;;     "http://anggtwu.net/packages-el/") t)
;; (package-initialize)
;; (package-refresh-contents)

;; (find-epackages)
;; (find-epackages 0 "magit")
;; (find-epackages 0 "htmlfontify")
;; (find-epackage 'htmlfontify)
;; (find-es "emacs" "htmlfontify")

;; https://www.emacswiki.org/emacs/MELPA

;; «packages-melpa»  (to ".packages-melpa")
;; (find-es "emacs" "melpa")
;; (find-epp package-archives)

(eval-after-load "package"
  ' (add-to-list 'package-archives
		 '("melpa" . "https://melpa.org/packages/") t)
    )

(seen 15062)



;;;  _                         _ _       _
;;; | |__   ___ _ __ ___      | (_)_ __ | | _____
;;; | '_ \ / _ \ '__/ _ \_____| | | '_ \| |/ / __|
;;; | | | |  __/ | |  __/_____| | | | | |   <\__ \
;;; |_| |_|\___|_|  \___|     |_|_|_| |_|_|\_\___/
;;;

;; (find-eev "eev-elinks.el")
;; (find-eev "eev-elinks.el" "defun find-etp")
;; (find-eev "eev-elinks.el" "find-here-links")

;; (find-efunction 'find-grep-links)
;; (find-efunction 'find-einfo-links)
;; (find-efunction 'find-file-links)
;; (find-find-links-links "\\M-h" "here" "")
;; (find-efunction 'find-ecolors)



;; (find-blogme3 "blogme3.el")
;; (load "~/blogme3/blogme3.el")
;; (find-intro-links "{stem}")


;; (defun mo0 () (interactive) (find-LATEXfile "2013-montreal.tex"))
;; (defun mo  () (interactive) (find-LATEXfile "2013-montreal.txt"))
;; (defun sa  () (interactive) (find-angg "MONTREAL/sexophobic_as_answer"))
;; (defun lr  () (interactive) (find-es "blogme" "linkdasruas"))
(defun lv  () (interactive) (find-es "localvideos"))


;; «mplayer» (to ".mplayer")
;; (find-es "mplayer" "mplayer-from-git")
(code-c-d "mplayer" "~/bigsrc/mplayer/")

;; «mplayer-screenshots» (to ".mplayer-screenshots")
;; (find-es "mplayer" "screenshots")
;; For Manufacturing Consent
;;
(setq ee-mplayer-secreenshot-n 1)

(setq ee-mplayer-secreenshot-format "~/CHOMSKY/shot%04d.jpg")

(defun ee-mplayer-secreenshot-fname (&optional n)
  (format ee-mplayer-secreenshot-format
	  (or n ee-mplayer-secreenshot-n)))

(defun find-mplayer-screenshot (&optional n)
  (find-fline (ee-mplayer-secreenshot-fname n)))

(defun find-mplayer-screenshot+ (&optional delta)
  (setq ee-mplayer-secreenshot-n (+ ee-mplayer-secreenshot-n (or delta 1)))
  (find-2a nil '(find-mplayer-screenshot)))

(setq mss-mode-map (make-sparse-keymap))

(define-minor-mode mss-mode "Makes the keymap `mss-mode-map' active."
  :init-value nil :global nil :lighter " mss")

(define-key mss-mode-map (kbd "M-<up>")
  (lambda () (interactive) (find-mplayer-screenshot+ -1)))

(define-key mss-mode-map (kbd "M-<down>")
  (lambda () (interactive) (find-mplayer-screenshot+ 1)))




;; «lua-mode»  (to ".lua-mode")
;; (find-es "emacs" "lua-mode")
;; (find-es "lua5" "lua-mode.el")
;; (find-fline "~/elisp/" "lua-mode.el")
;; (find-fline "~/elisp/lua-mode.el")
;; http://stackoverflow.com/questions/4643206/how-to-configure-indentation-in-emacs-lua-mode
(setq lua-indent-level 2)
(setq lua-electric-flag nil)

;; (find-fline "~/elisp/lua-mode.el" "\"else\" \"else\" lua-indent-line 0")
;; (find-fline "~/elisp/lua-mode.el" "defun lua-indent-line")
;; (find-evariable 'lua-mode-abbrev-table)
;; (find-evardescr 'lua-mode-abbrev-table)
;; (find-elnode "Abbrev Tables")
(defun lua-abbrev-mode-off () (abbrev-mode 0))
(add-hook 'lua-mode-hook 'lua-abbrev-mode-off)

;; (find-efile "files.el" "Save abbrevs in %s?")
;; (find-efile "files.el" "and save-abbrevs abbrevs-changed")
(setq save-abbrevs nil)

;; (load "~/elisp/lua-mode.el")
;; (load "~/elisp/lua-mode.elc")





;; High-level
;;
(defvar ee-efnet-server "irc.efnet.net")
(defvar ee-efnet-ichannels "#thepiratebay.org")
(defvar ee-efnet-achannels "#thepiratebay.org")

(defun find-efnet (&optional channel &rest pos-spec-list)
  (apply 'find-rcirc-buffer
	  ee-efnet-server
	  ee-efnet-ichannels
	  ee-efnet-achannels channel pos-spec-list))

(defun find-efnet-3a (channel)
  (find-3a nil '(find-efnet) '(find-efnet channel)))

(defun ee-find-efnet-links (&optional channel)
  (setq channel (or channel (replace-regexp-in-string
			     "^\\(.*\\).irc\\.efnet\\.net" "\\1"
			     (buffer-name))))
  `((setq ee-efnet-ichannels ,ee-efnet-ichannels)
    (setq ee-efnet-achannels ,ee-efnet-achannels)
    ""
    (find-efnet ,channel)
    (find-efnet-3a ,channel)
    (defun eejump-9 () (find-efnet ,channel))
    (defun eejump-99 () (find-efnet-3a ,channel))
    ))

(defun find-efnet-links (&optional channel &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
  (interactive (list (ee-irc-channel-around-point)))
  (setq channel (or channel "{channel}"))
  (apply 'find-elinks
   `((find-efnet-links ,channel)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-efnet-links)
     ""
     ,@(ee-find-efnet-links channel)
     )
   pos-spec-list))

;; Tests: (find-efnet-links)
;;        (find-efnet-links "#eev")


;; «contact» (to ".contact")
;; (find-angg "contact.txt")
(defun contact () (interactive) (find-sh "cat ~/contact.txt"))

(defun nm () (interactive) (find-es "networkmanager"))



;; «find-1|3» (to ".find-1|3")
;; From: http://lists.gnu.org/archive/html/eev/2013-11/msg00010.html
;;
(defun ee-set-window-height (ht)
  (window-resize nil (- ht (window-total-height))))
;;
(defun find-1|3a (a b c d) (find-wset "13_o22+_o_o_o"   a b c d))
(defun find-1|3b (a b c d) (find-wset "13_o22+_o_o_oo"  a b c d))
(defun find-1|3c (a b c d) (find-wset "13_o22+_o_o_ooo" a b c d))
(defun find-1|3d (a b c d) (find-wset "13_o22+_o_o_"    a b c d))




;; «find-GA-links» (to ".find-GA-links")
(defun find-GA-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
  (interactive)
  (let* ((files (dired-get-marked-files t))
	 (fmt "    http://anggtwu.net/2013.2-GA/%s\n")
	 (urls (mapconcat (lambda (fname) (format fmt fname)) files ""))
	 (scps (ee-unsplit files)))
    (apply 'find-elinks
     `((find-GA-links)
       (find-efunction 'find-GA-links)
       ""
       ,(ee-template0 "\
{urls}

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/2013.2-GA/
Scp -v {scps} \\
  edrx@angg.twu.net:/home/edrx/slow_html/2013.2-GA/
")
       )
     pos-spec-list)))

(defun eejump-9 () (find-2a '(find-fline "~/2013.2-GA/")
			    '(find-twusfile "2013.2-GA/")))


;; «dired-sort»  (to ".dired-sort")
;; (find-es "emacs" "dired-listing-switches")
;; (find-sh "ls --help" "-h, --human-readable")
(defun dired-sort (switches)
  (interactive "sNew switches (typically -al, -alh, or -alS): ")
  (dired-sort-other switches))


;; «ee-dired-marked» (to ".ee-dired-marked")
;;
(defun ee-dired-marked-format-concat (fmt sep)
  (mapconcat (lambda (fname) (format fmt fname))
	     (dired-get-marked-files t)
	     sep))

(defun ee-dired-relative-dir (&optional dir)
  (setq dir (or dir default-directory))
  (save-match-data
    (or (ee-rmprefix "~/TH/L/" dir "")
	(ee-rmprefix "~/TH/R/" dir "")
	(ee-rmprefix      "~/" dir ""))))

(defun ee-dired-angg-dir (&optional dir)
  (concat "http://anggtwu.net/" (ee-dired-relative-dir dir)))

(defun ee-dired-angg-urls ()
  (ee-dired-marked-format-concat
   (format "%s%%s\n" (ee-dired-angg-dir))
   ""))

(defun ee-dired-angg-scp-dir (&optional dir)
  (concat "edrx@angg.twu.net:/home/edrx/slow_html/"
	  (ee-dired-relative-dir dir)))

;; «find-cp-to-angg-links» (to ".find-cp-to-angg-links")
;; (find-find-links-links "{k}" "cp-to-angg" "")
;;
(defun find-cp-to-angg-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
  (interactive)
  (apply 'find-elinks
   `((find-cp-to-angg-links  ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-cp-to-angg-links)
     (find-angg ".zshrc" "TWUS-and-TWUP")
     ""
     ,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/{(ee-dired-relative-dir default-directory)}
Scp-np -v {(save-match-data (ee-unsplit (dired-get-marked-files t)))} \\
  {(save-match-data (ee-dired-angg-scp-dir))}

{(save-match-data (ee-dired-angg-urls))}
")
     )
   pos-spec-list))

;; Test: (find-wset "13o_2o_" '(find-angg "2013-rfm-rcn/") '(find-cp-to-angg-links))

;; (find-twusfile "2013-rfm-rcn/")


;; «2013-rfm-rcn» (to ".2013-rfm-rcn")
;; (find-TH "2013-rfm-rcn")
;; (defun eejump-21 () (find-anggfile "2013-rfm-rcn/"))
;; (defun eejump-22 () (find-twusfile "2013-rfm-rcn/"))
;; (defun eejump-23 () (find-TH       "2013-rfm-rcn"))


;; «rst-mode» (to ".rst-mode")
;; (find-es "rst" "emacs")

;; (find-efaces "rst-level-1-face")
;; (find-eface-links 'rst-level-1-face)
;; (find-eface-links 'rst-level-2-face)
;; (find-eface-links 'rst-level-3-face)
;; (find-eface-links 'rst-level-4-face)
;; (find-eface-links 'rst-level-5-face)
;; (find-eface-links 'rst-level-6-face)
;;
;; Orig:
'
(progn
  (set-face-background 'rst-level-1-face "grey85")
  (set-face-background 'rst-level-2-face "grey78")
  (set-face-background 'rst-level-3-face "grey71")
  (set-face-background 'rst-level-4-face "grey64")
  (set-face-background 'rst-level-5-face "grey57")
  (set-face-background 'rst-level-6-face "grey50")
  )

;; My:
'
(progn
  (set-face-background 'rst-level-1-face "grey55")
  (set-face-background 'rst-level-2-face "grey48")
  (set-face-background 'rst-level-3-face "grey41")
  (set-face-background 'rst-level-4-face "grey34")
  (set-face-background 'rst-level-5-face "grey27")
  (set-face-background 'rst-level-6-face "grey20")
  )


;; «ee-shell-quote» (to ".ee-shell-quote")
;; «eecd» (to ".eecd")
;; (find-es "emacs" "regexp-quote")
;; (find-eevfile "eev-prepared.el" "defun eecd")
;; (ee-shell-quote "Tron (1982) [1080p]")
;;
(defun ee-shell-quote (str)
  (save-match-data
    (replace-regexp-in-string "\\([][ '&\"()]\\)" "\\\\\\1" str)))

(defun eecd ()
  (interactive)
  (eev (format "cd %s" (ee-shell-quote default-directory))))

;; «lyrics» (to ".lyrics")
;; (find-es "mp3" "id3v2")
(defun ee-set-lyrics (&optional fname lyrics tmpfile)
  (setq fname   (or fname (ee-dired-file-name)))
  (setq lyrics  (or lyrics (ee-last-kill)))
  (setq tmpfile (or tmpfile "/tmp/o"))
  `("id3v2" "--USLT" ,lyrics ,fname))

(defun ee-get-lyrics (&optional fname)
  (setq fname (or fname (ee-dired-file-name)))
  `("id3v2" "-l" ,fname))

(defun set-lyrics (&optional fname lyrics tmpfile)
  (interactive)
  (find-callprocess0 (ee-set-lyrics fname lyrics tmpfile))
  (find-callprocess  (ee-get-lyrics fname)))

(defun find-id3v2-lyrics (&optional fname)
  (interactive)
  (find-callprocess (ee-get-lyrics fname)))



;; Emergency, 2014jan26
;; (find-efunction 'eepitch)
;; (find-efunction 'eepitch-window-show)
;; (find-eevfile "eepitch.el" "defun eepitch-window-show")
;;
(defun eepitch-window-show ()
  "Emergency"
  (find-2a nil '(find-ebuffer eepitch-buffer-name)))


;; (find-efunction 'electric-indent-mode)
(electric-indent-mode 0)


;; «djview» (to ".djview")
;; (find-es "scan" "djview")
;; (find-efunction 'find-djvu-page)
;; (find-efunction 'ee-find-djvu-page)
;; (find-efunctionpp 'ee-find-djvu-page)
;; (find-books "__comp/__comp.el" "bentley")

;; (find-sh "locate -i bowie")
(code-c-d "bowie" "/sda4/torrents4/A David Bowie Vinyl Rip Collection - 1969-1989/")
(code-c-d "bowie" "/sda5real/torrents4/A David Bowie Vinyl Rip Collection - 1969-1989/")
(defun bowie () (interactive) (find-bowiefile ""))
;; (find-bowiefile "")

(defun saa () (interactive) (find-fline "~/MONTREAL/sexophobic_as_answer"))
(defun resp () (interactive)  (find-LATEXfile "2014-resposta.tex"))
(defun fe () (interactive)  (find-TH "ferramentas-para-ativistas"))



;; «tikz» (to ".tikz")
;; (find-angg ".emacs.papers" "tikz")
;;
;; (defun tikz () (interactive)
;;   (insert "
;; #*
;; # (defun c  () (interactive) (eev-bounded) (find-zsh0 \"ee\"))
;; # (defun cc () (interactive) (eev-bounded) (find-zsh  \"ee\"))
;; # (defun d  () (interactive) (find-xpdfpage \"/tmp/tikz/test1.pdf\"))
;; # (find-angg \".emacs.papers\" \"tikz\")
;; 
;; mkdir /tmp/tikz/
;; cd    /tmp/tikz/
;; cat > test1.tex <<'%%%'
;; \\documentclass{book}
;; \\usepackage{tikz}
;; \\usepackage{luacode}
;; \\begin{document}
;; \\tikzset{axis/.style=very thick}
;; \\tikzset{tick/.style=thick}
;; \\tikzset{grid/.style=gray,very thin}
;; %
;; \\begin{tikzpicture}[scale=0.5]
;;   \\clip (-2-0.4, -3-0.4) rectangle (4+0.4, 5+0.4);
;;   \\draw[step=1cm,grid] (-2,-3) grid (4,5);
;;   \\draw[axis] (-10,0) -- (10,0);
;;   \\draw[axis] (0,-10) -- (0,10);
;;   \\foreach \\x in {-10,...,10} \\draw[tick] (\\x,-0.2) -- (\\x,0.2);
;;   \\foreach \\y in {-10,...,10} \\draw[tick] (-0.2,\\y) -- (0.2,\\y);
;;   %
;; \\end{tikzpicture}
;; \\end{document}
;; %%%
;; lualatex test1.tex
;; #*
;; "))



;; «insert-n» (to ".insert-n")
(setq insert-n 0)
(defun insert-n (n) (interactive "P")
  (if n (setq insert-n n))
  (eek "C-a")
  (insert (format "%3d " insert-n))
  (eek "C-a <down>")
  (setq insert-n (1+ insert-n)))

;; (define-key my-mode-map "\M-n" 'insert-n)



;; «beamer» (to ".beamer")
;; (find-es "beamer" "userguide")
;; (find-sh0 "zcat /usr/share/doc/latex-beamer/beameruserguide.pdf.gz > /tmp/beameruserguide.pdf")
(code-xpdf     "beamerug" "/tmp/beameruserguide.pdf")
(code-pdf-text "beamerug" "/tmp/beameruserguide.pdf")
;; (find-beamerugpage)
;; (find-beamerugtext)
;; (find-beamerugtext 33)
;; (find-beamerugpage 146)
;; (find-beamerugtext 146)
(code-c-d "BEAMER" "~/BEAMER/" :anchor)
;; (find-BEAMERfile "")
;; (find-BEAMERfile "sfc.tex")
;; (defun sfc () (interactive) (find-BEAMERfile "sfc.tex"))
(defun sfc () (interactive) (find-LATEX "2014sfc-slides.tex"))
(defun sfcc () (interactive) (find-TH "sheavesforchildren"))
(defun sfccc () (interactive) (find-2a '(sfc) '(sfcc)))

;; (find-fline "$S/http/anggtwu.net/MINICATS/")
(code-xpdf "sfch" "$S/http/anggtwu.net/MINICATS/sheaves_for_children__1_to_7.pdf")
(code-djvu "sfch" "$S/http/anggtwu.net/MINICATS/sheaves_for_children__1_to_7.djvu")
;; (find-sfchpage)



;; «netsurf» (to ".netsurf")
(code-c-d "netsurf" "~/dev-netsurf/workspace/netsurf/")
(code-c-d "libhubbub" "~/dev-netsurf/workspace/libhubbub/")
;; (find-netsurffile "")
;; (find-libhubbubfile "")




;; «ee-read-redirect» (to ".ee-read-redirect")
;; Uses: (find-angg "LUA/redirect.lua")
;;       (find-man "1 wget")
;;       (find-man "1 wget" "--max-redirect=")
;;
(setq ee-read-redirect-wget-opts "--max-redirect=1 -O /dev/null")

(defun ee-read-redirect0 (tinyurl)
  (format "wget %s '%s' 2>&1 | grep '^Location:' | awk '{print $2}'"
	  ee-read-redirect-wget-opts tinyurl))

(defun ee-read-redirect0 (tinyurl)
  (format "~/LUA/redirect.lua '%s'" tinyurl))

(defun ee-read-redirect (tinyurl)
  (find-sh0 (ee-read-redirect0 tinyurl)))

(defun ee-read-redir () (interactive)
  (let* ((tinyurl (ee-url-at-point))
	 (longurl (ee-read-redirect tinyurl)))
    (if (string= longurl "")
	(error "Could not expand %s" tinyurl)
      (eek "C-e SPC - > RET")
      (insert longurl))))

;; (defalias 'r 'ee-read-redir)



;; «ee-read-urltitle» (to ".ee-read-urltitle")
;; See: (find-fbcache "fbcache2.lua" "gumbo")

(defun ee-read-urltitle0 (url)
  (format "~/fbcache/fbcache2.lua -urltitle '%s'" url))

(defun ee-read-urltitle (url)
  (find-sh0 (ee-read-urltitle0 url)))

;; (defun ti () (interactive)
;;   (let* ((url   (ee-url-at-point))
;; 	 (title (ee-read-urltitle url)))
;;     (eek "C-e SPC")
;;     (insert title)))

;; http://www.brasildefato.com.br/node/33509
;; (ee-read-urltitle0 "http://www.brasildefato.com.br/node/33509")
;; (ee-read-urltitle "http://www.brasildefato.com.br/node/33509")

;; «youtube-db» (to ".youtube-db")
(code-c-d "ydb" "~/youtube-db/" :anchor)
;; (find-ydbfile "")
;;
(defun yl () (interactive) (find-angg "linkdasruas2.txt"))
(defun yd () (interactive) (find-ydb "db.lua"))
(defun yu () (interactive) (find-ydb "dbu.lua"))
(defun ys () (interactive) (find-ydb "scripts.lua"))
(defun yo () (interactive) (find-ydb "ydbtoolbox.lua"))
(defun yy () (interactive) (find-ydb "ydb"))
(defun yr () (interactive) (find-ydb "README"))

;; Test: (ysearch "E1OHl8_MPEg" "On Line/Anne Teresa De Keersmaeker")
(defun ysearch (hash &rest rest)
  (interactive (list
		(or (ee-youtubedl-hash-around-point)
		    (error "No hash at point"))))
  (let* ((fmt "grep --color=auto -nH --null -e %s db.lua dbu.lua")
	 (cmd (format fmt hash)))
    (find-ydbgrep cmd)))

(defun yg () (interactive)
  (find-estring "\
# (find-efunction 'yg)
# (find-eev2-links)\n
# (find-gitk ee-ydbdir)
# (find-ydbsh0 \"PAGER=cat git log -1 --pretty=tformat:%s\")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/youtube-db/
\(TZ=GMT date; date) > VERSION

cd ~/youtube-db/
git commit -a -m \"***\"
git commit -a --amend -m \"***\"

git archive -o ydb.tgz HEAD
ls -lAF ydb*.tgz

DATE=$(date +%Y%m%d)
cp -v   ydb.tgz ydb-$DATE.tgz
ls -lAF ydb*.tgz

cd ~/youtube-db/
Scp -v ydb-$DATE.tgz ydb.tgz \\
  edrx@angg.twu.net:/home/edrx/slow_html/youtube-db/
Scp -v ydb-$DATE.tgz ydb.tgz \\
  edrx@angg.twu.net:/home/edrx/public_html/youtube-db/
"))


(seen 15617)

;; «youtube-db-play» (to ".youtube-db-play")
;; (find-ydbfile "ydb")
;; (find-ydbfile "ydb" "-local")
;; (find-ydbsh "./ydb -local 'http://www.youtube.com/watch?v=BWahxB0HaZE'")
;; (find-ydbsh "./ydb -local 'http://www.youtube.com/watch?v=7HjNrlnDJTU'")
;; (find-ydb "ydb" "ls_db_angg")
;;
(defun youtube-db-url-to-fname0 (li)
  (find-callprocess0 `("~/youtube-db/ydb" "-local" ,li)))

(defun youtube-db-url-to-fname (li)
  (let ((fname (youtube-db-url-to-fname0 li)))
    (if (not (equal fname "")) fname)))

(defun youtube-db-play (&optional li)
  (interactive)
  (setq li (or li (buffer-substring (ee-bol) (ee-eol))))
  (let ((fname (youtube-db-url-to-fname li)))
    (if fname (find-video fname)
      (message "Not found %S" (ee-no-properties li)))))

(defun eejump-9 () (youtube-db-play))

;; (youtube-db-url-to-fname " http://www.youtube.com/watch?v=BWahxB0HaZE ")
;; (youtube-db-url-to-fname "http://www.youtube.com/watch?v=BWahxB0HaZE")
;; (youtube-db-url-to-fname "http://www.youtube.com/watch?v=Ikd0ZYQoD")
;; (find-angg "linkdasruas2.txt")


;; «yeetube»  (to ".yeetube")
;; (find-es "youtube" "yeetube")
(defun find-yeetube (url)
  (require 'yeetube)
  (yeetube-mpv-play url))

;; (find-code-brurl 'find-yeetube :remote 'bryee)
        (code-brurl 'find-yeetube :remote 'bryee)







;; (find-es "scan" "djview-default-page")
(defun dr () (interactive) (find-fline "~/.config/DjVuLibre/DjView.conf" "recentFiles="))
(defun pn () (interactive) (find-anggfile "ORG/index.org" "new screencasts" "pn/"))
(defun xs () (interactive) (find-TH "2014-xs"))
(defun lo () (interactive) (find-fline "~/linkdasruas3.org"))
(defun lb () (interactive) (find-TH "linkdasruas3"))

(defun via () (interactive)
  (find-video
   "/sda5/videos/Rea_es_Transi_o_e_Rela_o_com_Sexualidade-8xeAstdzSvs.mp4"))




;; «pyfb» (to ".pyfb")
;; «faceutils» (to ".faceutils")
;; «facepy» (to ".facepy")
;; (find-es "python" "facebook-sdk")
;; (find-es "python" "faceutils")
(code-c-d "pyfb"      "~/usrc/facebook-sdk/"   :anchor)
(code-c-d "faceutils" "~/usrc/faceutils-code/" :anchor)
(code-c-d "facepy"    "~/usrc/facepy/"         :anchor)
;; (defun fr () (interactive) (find-fline "~/faceutils/README"))
;; (find-pyfbfile "")
;; (find-faceutilsfile "")
;; (find-facepyfile "")

;; «fbcache» (to ".fbcache")
(defun f1 () (interactive) (find-angg "fbcache/fbcache.lua"))
(defun f  () (interactive) (find-angg "fbcache/fbcache2.lua"))
(defun ff () (interactive) (find-es "facebook"))
;; (find-fbcache "fbcache2.lua" "command-line")
(defun find-fbcurl (query &rest rest)
  (find-sh (format "~/fbcache/fbcache2.lua -fbcurl %s" query)))
(defun find-fburlsofkind (kind &rest rest)
  (find-sh (format "~/fbcache/fbcache2.lua -urlsofkind %s" kind)))

;; (defun p () (interactive) (find-angg "fbcache/p.py"))
;; (defun l () (interactive) (find-angg "fbcache/urls.lua"))
;; (defun r () (interactive) (find-fbcache "README"))

;; (defun eejump-9  () (find-sh "grep '^\\[[ec][ej]\\]' ~/TODO"))
(defun eejump-99 () (find-sh "grep '^\\[[ec][ej]\\]' ~/TODO | cut -b 6- | sort | uniq"))
(defun eejump-999 () (find-sh "grep '^\\[is\\]' ~/TODO | cut -b 6- | sort | uniq"))

;; (defun eejump-9 () (find-es "php"))
(defun eejump-99 () (find-freenode "##php"))
(defun eejump-999 () (find-2a '(eejump-9) '(eejump-99)))

;; «2014.2-GA» (to ".2014.2-GA")
;; (find-TH "2014.2-GA")
(code-djvu "20142GA" "~/2014.2-GA/2014.2-GA.djvu")
;; (find-20142GApage)
;; (find-20142GApage  4 "13/ago entenda as seguintes transformações")
;; (find-20142GApage 14 "22/ago operações")
;; (find-20142GApage 19 "27/ago cônicas em outros sistemas de coordenadas")
;; (find-20142GApage 24 "29/ago expansão")
;; (find-20142GApage 26 "29/ago translação, mudança de escala, rotação")
;; (find-20142GApage 36 "05/set angulos")
;; (find-20142GApage 42 "10/set cônicas a partir de equações")
;; (find-20142GApage 47 "12/set dizer que um conjunto é da forma...")

;; «2015.1-GA» (to ".2015.1-GA")
;; (find-TH "2015.1-GA")
;; (find-fline        "~/2015.1-GA/")
;; (find-djvupage     "~/2015.1-GA/2015.1-GA.djvu")
(code-djvu "20151gaq" "~/2015.1-GA/2015.1-GA.djvu")
;; (find-20151gaqpage)
;; (find-20151gaqpage  1 "mar/11 matrizes")
;; (find-20151gaqpage  5 "mar/13 vetores")
;; (find-20151gaqpage  8 "mar/18 operações com pontos e vetores, pitágoras, ortog")
;; (find-20151gaqpage 12 "mar/20 propriedades")
;; (find-20151gaqpage 14 "mar/25 v/f/j, visualização")
;; (find-20151gaqpage 17 "mar/27 sistemas de coordenadas")
;; (find-20151gaqpage 19 "abr/01 sistemas de coordenadas")
;; (find-20151gaqtext)



(setq cheese-regexp
  "\\([0-9]\\{4\\}\\)\\-\\([0-9][0-9]\\)\\-\\([0-9][0-9]\\)\\-\\([0-9]\\{6\\}\\)")

(defun cheese-rename-to-selfie ()
  (interactive)
  (if (re-search-forward cheese-regexp nil t)
      (replace-match "\\1\\2\\3_selfie_cheese_\\4")))

;; Test: (cheese-rename-to-selfie)
;; 2016-03-11-235503.jpg
;; 20160112_selfie_cheese_165948.jpg

;; «cheese» (to ".cheese")
(defun cheese () (interactive) (find-angg ".emacs" "cheese"))
;; (find-bgprocess "cheese")
;; (setq last-kbd-macro (kbd "<<cheese-rename-to-selfie>>"))
;; (find-fline "~/Pictures/Webcam/")
;; (xz         "~/Pictures/Webcam/")


;; «ee-wrap-eejump» (to ".ee-wrap-eejump")
;; (find-elnode "Regexp Search" "string-match-p")



;; «ex» (to ".ex")
(defun ex (title)
  (let ((fname (format "~/dednat6/ex/%s" title)))
    (eepitch-eval-at-target-window
     `(ee-write-string
       (buffer-substring (point-min) (point-max))
       ,fname))
    (if (boundp 'ee-arg)
	(find-fline fname)
      (format "Wrote %s" fname))))





;; «q-and-qc» (to ".q-and-qc")
;;
;; (defun qq () (interactive) (q (line-number-at-pos)))

(defun qs0 (&optional n)
  (interactive)
  (find-efunction 'find-eev-quick-intro (+ 2 n)))

(defun qs (&optional n)
  "Show (find-eev-quick-intro)'s source."
  (interactive)
  (setq n (or n (line-number-at-pos)))
  (find-2b nil '(qs0 n)))

(defun qc0 () (interactive)
  "Recompile (find-eev-quick-intro)."
  (save-excursion
    (find-efunction 'find-eev-quick-intro "end of defun" -1)
    (eek "M-e")))

(defun qc () (interactive) (qc0) (eek "M-o"))

(defun qcr () (interactive) (qc) (find-eev-quick-intro (line-number-at-pos)))

;; (defun q (n)
;;   "Show (find-eev-quick-intro) and its source."
;;   (interactive "p")
;;   (find-2a '(find-eev-quick-intro n)
;;            '(find-efunction 'find-eev-quick-intro (+ 2 n))))



;; «find-dired-eek» (to ".find-dired-eek")
;; «find-dired-re»  (to ".find-dired-re")
;; (find-efile "find-dired.el")
;; (find-es "emacs" "dired")
;; (find-fline     "~/2017.2-GA/")
;; (find-dired-eek "~/2017.2-GA/" "% m jpg RET t k")
;; (find-dired-eek "~/2017.2-GA/" "% m \\.jpg RET t k")
;; (find-dired-eek "~/2017.2-GA/" "% m 20170906.*jpg RET t k")
;; (find-dired-re  "~/2017.2-GA/" "20170906.*jpg")
;; (find-dired-re  "~/LATEX/" "2021.*.tex$")
;; (find-dired-re  "~/LATEX/" "2022.*.tex$")
;; (find-dired-re  "~/LATEX/" "2022.*.pdf")
;; (find-dired-jpgs "~/2017.2-GA/" "20170906")
;; (string-match "20170906\\.*jpg" "20170906_GA1.jpg")
;; (string-match "20170906.*jpg"   "20170906_GA1.jpg")
(defun find-dired-eek (dir keys &rest rest)
  (apply 'find-fline dir 1 `(eek ,keys) rest))
(defun find-dired-re  (dir re   &rest rest)
  (apply 'find-fline dir 1 `(eek ,(format "%% m %s RET t k" re)) rest))
(defun find-dired-jpgs (dir &optional re &rest rest)
  (apply 'find-fline dir 1 `(eek ,(format "%% m %s.*jpg RET t k" (or re ""))) rest))






(defun find-fbcache-url (url)
  (find-callprocess `("lua5.1" "~/fbcache/urls.lua" "-utot" ,url)))
(defun find-fbcache-id (id)
  (find-callprocess `("lua5.1" "~/fbcache/urls.lua" "-itot" ,id)))

(code-brurl 'find-fbcache-url :remote 'brfb)

(defun eejump-99 () (find-fbcache-url (ee-url-at-point)))

;; (fbcache0 "https://www.facebook.com/gustavo.gindre/posts/515590031857632")
;; (fbcache0 "https://www.facebook.com/gustavo.gindre/posts/5155900318")

(code-c-d "fbcache"      "~/fbcache/" :anchor)
(code-c-d "fbcachejson"  "~/fbcache/cache_json/" :anchor)
(code-c-d "fbcachepplua" "~/fbcache/cache_pplua/" :anchor)
(code-c-d "fbcachelua"   "~/fbcache/cache_by_id_lua/")
(code-c-d "fbcachecurl"  "~/fbcache/cache_by_id_curl/")
;; (find-fbcacheluafile "")

;; (find-angg ".emacs.templates" "find-fbc-links")

;; «istanbul» (to ".istanbul")
;; (find-ist "1.org")
;; (find-istfile "glyphs.el")
(code-c-d "ist" "~/LATEX/istanbul" :anchor)
;; (defun i  () (interactive) (find-ist "1.org"))
;; (defun ih () (interactive) (find-ist "-handouts.tex"))
;; (defun ij () (interactive) (find-ist "-july.tex"))
;; (defun in () (interactive) (find-dn6 "newrect.lua"))
;; (defun ib () (interactive) (find-ist "1.tex" "update-body"))
;; (defun it () (interactive) (find-ist "1.tex"))
;; (defun id () (interactive) (find-ist "defs.tex"))
;; (defun iq () (interactive) (find-ist "quotes.tex"))
;; (defun il () (interactive) (find-ist "all.lua"))
(defun ie () (interactive) (find-istfile "glyphs.el"))
;; (defun ii () (interactive) (find-angg ".emacs" "istanbul"))
(defun iu () (interactive)
  (load "~/LATEX/istanbulglyphs.el")
  (eev-uc-set-composes))

;; (defun l () (interactive) (find-LATEX "2014istanbul-a.lua"))
;; (defun t () (interactive) (find-LATEX "2014istanbul-a.tex"))
;; (defun o  () (interactive) (find-angg "ORG/istanbul.org"))
;; (defun oo () (interactive) (find-angg "ORG/istanbul-meta.org"))
;; (defun e  () (interactive) (find-LATEX "2015logicandcats.tex"))
;; (defun l  () (interactive) (find-LATEX "2015logicandcats.lua"))


;; «code-etex» (to ".code-etex")
;; Test: (find-code-etex "pha" "2017planar-has")
;; Based on: (find-efunction 'code-c-d)
;; 2017ago05
(defun      code-etex (c stem)
  "Try this: (find-code-etex \"pha\" \"2017planar-has\")"
  (eval (ee-read (ee-code-etex c stem))))
(defun find-code-etex (c stem &rest rest)
  (apply 'find-estring-elisp (ee-code-etex c stem) rest))
(defun   ee-code-etex (c stem)
  (ee-template0 "\
   (defun {c}  (&rest rest) (interactive)
      (apply 'find-LATEX \"{stem}.tex\" rest))
   (defun {c}i (&rest rest) (interactive)
      (find-LATEXsh \"grep {c}p {stem}.tex\"))
   (defun {c}p (&optional n &rest rest) (interactive)
      (find-xpdfpage \"~/LATEX/{stem}.pdf\" n))

   ;; 2020dec14:
   ;; (defun {c}p (&optional n &rest rest) (interactive)
   ;;    (find-LATEXpdf-links \"{stem}\" n))
   "))

;; «code-etex-dednat6»  (to ".code-etex-dednat6")
;; Test: (find-code-etex-dednat6 "dne" "extra-modules")
;; 2019dec09
(defun      code-etex-dednat6 (c stem)
  (eval (ee-read (ee-code-etex-dednat6 c stem))))
(defun find-code-etex-dednat6 (c stem &rest rest)
  (apply 'find-estring-elisp (ee-code-etex-dednat6 c stem) rest))
(defun   ee-code-etex-dednat6 (c stem)
  (ee-template0 "\
   (defun {c}  (&rest rest) (interactive)
      (apply 'find-dednat6 \"{stem}.tex\" rest))
   (defun {c}i (&rest rest) (interactive)
      (find-dednat6sh \"grep {c}p {stem}.tex\"))
   (defun {c}p (&optional n &rest rest) (interactive)
      (find-xpdfpage \"~/dednat6/{stem}.pdf\" n))
   "))

;; «find-etex-links» (to ".find-etex-links")
;; (find-etex-links "vgm")
(defun find-etex-links (&optional str)
  (let* ((symbols (apropos-internal (format "^%s" str) 'fboundp))
         (f       (lambda (symbol) (ee-S `(find-efunctionpp ',symbol))))
         (body    (mapconcat f symbols "\n"))
	 (head1   `(find-etex-links ,str))
	 (head2   `(find-efunction 'find-etex-links))
	 (head3   `(find-fline "~/.emacs" ,(format "\"%s\"" str)))
	 (links   `(,head1 ,head2 ,head3 "" ,body)))
    (find-elinks links)))



;; «code-quadro» (to ".code-quadro")
;; (find-code-quadro "2017.2-LA" "laq172")
;;
(defun      code-quadro (c stem)
  "Try this: (find-code-quadro \"2017-1-GA\" \"gaq171\")"
  (eval (ee-read (ee-code-quadro c stem))))
(defun find-code-quadro (stem c &rest rest)
  (apply 'find-estring-elisp (ee-code-quadro stem c) rest))
(defun   ee-code-quadro (stem c)
  (let ((C  (replace-regexp-in-string "q" "Q"  c))
        (ce (replace-regexp-in-string "q" "qe" c)))
    (ee-template0 "\
     ;; http://anggtwu.net/{stem}/{stem}.pdf

     ;; (find-fline \"~/{stem}/\")
     ;; (find-fline \"~/{stem}/\" \"{stem}.pdf\")
     ;; (find-pdf-page \"~/{stem}/{stem}.pdf\")
     ;; ({c})
     (defun {c} (&optional n &rest rest) (interactive)
        (find-pdf-page \"~/{stem}/{stem}.pdf\" n))

     ;; (find-dired-jpgs \"~/{stem}/\")
     ;; (find-zsh \"cd ~/{stem}/; find *.jpg | cut -b-8\")
     ;; (find-zsh \"cd ~/{stem}/; find *.jpg | cut -b-8 | print-quadro-sexps {c}\")
     ;; (find-zsh \"cd ~/{stem}/; find *.jpg | cut -b-8 | print-quadro-sexps {C}\")
     ;; ({C})
     (defun {C} (&optional n re &rest rest) (interactive)
        (find-dired-jpgs \"~/{stem}/\" re))

     ;; <{c}>
     ;; (find-code-quadro \"{stem}\" \"{c}\")
     (defun {ce} (&rest rest) (interactive) (apply 'find-angg \".emacs\" \"{c}\" rest))
     ")))





;; «rrj» (to ".rrj")
(defun rrj () (interactive) (find-angg ".emacs" "rrj"))
;; (find-LATEX "rrj.tex")
;; (find-xpdfpage "~/LATEX/rrj.pdf")
;; (find-xpdfpage "~/LATEX/rrj.pdf"  2 "RRJ"  "Aline")
;; (find-xpdfpage "~/LATEX/rrj.pdf"  8 "RRJ2" "dançava com ele")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 13 "RRJ3" "sociopatas")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 28 "RRJ4" "pessoas bonitas")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 32 "RRJ5" "me bate")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 34 "RRJ6" "Tatiana")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 37 "RRJ7" "como se fosse uma harpa")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 40 "HAZ")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 45 "HAZ2")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 48 "Rimbaud 0")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 53 "Anna Akhmátova")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 55 "Sleeper in Metropolis")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 56 "The Hollow Men")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 59 "Hay for the Horses")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 60 "Thermidor")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 62 "Orpheus")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 63 "Ramadan")
;; (find-xpdfpage "~/LATEX/rrj.pdf" 65 "Um sonho de mil gatos")
;; (find-pdf-text "~/LATEX/rrj.pdf")


;; «falta-misandria» (to ".falta-misandria")
(defun fme () (interactive) (find-angg ".emacs" "falta-misandria"))

;; Versão pra Fal:
;; (find-LATEXfile "falta-misandria-f-main.tex")
;; (find-LATEXfile "" "falta-misandria-f-")
;; (find-LATEX "falta-misandria-f-fm.tex")
;; (find-LATEX "falta-misandria-f-scr.tex")
;; (find-LATEX "falta-misandria-f-xs.tex")
;; (find-LATEX "falta-misandria-f-haz.tex")
;; (find-LATEX "falta-misandria-f-etc.tex")
(defun fmf () (interactive) (find-LATEX "falta-misandria-f-main.tex"))

;; Zine original:
(defun fm5  () (interactive) (find-LATEX "falta-misandria-a5.tex"))
(defun fmp  () (interactive) (find-LATEX "falta-misandria-print.tex"))
(defun fmi ()  (interactive) (find-LATEX "falta-misandria-intro.tex"))
(defun fmb ()  (interactive) (find-LATEX "falta-misandria-corpo.tex"))
(defun fmn ()  (interactive) (find-LATEX "falta-misandria-nismos.tex"))
(defun fmh ()  (interactive) (find-LATEX "falta-misandria-homens.tex"))
(defun fmc ()  (interactive) (find-LATEX "falta-misandria-cats.tex"))
(defun fmtf () (interactive) (find-LATEX "falta-misandria-tf.tex"))
(defun fmr  () (interactive) (find-LATEX "falta-misandria-rh.tex"))
(defun fmd  () (interactive) (find-LATEX "falta-misandria-daniel.tex"))
(defun fmht () (interactive) (find-LATEX "falta-misandria-hdt.tex"))

;; (find-angg "LATEX/falta-misandria-scr.tex")

;; (find-xpdfpage   "~/LATEX/falta-misandria-a5.pdf")
(code-xdvi     "fm" "~/LATEX/falta-misandria-a5.dvi")
(code-xpdf     "fm" "~/LATEX/falta-misandria-a5.pdf")
(code-pdf-text "fm" "~/LATEX/falta-misandria-a5.pdf")
;; (find-fmpage)
;; (find-fmpage  4   "1. ``Põe a cara no sol''")
;; (find-fmpage  4   "2. Expulsão")
;; (find-fmpage  5   "3. Proibições")
;; (find-fmpage  6   "4. Trans de verdade")
;; (find-fmpage  6   "5. Allen Ginsberg e a NAMBLA")
;; (find-fmpage  7   "6. Heloísa")
;; (find-fmpage 10   "7. Inglês")
;; (find-fmpage 11   "8. Reinventar a roda")
;; (find-fmpage 11   "9. ``Aqui se pensa bem''")
;; (find-fmpage 12 "Corpo")
;; (find-fmpage 13   "10. Aspecto físico")
;; (find-fmpage 13   "11. E aí, comeu?")
;; (find-fmpage 15   "12. Blindagem emocional")
;; (find-fmpage 15   "13. Amigos junkies")
;; (find-fmpage 16   "14. Expectativa e rejeição")
;; (find-fmpage 16   "15. Lidar com impulsos")
;; (find-fmpage 18   "16. Consensual")
;; (find-fmpage 20   "17. Desculpas")
;; (find-fmpage 21   "18. Coração")
;; (find-fmpage 23 "Nismos")
;; (find-fmpage 24   "19. Sororidade")
;; (find-fmpage 24   "20. Limites da sororidade")
;; (find-fmpage 25   "21. Homens podem ser feministas?")
;; (find-fmpage 25   "22. Ônibus")
;; (find-fmpage 26   "23. Crédito")
;; (find-fmpage 27   "24. ``Que bom, tá saindo tudo''")
;; (find-fmpage 29 "Homens")
;; (find-fmpage 30   "25. ``Homem de verdade'' não existe")
;; (find-fmpage 30   "26. Coisa de viado")
;; (find-fmpage 31   "27. Mentira, inferno, mistério")
;; (find-fmpage 31   "28. Máfias")
;; (find-fmpage 32   "29. Sessão Coruja")
;; (find-fmpage 33   "30. Marta e iniciativa")
;; (find-fmpage 34 "Categorias")
;; (find-fmpage 35   "31. As distinções certas")
;; (find-fmpage 37   "32. ``Engenheiros''")
;; (find-fmpage 37   "33. Hombres y Machos")
;; (find-fmpage 38   "34. Falar mal")
;; (find-fmpage 39   "35. PUC")
;; (find-fmpage 40 "Transfeminismo")
;; (find-fmpage 45 "E-mails pra Silvia")
;; (find-fmpage 55 "Daniel e iniciativa")
;; (find-fmpage 57 "História de T")

;; (find-fmtext)

(defun fm1 () (interactive) (find-TH "falta-misandria"))
(defun fm0 () (interactive) (find-TH "falta-misandria-0"))
(defun fm  () (interactive) (find-TH "falta-misandria-2"))
;;    http://anggtwu.net/falta-misandria-2.html
;;    http://anggtwu.net/falta-misandria-0.html
;;    http://anggtwu.net/falta-misandria.html
;; file:///home/edrx/TH/L/falta-misandria-2.html
;; file:///home/edrx/TH/L/falta-misandria-0.html
;; file:///home/edrx/TH/L/falta-misandria.html




;; (defun g () (interactive) (find-angg "ORG/genero.org"))
;; (defun nic () (interactive) (find-fline "/home/reef6/NICOTINE/"))
;; (defun mus () (interactive) (find-fline "/home/music/"))



(defun find-googlechromeincognito (url) (find-bgprocess `("google-chrome" "-incognito" ,url)))

(code-brurl 'find-googlechromeincognito
            :remote 'brgi :local 'brgil :dired 'brgid)

(defun find-opera (url) (find-bgprocess `("opera" ,url)))

(code-brurl 'find-opera
            :remote 'bropera :local 'broperal :dired 'broperad)

;; «lynx»  (to ".lynx")
;;
(defun find-lynx (url &rest pos-spec-list)
  (apply 'find-callprocess
	 `("lynx" "-dump" "-width=205" ,url) pos-spec-list))

(code-brurl 'find-lynx
            :remote 'brlynx :local 'brlynxl :dired 'brlynxd)


;; «luakit»  (to ".luakit")
;; (find-es "luakit")
;;
(defun find-luakit (url &optional rest)
  (find-bgprocess `("luakit" ,url)))

(code-brurl 'find-luakit :remote 'brlk :local 'brlkl :dired 'brlkd)


;; «lae» (to ".lae")
(defun lae () (interactive) (find-angg ".emacs" "lae"))


;; (lam171)
;; (lam171i)
;; (lam172i)

(code-etex "lal162" "2016-2-LA-lambda")	  ; (lal162) (lal162i) (lal162p)
(code-etex "lac162" "2016-2-LA-cats")	  ; (lac162) (lac162i) (lac162p)
(code-etex "lao162" "2016-2-LA-logic")	  ; (lao162) (lao162i) (lao162p)
(code-etex "laz162" "2016-2-LA-zhas")	  ; (laz162) (laz162i) (laz162p)
(code-etex "lam171" "2017-1-LA-material") ; (lam171) (lam171i) (lam171p)
(code-etex "lam172" "2017-2-LA-material") ; (lam172) (lam172i) (lam172p)
(code-etex "lam181" "2018-1-LA-material") ; (lam181) (lam181i) (lam181p)
(code-etex "lamoo"  "2017-1-LA-material") ; (lamoo)  (lamoop)
(code-etex "lamo"   "2017-2-LA-material") ; (lamo)   (lamop)
(code-etex "lam"    "2018-1-LA-material") ; (lam)    (lamp)

(code-etex-tla "lam"    "2018-1-LA-material")
(code-etex-tla "lam181" "2018-1-LA-material")

(code-quadro "2016.1-LA" "laq161")	; (laq161)
(code-quadro "2016.2-LA" "laq162")	; (laq162)
(code-quadro "2017.1-LA" "laq171")	; (laq171)
(code-quadro "2017.2-LA" "laq172")	; (laq172)
(code-quadro "2017.1-LA" "laqo"  )	; (laqo)
(code-quadro "2017.2-LA" "laq"   )	; (laq)

;; (defun lal () (interactive) (find-angg "LATEX/2016-2-LA-lambda.tex"))
;; (defun lac () (interactive) (find-angg "LATEX/2016-2-LA-cats.tex"))
;; (defun lao () (interactive) (find-angg "LATEX/2016-2-LA-logic.tex"))
;; (defun laz () (interactive) (find-angg "LATEX/2016-2-LA-zhas.tex"))
;; (defun lalp (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2016-2-LA-lambda.pdf" n))
;; (defun laop (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2016-2-LA-logic.pdf"  n))
;; (defun lazp (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2016-2-LA-zhas.pdf"   n))
;; (defun lam     (&optional a b c) (interactive) (find-angg "LATEX/2017-1-LA-material.tex" a b c))
;; (defun lam171  (&optional a b c) (interactive) (find-angg "LATEX/2017-1-LA-material.tex" a b c))
;; (defun lamp171 (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2017-1-LA-material.pdf" n))
;; (defun lamp    (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2017-1-LA-material.pdf" n))
;;
;; (defun laq161 (&optional n a b c) (interactive) (find-xpdfpage "~/2016.1-LA/2016.1-LA.pdf" n))
;; (defun laq162 (&optional n a b c) (interactive) (find-xpdfpage "~/2016.2-LA/2016.2-LA.pdf" n))
;; (defun laq171 (&optional n a b c) (interactive) (find-xpdfpage "~/2017.1-LA/2017.1-LA.pdf" n))
;; (defun laq172 (&optional n a b c) (interactive) (find-xpdfpage "~/2017.2-LA/2017.2-LA.pdf" n))
;; (defun laqo   (&optional n a b c) (interactive) (laq162 n))
;; (defun laq    (&optional n a b c) (interactive) (laq171 n))
;; (laqo)



;; «laq162» (to ".laq162")
(defun laqe162 (&optional a b c) (interactive) (find-angg ".emacs" "laq162" a b c))
;; (laq162  1 "20160906" "type inference and term inference")
;; (laq162  2 "20160913" "Lógicas, tautologias, notações posicionais")
;; (laq162  3 "20160920" "")
;; (laq162  4 "20160927" "")
;; (laq162  5 "20161004" "")
;; (laq162  6 "20161011" "Categorias")
;; (laq162  7 "20161011" "No inverses")
;; (laq162  8 "20161025" "(ninguém veio)")
;; (laq162  9 "20161101" "Categorias")
;; (laq162 10 "20161108" "Categorias")
;; (laq162 11 "20161108" "Categorias")
;; (laq162 12 "20161122" "Product diagram")
;; (laq162 13 "20161122" "Product diagram")
;; (laq162 14 "20161129" "Coproduct diagram, |-, regras")
;; (laq162 15 "20161129" "Coproduct diagram, |-, regras")
;; (laq162 16 "20161206" "Programas")
;; (laq162 17 "20161206" "Programas")
;; (laq162 18 "20161213" "Programas: :=")
;; (laq162 19 "20161220" "Última aula: funtores")
;; (laq162 20 "20161220" "Última aula: funtores")

;; «laq171» (to ".laq171")
;; (find-quadro-links "la" "172")
(defun laqe171 (&optional a b c) (interactive) (find-angg ".emacs" "laq171" a b c))
;; (laq171  1 "20170328" "Expressions and reductions")
;; (laq171  2 "20170328" "Substituição simultânea")
;; (laq171  3 "20170328" "Types: exercises")
;; (laq171  4 "20170411" "Types: exercises")
;; (laq171  6 "20170411" "ND, introdução, eliminação, redução")
;; (laq171  9 "20170418" "ND: provando certas coisas vindas de diagramas; regras")
;; (laq171 10 "20170418" "(acrescentar [a:=2+3] nas notas)")
;; (laq171 11 "20170425" "Lógica em ZHAs")
;; (laq171 15 "20170502" "Categorias")
;; (laq171 17 "20170606" "Lógicas modais")
;; (laq171 20 "20170613" "Tradução de Gödel e topologias")
;; (laq171 22 "20170620" "Topologias")
;; (laq171 24 "20170627" "Mini-Lisp")
;; (laq171 26 "20170704" "Mini-Haskell (#sqn)")
;; (laq171 28 "20170713" "Mini-Haskell (#sqn, 2)")

;; «laq172» (to ".laq172")
;; (find-code-quadro "2017.2-LA" "laq172")
(defun laqe172 (&rest rest) (interactive) (apply 'find-angg ".emacs" "laq172" rest))
;; (laq172  1 "20170822" "Evaluation")
;; (laq172  5 "20170829" "Exercícios de notação lambda")
;; (laq172  7 "20170905" "Árvores e tipos")
;; (laq172 10 "20170912" "Planar Heyting Algebras for Children: exercícios")
;; (laq172 13 "20170926" "Planar Heyting Algebras for Children: exercícios (2)")
;; (laq172 14 "20171010" "Implicação")
;; (laq172 16 "20171017" "Topologias")
;; (laq172 17 "20171031" "Lógica em topologias")
;; (laq172 19 "20171107" "Curry-Howard")
;; (laq172 20 "20171121" "Awodey: produtos e dualidade")
;; (laq172 21 "20171128" "Dualidade")
;; (laq172 23 "20171205")
;; (laq172 24 "20171205")


;; «laq181» (to ".laq181")
;; (find-code-quadro "2018.1-LA" "laq181")
(code-quadro "2018.1-LA" "laq181")
;; (laq181  1 "20180320" "Evaluation")
;; (laq181  4 "20180327" "Notação lambda: exercícios")
;; (laq181  7 "20180403" "Notação lambda: exercícios (2)")

(defun laqe    (&rest rest) (interactive) (apply 'laqe181 rest))



(seen 16206)

;; «gae» (to ".gae")
(defun gae () (interactive) (find-angg ".emacs" "gae"))

(defun gaa  (&optional a b c) (interactive) (find-angg "LATEX/2016-2-GA-algebra.tex" a b c))
(defun gam  (&optional a b c) (interactive) (find-angg "LATEX/2017-1-GA-material.tex" a b c))
(defun gaap (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2016-2-GA-algebra.pdf" n))
(defun gamp (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2017-1-GA-material.pdf" n))

(defun gaq171  (&optional n a b) (interactive) (find-xpdfpage "~/2017.1-GA/2017.1-GA.pdf" n))
(defun gaq162  (&optional n a b) (interactive) (find-xpdfpage "~/2016.2-GA/2016.2-GA.pdf" n))
(defun gaa162  (&optional a b c) (interactive) (find-angg       "LATEX/2016-2-GA-algebra.tex" a b c))
(defun gaap162 (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2016-2-GA-algebra.pdf" n))
(defun gai162  (&optional a b c) (interactive) (find-LATEXsh "grep gaap162 2016-2-GA-algebra.tex"))
(defun gai171  (&optional a b c) (interactive) (find-LATEXsh "grep gamp171 2017-1-GA-material.tex"))
(defun lai171  (&optional a b c) (interactive) (find-LATEXsh "grep lamp171 2017-1-LA-material.tex"))
(defun gai     (&optional a b c) (interactive) (gai171 a b c))
(defun lai     (&optional a b c) (interactive) (lai171 a b c))

(defun gam171  (&optional a b c) (interactive) (find-angg       "LATEX/2017-1-GA-material.tex" a b c))
(defun gamp171 (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2017-1-GA-material.pdf" n))

(code-etex "gam171" "2017-1-GA-material") ; (gam171) (gam171i) (gam171p)
(code-etex "gam172" "2017-2-GA-material") ; (gam172) (gam172i) (gam172p)
(code-etex "gam181" "2018-1-GA-material") ; (gam181) (gam181i) (gam181p)
(code-etex "gac181" "2018-1-GA-conicas")  ; (gac181) (gac181i) (gac181p)
(code-etex "gar181" "2018-1-GA-R3")       ; (gar181) (gar181i) (gar181p)
(code-etex "gamoo"  "2017-1-GA-material") ; (gamoo) (gamoop)
(code-etex "gamo"   "2017-2-GA-material") ; (gamo)  (gamop)
(code-etex "gam"    "2018-1-GA-material") ; (gam)   (gamp)
(code-etex "gac"    "2018-1-GA-conicas")  ; (gac)   (gacp)
(code-etex "gar"    "2018-1-GA-R3")       ; (gar)   (garp)
(code-etex "mpg"    "material-para-GA")

(code-etex "ga162p1" "2016-2-GA-P1") ; (ga162p1) (ga162p1p)
(code-etex "ga162p2" "2016-2-GA-P2") ; (ga162p2) (ga162p2p)
(code-etex "ga162vr" "2016-2-GA-VR") ; (ga162vr) (ga162vrp)
(code-etex "ga162vs" "2016-2-GA-VS") ; (ga162vs) (ga162vsp)
(code-etex "ga171p1" "2017-1-GA-P1") ; (ga171p1) (ga171p1p)
(code-etex "ga171p2" "2017-1-GA-P2") ; (ga171p2) (ga171p2p)
(code-etex "ga171vr" "2017-1-GA-VR") ; (ga171vr) (ga171vrp)
(code-etex "ga171vs" "2017-1-GA-VS") ; (ga171vs) (ga171vsp)

(seen 16249)


;; (defun g  () (interactive) (find-angg "LATEX/2015-1-GA-P2-gabarito.tex"))
;; (defun gg () (interactive) (find-angg "LATEX/2015-2-GA-P1-gab.tex"))

(defun c2o () (interactive) (find-LATEX "2016-1-C2-material.tex"))
;; (defun c2i () (interactive) (find-LATEX "2016-2-C2-material.tex"))
(defun gao () (interactive) (find-LATEX "2015-2-GA-material.tex"))
(defun ga  () (interactive) (find-LATEX "2016-1-GA-material.tex"))
(defun la  () (interactive) (find-LATEX "2016-1-LA-material.tex"))

(defun c2m  (&optional a b c) (interactive) (find-angg "LATEX/2017-1-C2-material.tex" a b c))
(defun c2mp (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2017-1-C2-material.pdf" n))
;; (code-etex "c2m171" "2017-1-C2-material")
;; (code-etex "c2m172" "2017-2-C2-material")
;; (code-etex "c2mo"   "2017-1-C2-material")
;; (code-etex "c2m"    "2017-2-C2-material")


;; «gale» (to ".gale")
(defun gale () (interactive) (find-angg ".emacs" "gale"))
(defun gal1 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-1.pdf"))
(defun gal1 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-1.pdf" n))
(defun gal2 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-2.pdf" n))
(defun gal3 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-3.pdf" n))
(defun gal4 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-4.pdf" n))
(defun gal5 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-5-1.pdf" n))
(defun gal6 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-6.pdf" n))
(defun gal7 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-7.pdf" n))
(defun gal8 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-8.pdf" n))
(defun gal9 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-9.pdf" n))
(defun gal10 (&optional n a b) (interactive) (find-xpdfpage "~/2015.1-GA/2014.2-GA-lista-bel-10.pdf" n))
;; (gal1 1 "vetores, ponto médio, perímetro")
;; (gal2 1 "medianas, alturas, áreas, ortogonais, isósceles, obtuso, proj")
;; (gal3 1 "retas, simétrico, ")
;; (gal4 1 "elipse")
;; (gal5 1 "hipérbole")
;; (gal6 1 "parábola")
;; (gal7 1 "retas no espaço")
;; (gal8 1 "produto cruzado")
;; (gal9 1 "produto cruzado 2 e etc")
;; (gal10 1 "quádricas")

;; (find-fline "~/2015.1-GA/" "mariana_imbelloni")
(defun gamr () (interactive) (find-xpdfpage "~/2015.1-GA/mariana_imbelloni_retas.pdf"))
(defun game () (interactive) (find-xpdfpage "~/2015.1-GA/mariana_imbelloni_elipse.pdf"))
;; (defun gamp () (interactive) (find-xpdfpage "~/2015.1-GA/mariana_imbelloni_parabola.pdf"))
(defun gamh () (interactive) (find-xpdfpage "~/2015.1-GA/mariana_imbelloni_hiperbole.pdf"))

(defun gaqo (&optional n a b c) (interactive) (find-xpdfpage "~/2016.2-GA/2016.2-GA.pdf" n))
(defun gaqo (&optional n a b c) (interactive) (find-xpdfpage "~/2017.1-GA/2017.1-GA.pdf" n))
(defun gaq  (&optional n a b c) (interactive) (find-xpdfpage "~/2017.2-GA/2017.2-GA.pdf" n))

(defun gaq152 (&optional n a b c) (interactive) (find-xpdfpage "~/2015.2-GA/2015.2-GA.pdf" n))
(defun gaq161 (&optional n a b c) (interactive) (find-xpdfpage "~/2016.1-GA/2016.1-GA.pdf" n))
(defun gaq162 (&optional n a b c) (interactive) (find-xpdfpage "~/2016.2-GA/2016.2-GA.pdf" n))
(defun gaq171 (&optional n a b c) (interactive) (find-xpdfpage "~/2017.1-GA/2017.1-GA.pdf" n))
(defun gaq172 (&optional n a b c) (interactive) (find-xpdfpage "~/2017.2-GA/2017.2-GA.pdf" n))
(defun gaQ172 (&optional n re &rest r) (interactive) (find-dired-jpgs "~/2017.2-GA/" re))

;; (defun c2p  () (interactive) (find-LATEXfile "2015-2-C2-P1.tex"))
;; (defun c2pp () (interactive) (find-LATEXfile "2015-2-C2-P2.tex"))
;; (defun c2vr () (interactive) (find-LATEXfile "2015-2-C2-VR.tex"))
;; (defun c2p1 () (interactive)   (find-angg "LATEX/2016-2-C2-P1.tex"))
;; (defun c2p  () (interactive)   (find-angg "LATEX/2016-2-C2-P2.tex"))
(defun c2pp () (interactive) (find-es "ipython" "2016.2-C2-P2"))

(defun gap  () (interactive) (find-LATEXfile "2015-2-GA-P2.tex"))
(defun gavr () (interactive) (find-LATEXfile "2015-2-GA-VR.tex"))
(defun gavs () (interactive) (find-LATEXfile "2015-2-GA-VS.tex"))

;; (defun gap1 () (interactive) (find-LATEXfile "2016-1-GA-P1.tex"))
;; (defun gap  () (interactive) (find-LATEXfile "2016-1-GA-P2.tex"))
;; (defun gap  () (interactive) (find-LATEXfile "2016-2-GA-P1.tex"))
(defun gap1o () (interactive) (find-LATEXfile "2016-2-GA-P1.tex"))
(defun gap   () (interactive) (find-LATEXfile "2016-2-GA-P2.tex"))
(defun gap1  () (interactive) (find-LATEXfile "2017-1-GA-P1.tex"))
(defun gapp () (interactive) (find-es "ipython" "2016.1-GA-P2"))
(defun gavr () (interactive) (find-angg "LATEX/2016-2-GA-VR.tex"))
(defun gavs () (interactive) (find-angg "LATEX/2016-2-GA-VS.tex"))

;; (defun gav  () (interactive) (find-angg "LATEX/2016-1-GA-VR.tex"))
;; (defun c2v  () (interactive) (find-angg "LATEX/2016-1-C2-VR.tex"))
;; (defun gavs () (interactive) (find-angg "LATEX/2016-1-GA-VS.tex"))
;; (defun c2vs () (interactive) (find-angg "LATEX/2016-1-C2-VS.tex"))
;; (defun gavp () (interactive) (find-es "ipython" "2016.1-GA-VR"))

(defun op () (interactive) (find-TH "2016-optativa"))

(defun c2i () (interactive) (find-angg "LATEX/2016-2-C2-integral.tex"))

;; «c2q» (to ".c2q")
;; (defun c2qe () (interactive) (find-angg ".emacs" "c2q"))
(defun c2q152 (&optional n a b c) (interactive) (find-xpdfpage "~/2015.2-C2/2015.2-C2.pdf" n))
(defun c2q161 (&optional n a b c) (interactive) (find-xpdfpage "~/2016.1-C2/2016.1-C2.pdf" n))
(defun c2q162 (&optional n a b c) (interactive) (find-xpdfpage "~/2016.2-C2/2016.2-C2.pdf" n))
(defun c2q171 (&optional n a b c) (interactive) (find-xpdfpage "~/2017.1-C2/2017.1-C2.pdf" n))
(defun c2q172 (&optional n a b c) (interactive) (find-xpdfpage "~/2017.2-C2/2017.2-C2.pdf" n))
(defun c2qoo  (&optional n a b c) (interactive) (c2q162 n a b c))
(defun c2qo   (&optional n a b c) (interactive) (c2q171 n a b c))
(defun c2q    (&optional n a b c) (interactive) (c2q172 n a b c))

;; «c2q152» (to ".c2q152")
;; (find-fline "~/2015.2-C2/" "2015.2-C2.pdf")
;; (c2q152  1 "2015nov30" "")
;; (c2q152  4 "2015dec02" "")
;; (c2q152  7 "2015dec07" "integral de Riemann")
;; (c2q152  9 "2015dec09" "integral de Riemann sem partição especificada")
;; (c2q152 11 "2015dec09" "TFC")
;; (c2q152 13 "2015dec16" "TFC 2")
;; (c2q152 15 "2015dec16" "Substituição")
;; (c2q152 16 "2015dec21" "Diferenciais")
;; (c2q152 22 "2016jan04" "G(x,y) = x^2 + y^2")
;; (c2q152 24 "2016jan06" "Derivada da função inversa")
;; (c2q152 27 "2015jan18" "Integrando funções racionais")
;; (c2q152 30 "2016jan18" "Método de Heaviside")
;; (c2q152 32 "2016jan20" "Integrando funções racionais impróprias")
;; (c2q152 34 "2016jan27" "Integração por partes")
;; (c2q152 35 "2016jan27" "Truque do `onde'")
;; (c2q152 36 "2016jan27" "Tabelas de integrais")
;; (c2q152 37 "2016feb01" "Substituição trigonométrica")
;; (c2q152 43 "2016feb15" "Série de Taylor")
;; (c2q152 45 "2016feb17" "Plano complexo")
;; (c2q152 48 "2016feb17" "Grande truque: E")
;; (c2q152 50 "2016feb24" "Substituição trigonométrica")
;; (c2q152 51 "2016mar02" "EDOs")
;; (c2q152 53 "2016mar07" "EDOs: D")
;; (c2q152 55 "2016mar09" "EDOs: sen e cos vezes exp")

;; «c2q161» (to ".c2q161")
;; (find-fline "~/2016.1-C2/" "2016.1-C2.pdf")
;; (c2q161  1 "20160425" "Integração e EDOs")
;; (c2q161  5 "20160427" "(quadro de giz)")
;; (c2q161  9 "20160502" "Aproximações por somatórios")
;; (c2q161 11 "20160502" "inf e sup; visualizando somatórios")
;; (c2q161 13 "20160504" "Norma de partição")
;; (c2q161 16 "20160509" "Partições pontilhadas")
;; (c2q161 18 "20160509" "TFC 1")
;; (c2q161 19 "20160509" "TFC 2")
;; (c2q161 21 "20160511" "TFC 1 e 2 de novo")
;; (c2q161 23 "20160516" "Substituição")
;; (c2q161 23 "20160516" "Integral indefinida")
;; (c2q161 27 "20160518" "Integração por partes, `onde', `seja'")
;; (c2q161 29 "20160523" "Série de Taylor, e^iz")
;; (c2q161 33 "20160525" "Integrais de funções inversas")
;; (c2q161 36 "20160530" "Derivadas de funções inversas")
;; (c2q161 38 "20160530" "Frações parciais")
;; (c2q161 40 "20160601" "Método de Heaviside")
;; (c2q161 43 "20160601" "Substituição trigonométrica")
;; (c2q161 46 "20160606" "Substituição trigonométrica")
;; (c2q161 48 "20160608" "Integrais impróprias")
;; (c2q161 50 "20160613" "Integrais impróprias")
;; (c2q161 55 "20160627" "Introdução a EDOs")
;; (c2q161 58 "20160629" "EDOs homogêneas")
;; (c2q161 53 "20160622")

;; «c2q162» (to ".c2q162")
;; (c2q162  1 "20160829" "Introdução")
;; (c2q162  3 "20160831" "Aproximações (trapézios)")
;; (c2q162  5 "20160905" "Partições, refinamentos, normas, TFC1, TFC2")
;; (c2q162  8 "20160912" "TFC 1 e 2")
;; (c2q162  9 "20160914" "TFC 1 e 2; introdução atrasada")
;; (c2q162 11 "20160919" "Substituição")
;; (c2q162 14 "20160921" "Integral indefinida")
;; (c2q162 16 "20160926" "Aproximações polinomiais")
;; (c2q162 18 "20160928" "Truques com diferenciais")
;; (c2q162 20 "20161003" "Integração por partes; 'onde'")
;; (c2q162 22 "20161005" "Números complexos")
;; (c2q162 25 "20161010" "Multiplicação de polinômios")
;; (c2q162 28 "20161024" "Frações parciais, substituição trigonométrica")
;; (c2q162 30 "20161026" "Substituição trigonométrica: tirar constantes")
;; (c2q162 32 "20161031" "Integrais impróprias")
;; (c2q162 34 "20161107" "EDOs: introdução")
;; (c2q162 36 "20161109" "EDOs: D")
;; (c2q162 38 "20161121" "Gabarito da prova; EDOs separáveis e exatas")
;; (c2q162 41 "20161123" "Campos de direções")
;; (c2q162 43 "20161128" "EDOs exatas")
;; (c2q162 45 "20161205" "Integrais por caminhos")
;; (c2q162 46 "20161212" "Integrais por caminhos")
;; (c2q162 47 "20161214" "Revisão")

;; «c2q171» (to ".c2q171")
(defun c2qe171 (&rest rest) (interactive) (apply 'find-angg ".emacs" "c2q171" rest))
;; (c2q171  1 "20170320" "Introdução")
;; (c2q171  7 "20170322" "Aproximações por retângulos, partições")
;; (c2q171  9 "20170327" "Aproximações de f por cima e por baixo, integral, integrável")
;; (c2q171 11 "20170329" "TFC1 e TFC2")
;; (c2q171 13 "20170403" "Integrando pelo método do chutar e testar")
;; (c2q171 18 "20170405" "TFC2 e regra da substituição")
;; (c2q171 20 "20170412" "Substituição; omitindo limites de integração")
;; (c2q171 22 "20170417" "Integração por partes")
;; (c2q171 24 "20170419" "Diferenciais")
;; (c2q171 26 "20170424" "Aproximações lineares")
;; (c2q171 28 "20170426" "Aproximações lineares: truques")
;; (c2q171 30 "20170503" "Derivação implícita")
;; (c2q171 32 "20170505" "Frações parciais")
;; (c2q171 34 "20170517" "Frações parciais")
;; (c2q171 36 "20170522" "Método de Heaviside")
;; (c2q171 39 "20170524" "Integrais de potências de sen e cos")
;; (c2q171 40 "20170531" "Outras substituições trigonométricas")
;; (c2q171 41 "20170605" "Série de Taylor, exp(i theta)")
;; (c2q171 44 "20170607" "Usando exp(i theta) pra obter identidades trigonométricas")
;; (c2q171 45 "20170614" "aplicação: volumes")
;; (c2q171 46 "20170621" "aplicações: áreas e volumes; introdução a EDOs")
;; (c2q171 47 "20170626" "lambda, funções como vetores, D como operador linear")
;; (c2q171 49 "20170628" "soluções básicas de f''+af'+bf=0; exercícios, revisão")
;; (c2q171 50 "20170703" "oscilações amortecidas")
;; (c2q171 52 "20170710" "campos de direções e variáveis separáveis")
;; (c2q171 54 "20170712" "EDOs exatas (casos polinomiais)")

;; «c2q172» (to ".c2q172")
;; (c2q172  1 "20170821" "Introdução, subst, regra da cadeia, EDOs, áreas")
;; (c2Q172  3 "20170823" "Somas de retângulos")
;; (c2q172  5 "20170828" "Exercícios de funções-escada")
;; (c2Q172  6 "20170830" "Exercícios de aproximações")
;; (c2q172 10 "20170904" "Exercícios de TFC1 e TFC2")
;; (c2Q172 13 "20170906" "Mais versões das regras de substituição")
;; (c2q172 17 "20170911" "Muitos exercícios de substituição")
;; (c2Q172 18 "20170913" "Aproximações por polinômios e séries de Taylor")
;; (c2q172 21 "20170918" "Raio de convergência, revisão de complexos")
;; (c2Q172 24 "20170920" "Aplicações de e^ia")
;; (c2q172 27 "20170925" "Integração por partes e início de frações parciais")
;; (c2Q172 29 "20170927" "Somar, multiplicar e dividir polinômios")
;; (c2q172 32 "20171002" "Método de Heaviside e substituição trigonométrica")
;; (c2Q172 34 "20171004" "Substituição trigonométrica")
;; (c2q172 36 "20171009" "Substituição trigonométrica: outros tipos")
;; (c2Q172 37 "20171011" "Revisão de TFC2 (preparação)")
;; (c2q172 38 "20171016" "Mini-revisão de TFC2; propriedades da integral definida")
;; (c2Q172 40 "20171018" "Introdução a integrais impróprias")
;; (c2q172 43 "20171030" "Critérios de comparação")
;; (c2Q172 44 "20171101" "Critérios de comparação; aplicação: volumes")
;; (c2q172 48 "20171106" "Revisão")
;; (c2Q172 49 "20171122" "Introdução a EDOs")
;; (c2q172 51 "20171127" "Introdução a EDOs 2")
;; (c2Q172 53 "20171129" "Soluções da forma e^iax cos bx; variáveis separáveis")
;; (c2q172 55 "20171204" "Variáveis separáveis; curvas de nível; EDOs exatas")
;; (c2Q172 57 "20171206" "EDOs não exatas")
;; (find-code-quadro "2017.2-C2" "c2q172")
        (code-quadro "2017.2-C2" "c2q172")

;; (find-code-quadro "2017.2-C2" "c2q172")
;; (find-code-quadro "2017.2-C2" "c2q")


;; «c2q181» (to ".c2q181")
;; (c2q181  1 "20180312" "Área sob uma curva; funções escada e definidas por casos")
;; (c2q181  3 "20180314" "Áreas como somas de retângulos")
;; (c2q181  5 "20180319" "Métodos L, R, max, min, p.m., trapézio, inf, sup")
;; (c2q181  7 "20180321" "Refinamentos de partições; integral por cima e por baixo")
;; (c2q181  9 "20180326" "Funções integráveis e não integráveis")
;; (c2q181 12 "20180328" "TFC1")
;; (c2q181 13 "20180402" "TFC2; introdução a integração por subsituição")
;; (c2q181 15 "20180404" "Integral indefinida; S3I e TFC2")
;; (c2q181 17 "20180411" "Integração por partes")
;; (c2q181 18 "20180416" "Int (sen x)^a (cos x)^b dx")
;; (c2q181 20 "20180418")
;; (c2q181 22 "20180425" "ln |x|")
;; (c2q181 23 "20180502" "Frações parciais")
;; (c2q181 25 "20180507" "Método de Heaviside")
;; (c2q181 27 "20180509" "Substituição trigonométrica")
;; (c2q181 30 "20180514" "Substituição trigonométrica (mais coisas)")

;; «c2q182» (to ".c2q182")
;; (c2q182  1 "20180813" "Introdução: áreas sob curvas, EDOs, funções-escada")
;; (c2q182  2 "20180815" "Partições e somatórios")
;; (c2q182  3 "20180820" "Somatórios de sups e infs; definição de integral")
;; (c2q182  4 "20180820" "Funções integráveis")
;; (c2q182  5 "20180822" "TFC1")
;; (c2q182  6 "20180822" "TFC2; substituição")
;; (c2q182  7 "20180827" "Algumas fórmulas de integração: TFC2...S3I. Integral indefinida")
;; (c2q182  8 "20180827" "Algumas fórmulas de integração: TFC2...S3I. Integral indefinida")
;; (c2q182  9 "20180829" "Substituição, integração por partes")
;; (c2q182 10 "20180829" "Integração por partes: exercícios")
;; (c2q182 11 "20180903" "Derivada da função inversa; mais integração por partes")
;; (c2q182 12 "20180903" "Exercícios")
;; (c2q182 13 "20180905" "Consequencias da derivada do ln; integrando funções racionais")
;; (c2q182 14 "20180910" "Integrando funções racionais")
;; (c2q182 15 "20180910" "Integrando funções racionais: notação de caixinhas")
;; (c2q182 16 "20180912" "Divisão de polinômios com resto; Heaviside")
;; (c2q182 17 "20180912" "Divisão de polinômios com resto; Heaviside")
;; (c2q182 18 "20180917" "Substituição trigonométrica")
;; (c2q182 19 "20180919" "Substituição trigonométrica")
;; (c2q182 20 "20180924" "e^it = cos t + i sen t")
;; (c2q182 21 "20180924" "e^it = cos t + i sen t")
;; (c2q182 22 "20180926" "Truque baseado em e^it = cos t + i sen t")
;; (c2q182 23 "20181008" "Revisão, dúvidas, exercícios")
;; (c2q182 24 "20181024" "Comprimento de arco")
;; (c2q182 25 "20181024" "Comprimento de arco")
;; (c2q182 26 "20181029" "Volume de sólidos de rotação")
;; (c2q182 27 "20181031" "Área do tronco de cone")
;; (c2q182 28 "20181105" "Área do tronco de cone")
;; (c2q182 29 "20181105" "Área do tronco de cone")
;; (c2q182 30 "20181112" "EDOs linears com coefs constantes")
;; (c2q182 31 "20181112" "EDOs linears com coefs constantes")
;; (c2q182 32 "20181121" "Variáveis separáveis")
;; (c2q182 33 "20181126" "EDOs exatas")
;; (c2q182 34 "20181126" "EDOs exatas")
;; (c2q182 35 "20181128" "Aproximações lineares, derivadas parciais, d/dx F(x,f(x))")
;; (c2q182 36 "20181128" "Aproximações lineares, derivadas parciais, d/dx F(x,f(x))")
;; (c2q182 37 "20181205" "EDOs exatas")

;; (find-code-quadro "2018.1-C2" "c2q181")
;; (find-code-quadro "2018.1-C2" "c2q")
        (code-quadro "2018.1-C2" "c2q181")
        (code-quadro "2018.1-C2" "c2q")
;; (find-code-quadro "2018.2-C2" "c2q182")
;; (find-code-quadro "2018.2-C2" "c2q")
        (code-quadro "2018.2-C2" "c2q182")
        (code-quadro "2018.2-C2" "c2q")
;; (find-code-quadro "2019.1-C2" "c2q191")
;; (find-code-quadro "2019.1-C2" "c2q")
        (code-quadro "2019.1-C2" "c2q191")
        (code-quadro "2019.1-C2" "c2q")

;; «c2q191»  (to ".c2q191")
;; (find-angg ".emacs" "c2q191")
;; (c2q191  1 "20190320" "Áreas sob curvas, funções definidas por casos")
;; (c2q191  3 "20190327" "Exercícios de interpretar somatórios")
;; (c2q191  5 "20190329" "Partições, sup e inf, integrais por cima e por baixo")
;; (c2q191  8 "20190403" "Sup e inf, funções integráveis")
;; (c2q191 10 "20190405" "Funções uniformemente contínuas são integráveis")
;; (c2q191 12 "20190412" "TFC1, Antiderivadas")
;; (c2q191 15 "20190417" "TFC2; usamos isto: (c2mp 1)")
;; (c2q191 17 "20190424" "Truques sujos com du e dx")
;; (c2q191 19 "20190426" "Integrais de potências de sen e cos")
;; (c2q191 21 "20190426" "Integral de 1/x e ln x; integração por partes")
;; (c2q191 23 "20190503" "Substituição trigonométrica; aviso sobre o trabalho 1")
;; (c2q191 26 "20190517" "Frações parciais; truques com polinômios")
;; (c2q191 29 "20190522" "Dúvidas; áreas")
;; (c2q191 31 "20190524" "E = c + is")
;; (c2q191 34 "20190529" "E = c + is; Heaviside")
;; (c2q191 36 "20190531" "Comprimentos de curvas; link de video-aula")
;; (c2q191 38 "20190607" "sen(2x)^2 * cos(4x)^2; superfícies de revolução; EDOs")
;; (c2q191 42 "20190612" "superfícies de revolução; campos de direções; vars seps")
;; (c2q191 45 "20190619" "D; lambda; funções como vetores")
;; (c2q191 51 "20190626" "(D-(a+ib))(D-(a-ib))f; probs. valor inicial; EDOs exatas")
;; (c2q191 53 "20190626"   "Notação bidimensional")
;; (c2q191 54 "20190628" "EDOs exatas")
;; (c2q191 57 "20190703" "Dúvidas; discussão do trabalho 2")

;; «c2q192»  (to ".c2q192")
;; (find-angg ".emacs" "c2q192")
;; (find-TH "2019.2-C2" "programa")
;; (find-code-quadro "2019.2-C2" "c2q192")
;; (c2q192  1 "20190814 peq aula 1: introdução a EDOs e a integrais como áreas")
;; (c2q192  4 "20190815 gde aula 1: introdução a EDOs e a integrais como áreas")
;; (c2q192  7 "20190816 peq aula 2: área sob/entre; como visualizar certos somatórios")
;; (c2q192 10 "20190822 gde aula 2: área sob/entre; como visualizar certos somatórios")
;; (c2q192 13 "20190823 gde aula 3: partições, [L], [R], [min], [max], [M], [Trap]")
;; (c2q192 14 "20190823 peq aula 3: partições, [L], [R], [min], [max], [M], [Trap]")
;; (c2q192 15 "20190828 peq aula 4: [inf] e [sup], funções integráveis, intro TFC1")
;; (c2q192 20 "20190829 gde aula 4: [inf] e [sup], funções integráveis, intro TFC1")
;; (c2q192 22 "20190830 gde aula 5: intro TFC1 e TFC2")
;; (c2q192 25 "20190830 peq aula 5: intro TFC1 e TFC2")
;; (c2q192 28 "20190904 peq aula 6: folhas sobre [:=] e integração por substituição")
;; (c2q192 30 "20190905 gde aula 6: folhas sobre [:=] e integração por substituição")
;; (c2q192 32 "20190906 gde aula 7: integração por partes; potências de sen e cos")
;; (c2q192 34 "20190906 peq aula 7: integração por partes; potências de sen e cos")
;; (c2q192 37 "20190911 peq aula 8: Como integrar funções racionais, parte 1")
;; (c2q192 40 "20190912 gde aula 8: Como integrar funções racionais, parte 1")
;; (c2q192 43 "20190913 gde aula 9: ...parte 2: truques com polinômios, Heaviside")
;; (c2q192 46 "20190913 peq aula 9: ...parte 2: truques com polinômios, Heaviside")
;; (c2q192 50 "20190918 peq aula 10: substituição trigonométicas")
;; (c2q192 54 "20190919 gde aula 10: substituição trigonométicas")
;; (c2q192 58 "20190920 gde aula 11: introdução a série de Taylor")
;; (c2q192 60 "20190920 peq aula 11: introdução a série de Taylor; mini-teste 1")
;; (c2q192 63 "20190925 peq aula 12: E=c+is e aplicações")
;; (c2q192 65 "20190926 gde aula 12: E=c+is e aplicações; mini-teste 1")
;; (c2q192 68 "20190927 gde aula 13: E=c+is e aplicações; áreas entre curvas (<- não)")
;; (c2q192 69 "20190927 peq aula 13: E=c+is e aplicações; áreas entre curvas")
;; (c2q192 70 "20190927 peq aula 13: E=c+is e aplicações; áreas entre curvas; sqrt(1-x^2)")
;; (c2q192 71 "20191004 gde aula 14: aula quase enforcada - revisão e dúvidas")
;; (c2q192 74 "20191004 peq aula 14: aula quase enforcada - revisão e dúvidas")
;; (c2q192 75 "20191009 peq aula 15: somas de Riemann e volumes")
;; (c2q192 77 "20191010 gde aula 15: somas de Riemann e volumes")
;; (c2q192 79 "20191011 gde aula 16: comprimentos de curvas")
;; (c2q192 82 "20191011 peq aula 16: comprimentos de curvas")
;; (c2q192 84 "20191016 peq aula 17: variáveis separáveis, áreas de polígonos")
;; (c2q192 87 "20191017 gde aula 17: variáveis separáveis, áreas de polígonos")
;; (c2q192 90 "20191018 gde aula 18: áreas de superfícies de revolução")
;; (c2q192 91 "20191018 peq aula 18: áreas de superfícies de revolução")
;; (c2q192 93 "20191101 gde aula 19: f''+7f+10f = 0 via Álgebra Linear")
;; (c2q192 95 "20191101 peq aula 19: f''+7f+10f = 0 via Álgebra Linear, aviso MT")
;; (c2q192 98 "20191106 peq aula 20: f''+af'+bf = 0 complexo, valor inicial, polígono")
;; (c2q192 101 "20191107 gde aula 20: f''+af'+bf = 0 complexo, valor inicial")
;; (c2q192 103 "20191108 gde aula 21: f''+af'+bf = 0 complexo, poligono")
;; (c2q192 104 "20191108 peq aula 21: introdução a EDOs exatas; mini-teste")
;; (c2q192 106 "20191113 peq aula 22: EDOs exatas - continuação - notação bidimensional")
;; (c2q192 108 "20191114 gde aula 22: introdução a EDOs exatas; mini-teste")
;; (c2q192 110 "20191122 gde aula 23: dúvidas")
;; (c2q192 111 "20191122 peq aula 23: dúvidas")
;; (c2q192 112 "20191127 peq aula 24: exactness / fator integrante (Trench)")
;; (c2q192 113 "20191128 gde aula 24: mais sobre EDOs exatas / notação de caixinhas")
;; (c2q192 115 "20191129 gde aula 25: fatores integrantes")
;; (c2q192 116 "20191129 peq aula 25: fatores integrantes (Trench)")

;; (c2m192p1p 4 "gabarito-maxima")
;; (c2m192p1a   "gabarito-maxima")
;; (c2m192p2p)
;; (c2m192p2a)
(code-etex-tla "c2p1o"    "2019-2-C2-P1")
(code-etex-tla "c2m192p1" "2019-2-C2-P1")
(code-etex-tla "c2m192p2" "2019-2-C2-P2")

;; (find-code-quadro "2019.2-C2" "c2q192" 10)
;; (find-pdf-page "/sda1/home/edrx/2019.1-C2/reginaldo/cronograma-curso-1-2019.pdf")

;; (find-code-quadro "2019.2-C2" "c2q192")
;; (find-code-quadro "2019.2-C2" "c2q")
        (code-quadro "2019.2-C2" "c2q192")
        (code-quadro "2019.2-C2" "c2q")

(defun c2qe (&rest rest) (interactive) (apply 'find-angg ".emacs" "c2q192" rest))

;; «c3q191»  (to ".c3q191")
;; (c3q191  1 "20190321" "Introdução ao curso; como visualizar vetores")
;; (c3q191  3 "20190328" "Revisão de norma, ortogonalidade e paralelismo")
;; (c3q191  4 "20190329" "Exercícios de retas parametrizadas")
;; (c3q191  5 "20190404" "Exemplos de retas secantes")
;; (c3q191  6 "20190405" "Exercícios da aula anterior (eu trouxe impressos)")
;; (c3q191  7 "20190411" "Trajetória circular; retas secantes")
;; (c3q191  8 "20190411" "Cicloide")
;; (c3q191  9 "20190412" "Derivada de f:R->R^2 usando epsilons e deltas")
;; (c3q191 11 "20190425" "Curvas de nível")
;; (c3q191 13 "20190426" "Derivadas parciais")
;; (c3q191 15 "20190502" "Vetor gradiente e plano tangente")
;; (c3q191 17 "20190503" "Derivada total")
;; (c3q191 18 "20190503" "Notacao para substituicao")
;; (c3q191 19 "20190516" "Exercício: sen x + sen y, gradientes e planos tangentes ")
;; (c3q191 20 "20190517" "Aproximações de 2ª ordem; trabalho pra casa")
;; (c3q191 21 "20190523" "Discussão sobre questões do trabalho")
;; (c3q191 22 "20190523" "Aula extra de dúvidas")
;; (c3q191 23 "20190524" "Mais sobre ders de 2ª ordem; menção ao teorema de Young")
;; (c3q191 24 "20190530" "Aula de dúvidas")
;; (c3q191 25 "20190530" "Atendimento e dúvidas")
;; (c3q191 26 "20190606" "Introdução a abertos e fechados em R^2")
;; (c3q191 27 "20190607" "Interior e fronteira; f^{-1}")
;; (c3q191 28 "20190613" "Continuidade por bolas")
;; (c3q191 29 "20190627" "Teorema de Weierstrass e exercícios")
;; (c3q191 30 "20190628" "Trabalho valendo pontos na P2")
;; (c3q191 31 "20190703" "Dúvidas")

;; «c3q192»  (to ".c3q192")
;; (find-code-quadro "2019.2-C3" "c3q192")
;; (c3q192  1 "20190815" "Pontos e vetores graficamente; reta parametrizada; trajetórias")
;; (c3q192  5 "20190816" "Derivadas e retas tangentes visualmente")
;; (c3q192  7 "20190822" "Movimento uniformemente acelerado; parábolas parametrizadas; ponto base")
;; (c3q192  8 "20190823" "Parábolas parametrizadas em R2; aproxs de 1a e 2a ordem")
;; (c3q192  9 "20190829" "Funções de R2 em R; curvas de nível a partir do diagrama de números")
;; (c3q192 11 "20190830" "F(P(t)); trajetórias em superfícies; notação de físicos; retas e planos tangentes")
;; (c3q192 12 "20190830" "Exercícios 3 a 7")
;; (c3q192 13 "20190905" "Arame")
;; (c3q192 14 "20190906" "Arame")
;; (c3q192 15 "20190912" "Arame")
;; (c3q192 16 "20190913" "Representação gráfica de gradientes")
;; (c3q192 17 "20190919" "Mais sobre gradientes; plano tangente; mini-teste 1")
;; (c3q192 18 "20190920" "Subconjuntos de R2; fecho e interior")
;; (c3q192 19 "20190926" "Abertos e fechados; imagem inversa; Teorema de Weierstrass; triangulo e xy")
;; (c3q192 20 "20190927" "Mais imagem inversa e Teorema de Weierstrass")
;; (c3q192 21 "20191004" "Dia quase enforcado, veio pouca gente. Dúvidas, 1/(x^2+y^2)")
;; (c3q192 22 "20191010" "Sequências convergentes; como escrever sequências")
;; (c3q192 23 "20191011" "Dúvidas: parábolas parametrizadas e fecho")
;; (c3q192 24 "20191017" "Revisão para a prova")
;; (c3q192 25 "20191031" "Discussão sobre a questão 1 da prova")
;; (c3q192 27 "20191101" "Cobb-Douglas e derivadas direcionais (aula ruim)")
;; (c3q192 28 "20191107" "Contas fora do ponto base zeram a questão")
;; (c3q192 30 "20191108" "Exercícios sobre ponto base; regra da cadeia no Bortolossi")
;; (c3Q192 31 "20191114" "Polinômios de Taylor")
;; (c3q192 32 "20191122" "Aula quase enforcada. Regra da cadeia em R2->R2->R2.")
;; (c3q192 33 "20191128" "Multiplicadores de Lagrange")
;; (c3q192 34 "20191129" "Multiplicadores de Lagrange 2")
;; (c3q192 35 "20191205" "Dt Dt F(g(t),h(t))")

;; (c2m192tudop 1 "title")
;; (c2m192tudoa   "title")

;; (find-code-quadro "2019.1-C3" "c3q191")
;; (find-code-quadro "2019.1-C3" "c3q")
        (code-quadro "2019.1-C3" "c3q191")
        (code-quadro "2019.1-C3" "c3q")
;; (find-code-quadro "2019.2-C3" "c3q192")
;; (find-code-quadro "2019.2-C3" "c3q")
        (code-quadro "2019.2-C3" "c3q192")
        (code-quadro "2019.2-C3" "c3q")

(defun c3qe (&rest rest) (interactive) (apply 'find-angg ".emacs" "c3q192" rest))




;; «gaq161» (to ".gaq161")
;; (gaq161  1 "20160425" "Matrizes, pontos, vetores, operações")
;; (gaq161  6 "20160427")
;; (gaq161  8 "20160427" "||kv|| = |k| ||v||")
;; (gaq161  9 "20160502" "Significado gráfico")
;; (gaq161 13 "20160504")
;; (gaq161 16 "20160509")
;; (gaq161 20 "20160511")
;; (gaq161 22 "20160516")
;; (gaq161 24 "20160518")
;; (gaq161 27 "20160523")
;; (gaq161 30 "20160525" "sen, cos, arcsen, arccos")
;; (gaq161 34 "20160530" "angulos (construir, transferir)")
;; (gaq161 37 "20160601")
;; (gaq161 42 "20160606")
;; (gaq161 44 "20160608" "P1")
;; (gaq161 45 "20160613" "Introdução a cônicas")
;; (gaq161 52 "20160615")
;; (gaq161 54 "20160627")
;; (gaq161 57 "20160629")
;; (gaq161 58 "20160704" "Visualizar R^3")
;; (gaq161 60 "20160706")
;; (gaq161 63 "20160711")
;; (gaq161 65 "20160713")
;; (gaq161 66 "20160718")
;; (gaq161 68 "20160720")
;; (gaq161 70 "20160725")

;; «gaq162» (to ".gaq162")
;; (gaq162  1 "20160829" "Introdução: tipos")
;; (gaq162  4 "20160831" "")
;; (gaq162  5 "20160905" "")
;; (gaq162  6 "20160912" "")
;; (gaq162  7 "20160914" "")
;; (gaq162 10 "20160919" "")
;; (gaq162 11 "20160926" "Exercícios sobre coordenadas")
;; (gaq162 12 "20160928" "")
;; (gaq162 13 "20161003" "")
;; (gaq162 14 "20161005" "Como calcular a projeção")
;; (gaq162 17 "20161010" "")
;; (gaq162 18 "20161024" "")
;; (gaq162 20 "20161026" "")
;; (gaq162 21 "20161031" "")
;; (gaq162 22 "20161107" "Ângulos")
;; (gaq162 23 "20161109" "")
;; (gaq162 24 "20161121" "")
;; (gaq162 26 "20161123" "Elipses")
;; (gaq162 27 "20161128" "")
;; (gaq162 28 "20161205" "Hipérboles")
;; (gaq162 29 "20161212" "")
;; (gaq162 30 "20161219" "")
;; (gaq162 31 "20161221" "")

;; «gaq171» (to ".gaq171")
(defun gaqe171 (&optional a b c) (interactive) (find-angg ".emacs" "gaq171" a b c))
;; (gaq171  1 "20170320" "")
;; (gaq171  2 "20170322" "")
;; (gaq171  3 "20170327" "")
;; (gaq171  4 "20170329" "Representações gráficas de pontos e vetores")
;; (gaq171  6 "20170403" "Coordenadas")
;; (gaq171  8 "20170405" "Desenhos sem coordenadas")
;; (gaq171  9 "20170412" "Projeções ortogonais")
;; (gaq171 10 "20170417" "Construções, projeções ortogonais não-olhométricas")
;; (gaq171 11 "20170419" "Fórmula para o Pr")
;; (gaq171 12 "20170424" "Distância entre ponto e reta")
;; (gaq171 14 "20170426" "Propriedades do Pr")

;; «gaq172» (to ".gaq172")
;; (find-quadro-links "ga" "172")
;; (find-code-quadro "2017.2-GA" "gaq172")
(defun gaqe172 (&rest rest) (interactive) (apply 'find-angg ".emacs" "gaq172" rest))
;; (gaq172  1 "20170821" "Introdução: conjuntos, exercícios")
;; (gaq172  2 "20170823" "Introdução: conjuntos, exercícios")
;; (gaq172  3 "20170828" "Quando dois conjuntos são iguais?")
;; (gaq172  4 "20170830" "Pontos e vetores: introdução")
;; (gaq172  6 "20170904" "Representação gráfica de pontos e vetores; propriedades; norma e perp")
;; (gaq172  9 "20170906" "Demonstrações; ||kv|| = k||v||")
;; (gaQ172 11 "20170911" "Como visualizar F(x,y), A+tv e O+au+bv")
;; (gaq172 12 "20170913" "Coordenadas")
;; (gaq172 13 "20170918" "Coordenadas: folha 23")
;; (gaq172 15 "20170920" "Coordenadas: o lado algébrico")
;; (gaq172 16 "20170925" "Interseção de retas parametrizadas")
;; (gaQ172 16 "20170925" "Interseção de retas parametrizadas")
;; (gaQ172 17 "20170927" "Folha 25: Pr_u w = lambda u")
;; (gaq172 19 "20171002" "Mais projeção")
;; (gaq172 20 "20171004" "d(P,r)")
;; (gaq172 22 "20171009" "vetores unitários, normais, modos de definir retas")
;; (gaq172 23 "20171011" "modos de definir retas: conversões")
;; (gaq172 24 "20171016" "dois modos de calcular d(P,r)")
;; (gaq172 25 "20171018" "dois modos de calcular d(P,r): segunda fórmula")
;; (gaq172 26 "20171030" "ângulos")
;; (gaq172 27 "20171101" "ângulos de novo")
;; (gaq172 28 "20171106" "áreas e círculos")
;; (gaq172 29 "20171108" "círculos")
;; (gaq172 30 "20171113" "interseção de dois círculos")
;; (gaq172 31 "20171127" "cônicas")
;; (gaq172 32 "20171129" "hipérboles")
;; (gaq172 33 "20171204" "R^3")
;; (gaq172 34 "20171206" "determinantes e produtos cruzados")

;; «gaq181» (to ".gaq181")
;; (find-quadro-links "ga" "181")
;; (find-code-quadro "2018.1-GA" "gaq181")
(code-quadro "2018.1-GA" "gaq181")
(defun gaqe181 (&rest rest) (interactive) (apply 'find-angg ".emacs" "gaq181" rest))
(defalias 'gaq 'gaq181)
;; (gaQ181  1 "20180312" "Substituição, tipos, set comprehensions")
;; (gaq181  2 "20180314" "Retas")
;; (gaq181  3 "20180321" "Execícios de produto de dois vetores")
;; (gaq181  4 "20180326" "Sistemas de coordenadas")
;; (gaq181  5 "20180402" "Sistemas de coordenadas")
;; (gaq181  6 "20180404" "F(x,y)")
;; (gaq181  7 "20180411" "Demonstrações")
;; (gaq181  8 "20180416" "Demonstrações")
;; (gaq181  9 "20180418" "Demonstrações, introdução ao Pr")
;; (gaq181 10 "20180425" "Propriedades em forma curta")
;; (gaq181 11 "20180502" "Combinação linear; projeções")
;; (gaq181 12 "20180507" "Projeção vão ser usadas pra entender cos")

(defun gaqe    (&rest rest) (interactive) (apply 'gaqe181 rest))
;; (gaq181  1 "201708xx" "")


;; «mdq182» (to ".mdq182")
;; (find-code-quadro "2018.2-MD" "mdq182")
;; (find-zsh "cd ~/2018.2-MD/; ls *_MD??.jpg | cut -b-8 | print-quadro-sexps mdq182")
;; (find-sh0 "cp -v ~/2018.2-MD/2018.2-MD.pdf /tmp/")
;; (find-xpdfpage "/tmp/2018.2-MD.pdf" 64)
(code-quadro "2018.2-MD" "mdq182")
(defun mdqe    (&rest rest) (interactive) (apply 'mdqe182 rest))

;; (mdq182  1 "20180813" "Apresentação do curso, lista 1")
;; (mdq182  2 "20180814" "Apresentação do curso, lista 1")
;; (mdq182  3 "20180815" "Definições")
;; (mdq182  4 "20180815" "Definições")
;; (mdq182  5 "20180820" "Coisas para entender as seções teorema e prova do livro")
;; (mdq182  6 "20180820" "Provas com suponha e então")
;; (mdq182  7 "20180821" "Coisas para entender as seções teorema e prova do livro")
;; (mdq182  8 "20180821" "Provas com suponha e então")
;; (mdq182  9 "20180822" "Suponha, contextos, conjuntos")
;; (mdq182 10 "20180822" "Suponha, contextos, conjuntos")
;; (mdq182 11 "20180827" "Contextos, suponhas abertos, erros comuns, fecha suponha")
;; (mdq182 12 "20180828" "Contextos, contextos abertos")
;; (mdq182 13 "20180829" "Contextos e proposições")
;; (mdq182 14 "20180829" "Leis de De Morgan")
;; (mdq182 15 "20180829" "Contextos e contra-exemplos")
;; (mdq182 16 "20180903" "Quantificadores, variáveis, o erro mais comum")
;; (mdq182 17 "20180904" "Quantificadores, variáveis, o erro mais comum")
;; (mdq182 18 "20180905" "Truque: use um 'com' mais complicado; objetos matemáticos")
;; (mdq182 19 "20180905" "Objetos matemáticos; combinatória")
;; (mdq182 20 "20180905")
;; (mdq182 21 "20180905")
;; (mdq182 22 "20180910")
;; (mdq182 23 "20180911")
;; (mdq182 24 "20180912")
;; (mdq182 25 "20180912")
;; (mdq182 26 "20180917" "União, interseção, ex!, funções")
;; (mdq182 27 "20180918" "União, interseção, ex!, funções")
;; (mdq182 28 "20180919" "Funções injetivas e sobrejetivas, relações")
;; (mdq182 29 "20180919" "Funções injetivas e sobrejetivas, relações")
;; (mdq182 30 "20180924" "Caminhos em grafos direcionados")
;; (mdq182 31 "20180925" "Caminhos em grafos direcionados")
;; (mdq182 32 "20180926" "Definições de passeio, caminho e ciclo no Scheinerman")
;; (mdq182 33 "20180926" "Definições de passeio, caminho e ciclo no Scheinerman")
;; (mdq182 34 "20181002" "Dúvidas (turma pequena)")
;; (mdq182 35 "20181008" "Ordens parciais, fechos, união<->ou, quantificadores ilimitados")
;; (mdq182 36 "20181008" "2^A, Pts(A), B^A, partições")
;; (mdq182 37 "20181023" "Dúvidas da lista de exercícios sobre a ordem parcial das proposições")
;; (mdq182 38 "20181024" "Dúvidas da lista de exercícios sobre a ordem parcial das proposições")
;; (mdq182 39 "20181024" "Dúvidas da lista de exercícios sobre a ordem parcial das proposições")
;; (mdq182 40 "20181030" "Discussão da P1")
;; (mdQ182 41 "20181030" "Discussão da P1")
;; (mdq182 42 "20181031" "Sistemas dedutivos sérios, proposições arbitrárias")
;; (mdq182 43 "20181031" "Sistemas dedutivos sérios, proposições arbitrárias, regras admissíveis")
;; (mdq182 44 "20181031" "Sistemas dedutivos sérios, proposições arbitrárias, regras admissíveis")
;; (mdq182 45 "20181105" "(Mais) introdução a dois sistemas dedutivos sérios")
;; (mdq182 46 "20181106" "(Mais) introdução a dois sistemas dedutivos sérios")
;; (mdq182 47 "20181107" "Exercícios de cálculo de sequentes")
;; (mdq182 48 "20181112")
;; (mdq182 49 "20181113")
;; (mdq182 50 "20181114")
;; (mdq182 51 "20181114")
;; (mdq182 52 "20181114")
;; (mdq182 53 "20181114")
;; (mdq182 54 "20181121" "Introdução a indução")
;; (mdq182 55 "20181121" "Introdução a indução")
;; (mdq182 56 "20181121")
;; (mdq182 57 "20181121")
;; (mdq182 58 "20181126" "Regras de dedução que faltam, estruturas algébricas")
;; (mdq182 59 "20181126" "Regras de dedução que faltam, estruturas algébricas")
;; (mdq182 60 "20181127")
;; (mdq182 61 "20181128")
;; (mdq182 62 "20181128")
;; (mdq182 63 "20181128")
;; (mdq182 64 "20181203" "Definições recursivas; tou com as notas da P1")
;; (mdQ182 64 "20181203" "Definições recursivas")
;; (mdq182 60 "20181127" "Aritmética modular, permutações")
;; (mdq182 61 "20181128")
;; (mdq182 62 "20181128")
;; (mdq182 63 "20181128")
;; (mdq182 64 "20181203")
;; (mdq182 65 "20181204")
;; (mdq182 66 "20181205")
;; (mdq182 67 "20181205")
;; (mdq182 68 "20181210" "Grupos, um grupo de strings, subgrupos")
;; (mdq182 69 "20181210" "Grupos, um grupo de strings, subgrupos")
;; (mdq182 70 "20181212" "Regras admissíveis e regras estranhas")
;; (mdq182 71 "20181212" "Regras admissíveis e regras estranhas")

;; (mdq182 29 "20180918" "Conjunto das partes")





;; «size» (to ".size")
;; (find-es "emacs" "adjust-geometry")
;; (find-es "eev" "video-eev-quick-0")
;; Starting size:               (size  80 35)
;; Maximized:                   (size 210 61)
;; For screencasts in 1024x768: (size 167 59)
;; For screencasts in 1024x640: (size 167 49)
;; Smaller than an xterm:       (size  70 20)
;; For eepitch-tclsh with Tk:   (size 164 56)
;; For editing subtitles:       (size 125 56)
;;
(defun size (&optional cols rows)
  (interactive)
  (if (not cols)
      (find-angg ".emacs" "size")
    (set-frame-size nil cols rows)))


;; «ee-calendar-generate» (to ".ee-calendar-generate")
;; (find-es "emacs" "calendar")
;; (ee-calendar-generate 1 2018)
;; (ee-calendar-generate 1 2019)
(defun ee-calendar-generate (month year)
  (require 'calendar)
  (with-temp-buffer
    (calendar-generate month year)
    (buffer-substring-no-properties (point-min) (point-max))))


;; (gaq 19)

(defun co  () (interactive) (find-TH "coiote"))
(defun cou () (interactive) (find-TH "coiote" "coiote-upload"))
(defun vcarta () (interactive) (find-TH "2016-v"))


;; «find-planarhas» (to ".find-planarhas")
;; (find-fline "~/ORG/index.org" "* laq")
;; (find-planarhas 0)
;; (find-planarhas)
;; (find-planarhas ".one-page-intro")
(defun find-planarhas (&rest r)
  (interactive "P")
  (if (eq (car r) 0)
      (find-angg ".emacs" "find-planarhas")
    (apply 'find-angg "LATEX/2015planar-has.tex" r)))
;;
(code-xpdf     "planarhas" "~/LATEX/2015planar-has.pdf")
(code-pdf-text "planarhas" "~/LATEX/2015planar-has.pdf")
;; (find-planarhaspage)
;; (find-planarhastext)
;; (find-planarhaspage 2 "One page intro (to the main theorem)")
;; (find-planarhastext 2 "One page intro (to the main theorem)")
;; (find-planarhaspage 10 "2-Column graphs")
;; (find-planarhastext 10 "2-Column graphs")
;; (find-planarhaspage 13 "Part 2:" "J-operators and ZQuotients")
;; (find-planarhastext 13 "Part 2:" "J-operators and ZQuotients")
;; (find-planarhaspage 25 "The algebra of piccs")
;; (find-planarhastext 25 "The algebra of piccs")
;; (find-planarhaspage 35 "Part 3:" "Seminar handouts")
;; (find-planarhastext 35 "Part 3:" "Seminar handouts")

(defun ph   () (interactive) (find-planarhas 0))
(defun pha  (&optional   a b c) (interactive) (find-LATEX "2017planar-has.tex" a b c))
(defun phs  (&optional   a b c) (interactive) (find-LATEX "2017planar-has-sajl.tex" a b c))
(defun phas (&optional   a b c) (interactive) (find-LATEX "2017planar-has-sajl.tex" a b c))
(defun phad (&optional   a b c) (interactive) (find-LATEX "2017planar-has-deleted.tex" a b c))
(defun ph1  (&optional   a b c) (interactive) (find-LATEX "2017planar-has-1.tex"))
(defun phai (&optional   a b c) (interactive) (find-LATEXsh "grep phap 2017planar-has.tex"))
(defun phsi (&optional   a b c) (interactive) (find-LATEXsh "grep phsp 2017planar-has-sajl.tex"))
(defun ph1i (&optional   a b c) (interactive) (find-LATEXsh "grep phsp 2017planar-has-1.tex"))
(defun phap (&optional n a b c) (interactive) (find-xpdfpage "~/LATEX/2017planar-has.pdf" n))
(defun phsp (&optional n a b c) (interactive) (find-xpdfpage "~/LATEX/2017planar-has-sajl.pdf" n))
(defun ph1p (&optional n a b c) (interactive) (find-xpdfpage "~/LATEX/2017planar-has-1.pdf" n))
(defun pho  (&optional   a b c) (interactive) (find-LATEX "2015planar-has.tex" a b c))
(defun phop (&optional n a b c) (interactive) (find-xpdfpage "~/LATEX/2015planar-has.pdf" n))
(defun gg   () (interactive) (find-es "googlegroups"))
(defun ebl  () (interactive) (find-angg "LATEX/2017ebl-abs.tex"))
(defun ebs  () (interactive) (find-angg "LATEX/2017ebl-slides.tex"))
(defun ebh  () (interactive) (find-angg "LATEX/2017ebl-handouts.tex"))
(defun vic  () (interactive) (find-angg "LATEX/2017vichy-abs.tex"))
(defun vic1 () (interactive) (find-angg "LATEX/2017vichy-slides-1.tex"))
(defun vic2 () (interactive) (find-angg "LATEX/2017vichy-slides-2.tex"))
(defun vic3 () (interactive) (find-angg "LATEX/2017vichy-slides-3.tex"))
(defun vic4 () (interactive) (find-angg "LATEX/2017vichy-slides-4.tex"))
(defun adj  () (interactive) (find-angg "LATEX/2017adjunctions.tex"))
(defun nm   () (interactive) (find-es "fvwm" "stalonetray"))

(defun ebsp (&optional n a b c) (interactive) (find-xpdfpage "~/LATEX/2017ebl-slides.pdf" n))
(defun ebs  (&optional   a b c) (interactive) (find-LATEX "2017ebl-slides.tex" a b c))
(defun ebh  (&optional   a b c) (interactive) (find-LATEX "2017ebl-handouts.tex" a b c))
(defun ebp  (&optional   a b c) (interactive) (find-LATEX "2017ebl-proceedings.tex" a b c))

;; (defun pha  () (interactive) (find-LATEX "2016planar-has.tex"))
;; (defun phap (&optional n a b c) (interactive) (find-xpdfpage "~/LATEX/2016planar-has.pdf" n))

;; http://www.inf.ufg.br/ebl2017/Program.pdf
;; (find-fline "$S/http/www.inf.ufg.br/ebl2017/")
(code-xpdf     "eblprogram" "$S/http/www.inf.ufg.br/ebl2017/Program.pdf")
(code-pdf-text "eblprogram" "$S/http/www.inf.ufg.br/ebl2017/Program.pdf")
;; (find-eblprogrampage)
;; (find-eblprogrampage 4 "quarta")
;; (find-eblprogrampage 6 "quinta")
;; (find-eblprogramtext)


;; http://www.inf.ufg.br/ebl2017/book_of_abstracts.pdf
(code-xpdf     "eblabstracts" "$S/http/www.inf.ufg.br/ebl2017/book_of_abstracts.pdf")
(code-pdf-text "eblabstracts" "$S/http/www.inf.ufg.br/ebl2017/book_of_abstracts.pdf")
;; (find-eblabstractspage)
;; (find-eblabstractspage 5 "Index")
;; (find-eblabstractstext)
;; (find-eblabstractspage 63 "Caio de Andrade Mendes")
;; (find-eblabstractstext 63 "Caio de Andrade Mendes")
;; (find-eblabstractspage 74 "Eduardo Ochs")
;; (find-eblabstractstext 74 "Eduardo Ochs")
;; (find-eblabstractspage 38 "Escrevendo e raciocinando com diagramas" "Petrucio")
;; (find-eblabstractstext 38 "Escrevendo e raciocinando com diagramas" "Petrucio")
;; (find-eblabstractspage 83 "Frode")
;; (find-eblabstractstext 83 "Frode")

;; «ebl2019» (to ".ebl2019")
;; https://ebl2019.ci.ufpb.br/assets/Program_EBL_2019.pdf
;; https://ebl2019.ci.ufpb.br/assets/Book_of_Abstracts_EBL_2019.pdf
;; https://mail.google.com/mail/ca/u/0/#inbox/FMfcgxwCgLzLKPJrNdWvhZNKTPCkRQbX
;; (find-fline "~/EBL/")
;; (find-fline "$S/https/ebl2019.ci.ufpb.br/assets/")
(code-pdf-page "2019eblabstracts" "~/EBL/Book of Abstracts EBL 2019.pdf")
(code-pdf-text "2019eblabstracts" "~/EBL/Book of Abstracts EBL 2019.pdf")
(code-pdf-page "2019eblprogram"   "~/EBL/Programa EBL 2019 Sketch.pdf")
(code-pdf-text "2019eblprogram"   "~/EBL/Programa EBL 2019 Sketch.pdf")
(code-pdf-page "2019eblabstracts" "$S/https/ebl2019.ci.ufpb.br/assets/Book_of_Abstracts_EBL_2019.pdf")
(code-pdf-text "2019eblabstracts" "$S/https/ebl2019.ci.ufpb.br/assets/Book_of_Abstracts_EBL_2019.pdf")
(code-pdf-page "2019eblprogram" "$S/https/ebl2019.ci.ufpb.br/assets/Program_EBL_2019.pdf")
(code-pdf-text "2019eblprogram" "$S/https/ebl2019.ci.ufpb.br/assets/Program_EBL_2019.pdf")
;; (find-2019eblprogrampage)
;; (find-2019eblprogramtext)
;; (find-2019eblabstractspage)
;; (find-2019eblabstractstext)
;; (find-2019eblabstractspage  37 "Algumas abordagens" "Ochs")
;; (find-2019eblabstractstext  37 "Algumas abordagens" "Ochs")
;; (find-2019eblabstractspage  38 "Discreta para calouros" "Ochs")
;; (find-2019eblabstractstext  38 "Discreta para calouros" "Ochs")
;; (find-2019eblabstractspage  73 "identidade entre provas")
;; (find-2019eblabstractstext  73 "identidade entre provas")
;; (find-2019eblabstractspage 135 "Arezoo Islami")
;; (find-2019eblabstractstext 135 "Arezoo Islami")
;; (find-2019eblabstractspage 172 "Five applications" "Ochs")
;; (find-2019eblabstractstext 172 "Five applications" "Ochs")
;; (find-2019eblabstractspage 143 "macbeth")
;; (find-2019eblabstractstext)
;; (find-2019eblabstractspage 24 "On Teaching Logic for Undergraduate Philosophy")
;; (find-2019eblabstractstext 24 "On Teaching Logic for Undergraduate Philosophy")
;; (find-2019eblprogrampage)
;; (find-2019eblprogramtext)
;; (find-2019eblabstractspage 31 "Some Highlights of Indian Logic")
;; (find-2019eblabstractstext 31 "Some Highlights of Indian Logic")
;; 2a (find-2019eblprogrampage 2 "Algumas Abordagens" "Ochs")
;; 2a (find-2019eblprogramtext 2 "Algumas Abordagens" "Ochs")
;; 5a (find-2019eblprogrampage 11 "Five applications" "Ochs")
;; 5a (find-2019eblprogramtext 11 "Five applications" "Ochs")



;; (find-books "__comp/__comp.el" "ierusalimschy")
(code-xpdf      "pil2" "~/books/__comp/ierusalimschy__programming_in_lua_2nd_ed.pdf")
(code-pdftotext "pil2" "~/books/__comp/ierusalimschy__programming_in_lua_2nd_ed.pdf" 19)
(code-pdf       "pil3" "~/books/__comp/ierusalimschy__programming_in_lua_3rd_ed.pdf")
(code-pdftotext "pil3" "~/books/__comp/ierusalimschy__programming_in_lua_3rd_ed.pdf" 19)


;; «texlive» (to ".texlive")
(defun tl () (interactive) (find-es "tex" "texlive-2016"))
(code-c-d "tl2017" "/usr/local/texlive/2017/")
(code-c-d "tl2018" "/usr/local/texlive/2018/")
(code-c-d "tl2021" "/usr/local/texlive/2021/")
(code-c-d "tl"        "/usr/local/texlive/2019/")
(code-c-d "tlmanuals" "/usr/local/texlive/2019/texmf-dist/doc/context/documents/general/manuals/")
;; (find-tlfile "")
;; (find-tlsh "find * | sort")
;; (find-tlfile "texmf-dist/doc/context/documents/general/manuals/")
;; (find-tlmanualsfile "")

(code-xpdf     "tlluatex" (ee-tlmanualsfile "luatex.pdf"))
(code-pdf-text "tlluatex" (ee-tlmanualsfile "luatex.pdf"))
;; (find-tlluatexpage)
;; (find-tlluatextext)
;; (find-tlluatexpage 33 "\\pdfoutput")
;; (find-tlluatextext 33 "\\pdfoutput")
;; (find-tlluatexpage 28 "\\outputmode")
;; (find-tlluatextext 28 "\\outputmode")
;; (find-tlluatexpage 33 "\\pdfpagewidth")
;; (find-tlluatextext 33 "\\pdfpagewidth")
;; (find-tlluatexpage 32 "\\pdfshellescape")
;; (find-tlluatextext 32 "\\pdfshellescape")
;; (find-tlluatexpage (+ 4 158) "9.2 The status library")
;; (find-tlluatextext (+ 4 158) "9.2 The status library")

;; «tugboat» (to ".tugboat")
;; (defun tugboat () (interactive) (find-angg ".emacs" "tugboat"))
;; (find-fline "/usr/local/texlive/2018/")
;; (find-tlfile "")
;; (find-tlsh "find * | sort | grep -i tub")
;; (find-tlfile "texmf-dist/doc/latex/tugboat/")
;; (find-fline "/usr/local/texlive/2018/texmf-dist/doc/latex/tugboat/")
(code-xpdf     "tugm" "/usr/local/texlive/2018/texmf-dist/doc/latex/tugboat/ltubguid.pdf")
(code-pdf-text "tugm" "/usr/local/texlive/2018/texmf-dist/doc/latex/tugboat/ltubguid.pdf" 0)
(code-xpdf     "tugs" "/usr/local/texlive/2018/texmf-dist/doc/latex/tugboat/tugboat.pdf")
(code-pdf-text "tugs" "/usr/local/texlive/2018/texmf-dist/doc/latex/tugboat/tugboat.pdf")
;; (find-tugmpage)
;; (find-tugmtext)
;; (find-tugspage)
;; (find-tugstext)


;; (defun sajl () (interactive) (find-angg "LATEX/2017sajl-mini.tex"))

(defun gap2oo () (interactive) (find-angg "LATEX/2016-2-GA-P2.tex"))
(defun gap2o  () (interactive) (find-angg "LATEX/2017-1-GA-P2.tex"))
(defun gap2   () (interactive) (find-angg "LATEX/2017-2-GA-P2.tex"))
(defun gavr () (interactive) (find-angg "LATEX/2017-1-GA-VR.tex"))
(defun gavs () (interactive) (find-angg "LATEX/2017-1-GA-VS.tex"))

(defun cwm  () (interactive) (find-angg "LATEX/2017cwm.tex"))
(defun cwmp (&optional n a b) (interactive) (find-xpdfpage "~/LATEX/2017cwm.pdf" n))

(code-etex "gap1"   "2017-2-GA-P1")	; (gap1p)
(code-etex "gap2"   "2017-2-GA-P2")	; (gap2p)
(code-etex "gavro"  "2017-1-GA-VR")	; (gavrop)
(code-etex "gavr"   "2017-2-GA-VR")	; (gavrp)
(code-etex "gavso"  "2017-1-GA-VS")	; (gavsop)
(code-etex "gavs"   "2017-2-GA-VS")	; (gavsp)


(code-etex "fmv"   "falta-misandria-v")

;; (vgsp)


;; (find-angg "LATEX/2017vichy-workshop.tex")
(code-etex "vw" "2017vichy-workshop")
;; (vw)

;; (find-evariable 'ee-find-xpdf-page-options)
(setq ee-find-xpdf-page-options '())
(setq ee-find-xpdf-page-options '("-fullscreen"))



;; «ee-find-djvu-cleanup» (to ".ee-find-djvu-cleanup")
;; See: (find-angg "LUA/djview-hack.lua")
;;   (find-efunction 'find-djvupage)
;;   (find-efunction 'find-djvu-page)
;;
(setq ee-find-djvu-page-options '("-fs" "-geometry" "+0+0"))
(defun ee-find-djvu-cleanup (&optional fname)
  "A hack: clean up djview's 'recentFiles=' line in the config file if needed."
  (find-sh0 "djview-hack.lua"))





;; «ee-add-find-to-head»  (to ".ee-add-find-to-head")
;; Tests: (ee-add-find-to-head '(code-c-d "C" "FOO"))
;;        (eek "<down> <<efi>>")
;;         (code-c-d "C" "FOO")
;;
(defun ee-add-find-to-head (sexp)
  (let* ((head (car sexp))
         (rest (cdr sexp))
         (fhead (intern (format "find-%S" head))))
    (cons fhead rest)))

(defalias 'efi 'ee-eval-last-sexp-with-find)
(defun          ee-eval-last-sexp-with-find ()
  "Evaluate the sexp before eol with a \"find-\" prepended to it."
  (interactive)
  (end-of-line)
  (let ((sexp (read (ee-last-sexp))))
    (eval (ee-add-find-to-head sexp))))





(defun eejump-3   () (find-windows-beginner-intro))



;; Skel: (find-code-xxx-links "latexpdfurlstuff" "tla stem page" "")
;; Test: (find-code-latexpdfurlstuff "c2m211somas2" "2021-1-C2-somas-2" 46)
;;              
(defun find-code-latexpdfurlstuff (tla stem page)
  (find-estring-elisp (ee-code-latexpdfurlstuff tla stem page)))
(defun   ee-code-latexpdfurlstuff (tla stem page)
  (ee-template0 "\
http://anggtwu.net/LATEX/{stem}.pdf#page={page}

\\ssk

{<}\\footnotesize

% ({tla}p {page})
%    http://anggtwu.net/LATEX/{stem}.pdf#page={page}
\\url{<}http://anggtwu.net/LATEX/{stem}.pdf#page={page}{>}

{>}

\\ssk
"))



(code-etex-tla "mpg"  "material-para-GA")

(code-etex "cw7"  "2017cwm")
(code-etex-tla "cwm"  "2020cwm")
(code-etex-tla "cw2"  "2022cwm")
(code-etex-tla "ele"  "2017elephant")
(code-etex-tla "iquo" "istanbulquotes")
(code-etex-tla "ph1"  "2017planar-has-1")
(code-etex-tla "ph2"  "2017planar-has-2")
(code-etex-tla "ph3"  "2017planar-has-3")
(code-etex-tla "pha"  "2017planar-has")
(code-etex-tla "ida"  "2017idarct")
(code-etex-tla "yon"  "2017yoneda")

;; (code-etex "c2p1oo" "2016-2-C2-P1")	; (c2p1oop)
;; (code-etex "c2p1o"  "2017-1-C2-P1")	; (c2p1op)
;; (code-etex "c2p1"   "2017-2-C2-P1")	; (c2p1p)
;; (code-etex "c2p2oo" "2017-2-C2-P2")	; (c2p2op)
;; (code-etex "c2p2o"  "2018-2-C2-P2")	; (c2p2p)
;; (code-etex "c2p2"   "2019-1-C2-P2")	; (c2p2p)
;; (code-etex "c2vso"  "2018-2-C2-VS")	; (c2vso)
;; (code-etex "c2vs"   "2019-1-C2-VS")	; (c2vs)
;;
;; (code-etex "c2p1oo" "2016-2-C2-P1")
;; (code-etex "c2p1o"  "2018-1-C2-P1")
;; (code-etex "c2p1f"  "2018-2-C2-P1fake")
;; (code-etex "c2p1oo" "2018-2-C2-P1")
;; (code-etex "c2p1o"  "2019-1-C2-P1")

;; 2019dec01:
(code-etex "c2p1o"  "2019-1-C2-P1")
(code-etex "c2p1"   "2019-2-C2-P1")
(code-etex "c2p2o"  "2019-1-C2-P2")
(code-etex "c2p2"   "2019-2-C2-P2")
(code-etex "c2vro"  "2019-1-C2-VR")
(code-etex "c2vr"   "2019-2-C2-VR")
(code-etex "c2vso"  "2019-1-C2-VS")
(code-etex "c2vs"   "2019-2-C2-VS")

(code-etex "c3p2o"  "2019-1-C3-P2")
(code-etex "c3p2"   "2019-2-C3-P2")

(code-etex "gap1o"  "2017-1-GA-P1")
(code-etex "gap1"   "2017-2-GA-P1")



(defun mab () (interactive) (find-TH "math-b"))





;; (find-code-etex "ph1" "2017planar-has-1")
;; (find-code-etex "cwm" "2017cwm")
;; (ph1)
;; (ph1p 10)
;; (ph1i)



;; «autoconf» (to ".autoconf")
;; (find-es "autoconf")
;; (find-es "autoconf" "automake")
(code-c-d "autoconf" "/usr/share/autoconf/" "autoconf")
(code-c-d "automake" "/usr/share/automake-1.15/" "automake-1.15")
;; (find-autoconffile "")
;; (find-autoconfnode "")
;; (find-automakefile "")
;; (find-automakenode "")


;; «bibtex» (to ".bibtex")
;; (find-angg ".emacs.papers" "bibtex")


;; (find-fline "/sda5/videos/shibari/")
(defun ee-shibari-n-to-fnames  (n)   (ee-youtubedl-guess* "/sda5/videos/shibari/" n))
(defun ee-shibari-n-to-fname   (n)   (car (ee-shibari-n-to-fnames n)))
(defun ee-shibari-url-to-n     (url) (replace-regexp-in-string "^.*vimeo.com/" "" url))
(defun ee-shibari-url-to-fname (url) (ee-shibari-n-to-fname (ee-shibari-url-to-n url)))
(defun ee-shibari-play-n       (n)   (find-video (ee-shibari-n-to-fname n)))
(defun ee-shibari-play-url     (url) (find-video (ee-shibari-url-to-fname url)))
(defun ee-shibari-play         ()    (interactive) (ee-shibari-play-url (ee-url-at-point)))
;; (defun eejump-755 () (find-fline "/sda5/videos/shibari/"))
;; (defun eejump-99  () (ee-shibari-play))
;; (defun eejump-90  () (find-shibari-dl-links (ee-url-at-point)))
;; (defun eejump-95 () (find-fline "~/ORG/shibari.org"))

(defun find-shibari-dl-links (&optional url &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
  (interactive (list (ee-url-at-point)))
  (setq url (or url "{url}"))
  (apply 'find-elinks
   `((find-shibari-dl-links ,url ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-shibari-dl-links)
     ""
     ,(ee-template0 "\
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /sda5/videos/shibari/
youtube-dl -f worst {url}
")
     )
   pos-spec-list))

;; https://crash-restraint.com/ties/66 Somerville Bowline [Level 1]
;; https://vimeo.com/193199846 Somerville Bowline Single Column Cuff
(code-video "shibsc" "/sda5/videos/shibari/Somerville_Bowline_Single_Column_Cuff-193199846.mp4")
;; (find-shibsc "0:00")
;; (find-shibsc "1:25" "Now I take the long end of the rope")
;; (find-shibsc "1:32" "in a big circle behind my fingers")
;; (find-shibsc "2:00" "grab it there")
;; (find-shibsc "2:20" "cross")
;; (find-shibsc "2:28" "down")

;; https://www.youtube.com/watch?v=UiGJMiQLBu4 Beginner Rope Bondage Tutorial - Basic Box Tie
(code-video "boxtie" "/sda5/videos/shibari/Beginner_Rope_Bondage_Tutorial_-_Basic_Box_Tie-UiGJMiQLBu4.mp4")
;; (find-boxtie "0:00")
;; (find-boxtie "0:25" "over the top")

;; https://vimeo.com/193986699 Figure 8 Inline Double Column Tie
;; (find-fline "/sda5/videos/shibari/")
;; (find-video "/sda5/videos/shibari/Figure_8_Inline_Double_Column_Tie-193986699.mp4")
(code-video "shifig8dct" "/sda5/videos/shibari/Figure_8_Inline_Double_Column_Tie-193986699.mp4")
;; (find-shifig8dct)
;; (find-shifig8dct "0:00")

(code-video "shigabdcvideo" "/sda5/videos/shibari/Shibari_Basico_-_Coluna_Dupla_Double_Column-OIsAEpmo00Y.mp4")
;; (find-shigabdcvideo)
;; (find-shigabdcvideo "0:00")




;; «eewrap-mypsection» (to ".eewrap-mypsection")
;; (find-eewrap-links "U" "mypsection" "anchor title")

;; M-U: eewrap-mypsection
(define-key eev-mode-map "\M-U" 'eewrap-mypsection)

(defun  eewrap-mypsection () (interactive)
  (ee-this-line-wrapn 2 'ee-wrap-mypsection))
(defun ee-wrap-mypsection (anchor title)
  "An internal function used by `eewrap-mypsection'."
  (ee-template0 "\
\\newpage

% <{anchor}>
% (gam181p 1 \"{anchor}\")
\\mypsection {<}{anchor}{>} {<}{title}{>}"))





;; «bat» (to ".bat")
;; (find-es "hardware" "bat")
(defun bat ()
  "Show battery status."
  (interactive)
  (find-sh "upower -i $(upower -e | grep 'BAT') | grep -E 'state|to full|percentage'"))

;; «getinscritos» (to ".getinscritos")
;; (find-angg "LUA/lua50init.lua" "getinscritos")
;; Use on UFF's "Relatorio(s) de alunos inscritos", converted to text
(defun getinscritos (s e)
  (interactive "r")
  (shell-command-on-region s e "lua51-e 'getinscritos()'" nil t))

(defun bl () (interactive) (find-angg "LATEX/2017biblatex.tex"))

(defun stew () (interactive) (find-books "__analysis/__analysis.el" "stewart"))

(defun lfc () (interactive) (find-TH "logic-for-children-2018"))


(defun rad () (interactive) (find-angg "LATEX/2018-rad2017.tex"))
(defun ran () (interactive) (find-angg "LATEX/2019-rad2018.tex"))
(defun mon () (interactive) (find-angg "LATEX/2018-monitoria.tex"))
(defun koc () (interactive) (find-angg "LATEX/2010kockdiff-new.tex"))
(defun kop () (interactive) (find-angg ".emacs.papers" "kock"))
;; (defun dis () (interactive) (find-books "__discrete/__discrete.el"))

(code-etex "radoo" "2018-rad2017")
(code-etex "radoo" "2020-rad2019")
(code-etex "rado" "2021-rad2020")
(code-etex "rado" "2022-rad2021")
(code-etex-tla "rad" "2023-rad2022")

(code-etex-tla "ebs" "2017ebl-slides")
(code-etex-tla "vga" "2017visualizing-gms")
(code-etex-tla "vgs" "2018vichy-vgms-slides")
(code-etex-tla "vgm" "2018vichy-vgms-slides")
(code-etex-tla "vis" "2018vichy-vgms-slides")
(code-etex-tla "viv" "2018vichy-video")
(code-etex-tla "mdm" "2018-2-MD-material")

;; «dednat6-tugboat»  (to ".dednat6-tugboat")
(code-etex-tla "tua" "2018tug-dednat6-abs")
(code-etex-tla "tug" "2018tug-dednat6")
(code-etex-tla "tub" "2018tugboat")
(code-etex-tla "tur" "2018tugboat-rev1")
;; (code-etex "dne" "2018dednat6-extras")
;; (code-etex "dnm" "2018dednat6-minimal")
;; (code-etex "dnn" "2018dednat6-no-lua")
;; (code-etex "dnp" "2018dednat6-preproc")
;; (code-etex "dnr" "2018dednat6-repl")
;; (code-etex "dnz" "2018dednat6-zhas")

;; (find-anggfile "dednat6/")
(code-etex-dednat6 "dns" "tug-slides")
(code-etex-dednat6 "dna" "tugboat-rev2")
(code-etex-dednat6 "dnf" "extra-features")
(code-etex-dednat6 "dnz" "extra-modules")
(defun dnl () (interactive) (find-dednat6 "extra-modules.txt"))



(defun dnb () (interactive) (find-TH "dednat6"))


(defun inter () (interactive) (find-TH "intervencao"))


(defun via () (interactive) (find-angg "LATEX/2018vichy-abstracts.tex"))

;; (find-efunctiondescr 'ddd)
;;
(defun ddd ()
  "Test: run `M-x ddd' in the following line.\n
    (gam181p 26 \"propriedades-basicas-2\")"
  (interactive)
  (end-of-line)
  (let* ((link (ee-last-sexp))
         (defun (format "(defun dd () (interactive) %s)" link)))
    (find-estring defun)))

(code-c-d "livebuild" "/usr/lib/live/build/")
;; (find-livebuildfile "")



;;;   __ _           _       _       _
;;;  / _(_)_ __   __| |     (_)_ __ | |_ _ __ ___        ___ _ __ ___
;;; | |_| | '_ \ / _` |_____| | '_ \| __| '__/ _ \ _____/ __| '__/ __|
;;; |  _| | | | | (_| |_____| | | | | |_| | | (_) |_____\__ \ | | (__
;;; |_| |_|_| |_|\__,_|     |_|_| |_|\__|_|  \___/      |___/_|  \___|
;;;
;; «find-intro-source» (to ".find-intro-source")
;; Moved to: (find-eevfile "eev-intro.el" "defun ee-sexp-at")



;; «grub» (to ".grub")
;; (find-es "grub" "libreboot-x200-cbfs")
;; (find-status   "grub")
;; (find-vldifile "grub.list")
;; (find-udfile   "grub/")
;; (find-grubnode "")
(code-c-d "grub" "/usr/share/doc/grub/" "grub")
(code-c-d "grubsrc" "~/usrc/grub/")
(code-c-d "librebootutil"  "~/usrc/libreboot_util/")
(code-c-d "librebootgrub"  "~/usrc/libreboot_util/libreboot-web/")
(code-c-d "libreboothere"  "~/usrc/libreboot_util/libreboot-here/")
;; (find-librebootgrubfile "")
;; (find-librebootgrubfile "grub.cfg")
;; (find-grubsrcfile "")

(code-c-d "parted" "~/usrc/parted-3.2/" "parted")



;; «find-git-eev-links» (to ".find-git-eev-links")
;; (find-find-links-links "{k}" "git-eev" "{args}")
;; A test: (find-git-eev-links)
;;
(defun find-git-eev-links (&optional {args} &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for foo."
  (interactive)
  (setq {args} (or {args} "{{args}}"))
  (apply 'find-elinks
   `((find-git-eev-links ,{args} ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-git-eev-links)
     ""
     (find-eev2-links)
     (find-es "git" "compare-eev-local-and-github")
     (find-es "git" "git-clone")
     ""
     ,(ee-template0 "\
")
     )
   pos-spec-list))

(defalias 'fge 'find-git-eev-links)
;; (fge)


(seen 17377)



;; «find-echars-around» (to ".find-echars-around")
;; (find-es "emacs" "hex")
(defun ee-hex-at-bol ()
  (save-excursion
    (goto-char (ee-bol))
    (string-to-number (ee-stuff-around-point "0-9A-Fa-f") 16)))

;; Test: (ee-echars-around 1000 200)
(defun ee-echars-around (c n)
  `((,(max 0 (- c n)) ,(- c 1)) "\n"
    ,c "\n"
    (,(+ c 1) ,(+ c n))))

;; Test: (find-echars-around 9000 1000)
(defun find-echars-around (&optional c n)
  (interactive)
  (setq c (or c (ee-hex-at-bol)))
  (setq n (or n 200))
  (find-einsert (ee-echars-around c n) 2))

;; Tests: (fea 9674)
;;        (fea 9633)
;;        (find-eunicode "203D;INTERROBANG")
;;        (find-eunicode "203D;INTERROBANG" '(fea))
(defalias 'fea 'find-echars-around)



(defun mdp1 () (interactive) (find-LATEX "2018-2-MD-P1A.tex"))
(defun mdp2 () (interactive) (find-LATEX "2018-2-MD-P2A.tex"))
(defun mdpb () (interactive) (find-LATEX "2018-2-MD-P1B.tex"))
(defun mdpc () (interactive) (find-LATEX "2018-2-MD-P2B.tex"))
(defun mdvr () (interactive) (find-LATEX "2018-2-MD-VR.tex"))
(defun mds  () (interactive) (find-LATEX "2018-2-MD-sequentes.tex"))
(defun mdr  () (interactive) (find-LATEX "2018-2-MD-regras-inad.tex"))
(defun perg () (interactive) (find-LATEX "2018pergola.tex"))

;; (code-etex "mds" "2018-2-MD-sequentes")
(code-etex-tla "mdd" "2018-2-MD-demonstracoes")
(code-etex-tla "mdr" "2018-2-MD-resposta")
(code-etex-tla "lod" "2019logicday")
(code-etex-tla "xys" "2019xysyntax")

;; «scheinerman-esquemas» (to ".scheinerman-esquemas")
;; (find-books "__discrete/__discrete.el" "scheinerman")
(defun schesq (&optional a b c d) (find-xpdfpage "~/2018.2-MD/scheinerman__esquemas_de_prova.pdf" a))
;; (schesq  1 "Esquema de prova  1: se-então")
;; (schesq  2 "Esquema de prova  2: se-e-somente-se")
;; (schesq  3 "Esquema de prova  3: refutar se-então")
;; (schesq  4 "Esquema de prova  4: equivalência lógica")
;; (schesq  5 "Esquema de prova  5: conjuntos iguais")
;; (schesq  6 "Esquema de prova  6: subconjunto")
;; (schesq  7 "Esquema de prova  7: afirmações existenciais")
;; (schesq  8 "Esquema de prova  8: afirmações universais")
;; (schesq  9 "Esquema de prova  9: prova combinatória")
;; (schesq 10 "Esquema de prova 10: utilizando inclusão-exclusão")
;; (schesq 11 "Esquema de prova 11: contrapositiva")
;; (schesq 12 "Esquema de prova 12: contradição")
;; (schesq 13 "Esquema de prova 13: provar que conjunto é vazio")
;; (schesq 14 "Esquema de prova 14: unicidade")
;; (schesq 15 "Esquema de prova 15: contra-exemplo mínimo")
;; (schesq 16 "Esquema de prova 16: prova por boa ordenação")
;; (schesq 17 "Esquema de prova 17: indução")
;; (schesq 18 "Esquema de prova 18: indução forte")
;; (schesq 19 "Esquema de prova 19: f:A->B")
;; (schesq 20 "Esquema de prova 20: um para um")
;; (schesq 21 "Esquema de prova 21: sobre")
;; (schesq 22 "Esquema de prova 22: funções iguais")
;; (schesq 23 "Esquema de prova 23: (G,*) é um grupo")
;; (schesq 24 "Esquema de prova 24: subgrupo")
;; (schesq 25 "Esquema de prova 25: supressão de folhas")


;; «find-quadros-links» (to ".find-quadros-links")
;; (find-quadros-links)
;; (find-angg "LUA/exifdatetime.lua")
;; (find-angg "LUA/exifdatetime.lua" "main-scripts")
(defalias 'qua 'find-quadros-links)
(defun find-quadros-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for quadros."
  (interactive)
  (apply 'find-elinks
   `((find-quadros-links  ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-quadros-links)
     (find-angg "LUA/exifdatetime.lua")
     (find-angg "LUA/exifdatetime.lua" "main-scripts")
     (c2qe)
     (mdqe)
     )
   pos-spec-list))

;; «find-cabecalho-links» (to ".find-cabecalho-links")
(defalias 'cabecalho 'find-cabecalho-links)
(defun find-cabecalho-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for cabecalho."
  (interactive)
  (apply 'find-elinks
   `((find-cabecalho-links  ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-cabecalho-links)
     ""
     (find-LATEXfile "2017-2-GA-P1.tex" "footnotesize")
     (find-LATEXfile "2017-2-C2-P1.tex" "footnotesize")
     (find-LATEXfile "2018-2-C2-P1.tex" "footnotesize")
     (find-LATEXfile "2018-2-C2-P1.tex" "Algumas")
     (find-LATEXfile "2018-2-MD-P1A.tex" "footnotesize")
     )
   pos-spec-list))



(defun itlsh () (interactive)
  (insert "# (find-tlsh \"find * | sort | grep foo\")\n"))





;; Obsolete, superseded by:
;; (find-eev "eev-hydras.el")
;;
;; «ee-with-this-and-prev» (to ".ee-with-this-and-prev")
;; «ee-anchor-back» (to ".ee-anchor-back")
;; (find-es "emacs" "creating-utf8-files")
;; A hack to move the index line produced by `M-A' to the index.
;; Mnemonic:
;;
;;   # <.prev> (to "prev")
;;   # <prev> (to ".prev")
;;   # <.this> (to "this")
;;   # <this> (to ".this")
;;
;; Usage: after `M-A' run `M-x ai' and then `M-x aim'.
;; Version: 2019jan10.

;; (find-eev "eev-edit.el" "ee-copy-this-line-to-kill-ring")

(setq ee-anchor-re (ee-tolatin1 "«[!-~]*»"))
(defun ee-anchor-re () (ee-tolatin1 "«[!-~]*»"))
(defun ee-anchor-re () (ee-to-coding buffer-file-coding-system (ee-tolatin1 "«[!-~]*»")))
(defun ee-anchor-re () (ee-to-coding buffer-file-coding-system (ee-tolatin1 "«\\([!-~]*\\)»")))
(defun ee-anchor-back () (interactive) (re-search-backward ee-anchor-re))
(defun ee-anchor-back () (interactive) (re-search-backward (ee-anchor-re)))

(defun ee-anchor-prev ()
  (save-excursion
    (ee-anchor-back)
    (match-string 1)))

(defun ee-with-this-and-prev (code)
  (let (dprev0 dprev1 prev0 prev1 dthis0 dthis1 this0 this1)
    (eek "C-e") (ee-anchor-back)
    (setq  this0 (ee-bol)  this1 (ee-eol))
    (eek "<up>")
    (setq dthis0 (ee-bol) dthis1 (ee-eol))
    (eek "C-a") (ee-anchor-back)
    (setq  prev0 (ee-bol) prev1 (ee-eol))
    (eek "M-e")
    (setq dprev0 (ee-bol) dprev1 (ee-eol))
    (eval code)))

(defun ee-with-this-and-prev-flash ()
  (save-excursion
    (ee-with-this-and-prev
     '(progn
	(ee-flash dprev0 (1+ dprev1))
	(ee-flash dthis0 (1+ dthis1))
	))))

(defun ai ()
  (interactive)
  (ee-with-this-and-prev-flash)
  (ee-with-this-and-prev
   '(find-2b '(progn (goto-char (1+ dprev1)) (eek "C-l"))
	     '(progn (goto-char this0) (eek "C-l")))))

(defun aim ()
  (interactive)
  (ee-with-this-and-prev
   '(progn
      (kill-region dthis0 (1+ dthis1))
      (goto-char (1+ dprev1))
      (yank)
      (find-2b '(progn (goto-char (1+ dprev1)) (eek "C-l"))
               '(progn (goto-char this1) (eek "C-l"))))))


;; (ee-anchor-back)

;; «ee-tla-link»  (to ".ee-tla-link")
;; (ee-tla-link nil 12)
;; (ee-tla-link nil 123)
(defvar ee-tla nil "A \"three letter acronym\" used by `itl'.")
(put   'ee-tla 'safe-local-variable #'stringp)

(defun ee-tla () (interactive)
  (reload)
  (find-tla-links
   ee-tla
   (replace-regexp-in-string "^.*/\\([^/]*\\).tex$" "\\1" buffer-file-name)))

;; (replace-regexp-in-string "^.*/\\([^/]*\\).tex$" "\\1" "foo/bar.tex")

;; (defun find-tla-links (&optional tla stem &rest pos-spec-list)
;; "Visit a temporary buffer containing hyperlinks for foo."
;;   (interactive)
;;   (setq tla (or tla "{tla}"))
;;   (setq stem (or stem "{stem}"))
;;   (apply 'find-elinks
;;    `((find-tla-links ,tla ,stem ,@pos-spec-list)
;;      ;; Convention: the first sexp always regenerates the buffer.
;;      (find-efunction 'find-tla-links)
;;      (find-angggrep "grep --color -nH -e code-etex .emacs")
;;      ""
;;      ,(ee-template0 "\
;; (code-etex \"{tla}\" \"{stem}\")
;; ")
;;      )
;;    pos-spec-list))

;; Test: (find-tla-links "pan" "2019-2-C2-provas-antigas")

;; (defun ee-tla-link (&optional tla n tag)
;;   (setq tla (or tla ee-tla))
;;   (setq n (or n "  "))
;;   (setq tag (or tag (ee-anchor-prev)))
;;   (let ((s (make-string (length (format "%s" n)) 32)))
;;     (ee-template0 "\
;; % ({tla}p {n} \"{tag}\")
;; % ({tla}  {s} \"{tag}\")
;; ")))
;; 
;; (defun itl () (interactive)
;;   (eek "C-a") (insert (ee-tla-link nil 99 nil)))
;; 
;; (defun eejump-33 () (itl))


;; (find-LATEX "2018dednat6-repl.tex")
;; (eepitch-lualatexdrepl)
;; (eepitch-kill)
;; (eepitch-lualatexdrepl)
(defun eepitch-lualatexdrepl ()
  (interactive)
  (eepitch-comint-at
   "~/LATEX/"
   "lualatex 2018dednat6-repl.tex"
   "lualatex 2018dednat6-repl.tex"))




;; (find-eev "eev-intro.el" "find-intro-dual")
;; (defun fd0 () (interactive) (find-eevfile "eev-intro.el" "\n)\n"))
(find-intro-dual-define)


;; «sexptotarget» (to ".sexptotarget")
;; Superseded by: (find-angg ".emacs.templates" "find-sandwichsexp-links")
;; (find-blogme3 "options.lua" "basic-options")
;; (find-sexptotarget0 "(find-links-conv-intro)")
;;
;; (eek "M-h M-k  M-h b  ;; find-sexptotarget-links")
;; (find-efunction 'find-sexptotarget-links)
;; (find-angg ".emacs" "sexptotarget")
;; (find-blogme3 "options.lua" "basic-options")
;; (find-blogme3 "options.lua" "basic-options" "dooption_sexptarget =")
;; (find-blogme3 "sexp.lua" "STOH")
;; (find-sexptotarget0 "(find-es \"")
;; (find-sexptotarget0 "(find-es \"lua5\")")
;; (find-sexptotarget0 "(find-es \"lua5\" \"luarocks-tree\")")
;;
(defun find-sexptotarget0 (&optional li)
  (find-callprocess0 `("lua5.1" "~/blogme3/blogme3.lua" "-sexptarget" ,li)))
(defun find-sexptotarget-links (&optional li &rest pos-spec-list)
  (interactive)
  (setq li (or li (buffer-substring-no-properties (ee-bol) (ee-eol))))
  (let ((target (find-sexptotarget0 li)))
    (apply 'find-elinks
     `((find-sexptotarget-links ,li ,@pos-spec-list)
       ;; Convention: the first sexp always regenerates the buffer.
       (find-efunction 'find-sexptotarget-links)
       ""
       ,(ee-template0 "\
{li}
http://anggtwu.net/{target}
file:///home/edrx/TH/L/{target}
")
     )
     pos-spec-list)))

;; (define-key eev-mode-map "\M-hb" 'tgt)
;; (define-key eev-mode-map "\M-hb" 'find-sexptotarget-links)
(define-key eev-mode-map "\M-hb" 'find-sandwichsexp-links)




;; «find-font-links» (to ".find-font-links")
;; Test: (find-font-links)
;;
(defun find-font-links (&rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for selecting a font."
  (interactive)
  (apply 'find-elinks-elisp
   `((find-font-links  ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-font-links)
     (find-es "x" "xlsfonts")
     ""
     (set-frame-font "5x7")
     (set-frame-font "fixed")
     (set-frame-font "6x13")
     (set-frame-font "9x15")
     (set-frame-font "10x20")
     (set-frame-font "12x24")
     (set-frame-font "Monospace 7")
     (set-frame-font "Monospace 9")
     (set-frame-font "Monospace 10")
     (set-frame-font "Monospace 11")
     (set-frame-font "Monospace 12")
     (set-frame-font "Monospace Bold 9")
     (set-frame-font "Monospace Bold 10")
     (set-frame-font "Monospace Bold 11")
     (set-frame-font "Monospace Bold 12")
     (set-frame-font "Inconsolata 20")
     (set-frame-font "Noto Mono 18")
     (ee-mononoki 120)
     (ee-mononoki 150)
     (ee-mononoki 180)
     ""
     (find-eppp (seq-uniq (sort (font-family-list) 'string<)))
     (describe-font "6x13")
     (describe-font "Monospace 7")
     (describe-font "Monospace 12")
     )
   pos-spec-list))

(defalias 'font 'find-font-links)

;; Test: (font)




;;;   ____ _     ____
;;;  / ___| |   / ___|
;;; | |   | |  | |  _
;;; | |___| |__| |_| |
;;;  \____|_____\____|
;;;
;; «clg» (to ".clg")
(code-c-d "clg" "~/2019-CLG/" :anchor)
(defun clg () (interactive) (find-clgfile ""))
(defun clg () (interactive) (find-clgfile ".emacs.clg"))
(defun NOT () (interactive) (find-clgfile "NOTES"))
;; (find-clgfile "")
;; (find-clgfile ".emacs.clg")
' (load-file "~/2019-CLG/.emacs.clg")

(code-etex "cl1" "2019clg-slides-1")
(code-etex "cl2" "2019clg-slides-2")
(code-etex "cl3" "2019clg-slides-3")
(code-etex "cl4" "2019clg-slides-4")
(code-etex "cl5" "2019clg-slides-5")
(code-etex "cl6" "2019clg-slides-6")



;; «show-paren-mode»  (to ".show-paren-mode")
;; (find-es "emacs" "show-paren-mode")
(setq show-paren-mode nil)



;;;            _  __       _              _
;;;  _ __   __| |/ _|     | |_ ___   ___ | |___
;;; | '_ \ / _` | |_ _____| __/ _ \ / _ \| / __|
;;; | |_) | (_| |  _|_____| || (_) | (_) | \__ \
;;; | .__/ \__,_|_|        \__\___/ \___/|_|___/
;;; |_|
;;
;; «pdf-tools» (to ".pdf-tools")
;; (find-es "emacs" "pdf-tools")
;; (find-es "emacs" "pdf-tools-bookmarks")
(code-c-d "pdftools" "~/.emacs.d/elpa/pdf-tools-20190308.223/")
;; (find-pdftoolsfile "")

(setq revert-without-query '("pdf$"))

(code-c-d "isendmode" "~/.emacs.d/elpa/isend-mode-20190201.832/")
;; (find-isendmodefile "")




(defun clb () (interactive) (find-TH "2019-curso-latex"))
(defun eie () (interactive) (find-eev-intro))
(defun eii () (interactive) (find-eev-install-intro))
(defun eis () (interactive) (find-escripts-intro))

(code-etex-tla "tmp" "tmp")

(code-etex-tla "nmo"  "2019notes-monads")
(code-etex-tla "nmt"  "2019notes-monads-tys")
(code-etex-tla "nty"  "2019notes-types")
(code-etex-tla "nyoo" "2019notes-yoneda")
(code-etex-tla "nyo"  "2020notes-yoneda")
(code-etex-tla "nkl"  "2019notes-kleisli")



;; «c2» (to ".c2")
(defun c2e () (interactive) (find-angg ".emacs" "c2"))

;; «c2-2019-1»  (to ".c2-2019-1")
;; (to "c2q191")
;; (c2m191)
(code-etex-tla "c2m191" "2019-1-C2-material")

;; Não existe ainda:
(code-etex-tla "c2tuo"      "2019-1-C2-tudo")
(code-etex-tla "c2m191tudo" "2019-1-C2-tudo")

;; «c2-2019-2»  (to ".c2-2019-2")
;; (to "c2q192")
;; (c2m192)
(code-etex-tla "c2m192" "2019-2-C2-material")
;; (c2m192tudoa "title")
;; (c2m192tudoa "title" "PDFzão com os todos os " "PDFzinhos do semestre")
(code-etex-tla "c2tuo"      "2019-2-C2-tudo")
(code-etex-tla "c2m192tudo" "2019-2-C2-tudo")

;; «c3-2019-1»  (to ".c3-2019-1")
;; (to "c3q191")
(code-etex "c3m191" "2019-1-C3-material")

;; «c3-2019-2»  (to ".c3-2019-2")
;; (to "c3q192")
(code-etex "c3m192" "2019-2-C3-material")

;; «c2-2020-1»  (to ".c2-2020-1")
(defun c2o () (interactive) (find-angg ".emacs" "c2-2020-1"))

;; «2020-1-slides-aulas»  (to ".2020-1-slides-aulas")
;; (find-C2-aula-links "2020-1-C2-somas-2" "2" "somas2")
;; (find-C3-aula-links "2020-1-C3-foo-bar" "42" "foobar")
;;
;; Aulas de Cálculo 2:
;;
;; Setembro:  16 17 18    aulas 1 e 2   (c2m201introp) (c2m201somas1p)
;;            23 24 25    aulas 3 e 4   (c2m201somas2p)
;;            30 -----    aulas 5       (c2m201defintp)
;;            --  1  2            e 6
;; Outubro:    7  8  9    aulas 7 e 8   (c2m201escadasp)
;;            14    16    aula    9     (c2m201tfcsp)
;;            21 22 23    aulas 10 e 11 (c2m201tfc2p)
;;               29 30    aula  12      (c2m201tfc2p)
;;            --------
;; Novembro:   4  5  6    aulas 13 e 14 (c2m201isubp)
;;            11 12 13    aulas 15 e 16
;;            18 19       aulas 17 e 18
;;            25 26 27    aulas 19 e 20
;;
(code-etex-tla "c2m201intro"    "2020-1-C2-intro")        ; Aula 1, 16/17 set:
(code-etex-tla "c2m0"           "2020-1-C2-intro")        ;  (c2m201introp)
(code-etex-tla "c2m201somas1"   "2020-1-C2-somas-1")      ; Aula 2, 17/18 set:
(code-etex-tla "c2m1"           "2020-1-C2-somas-1")      ;  (c2m201somas1p)
(code-etex-tla "c2m201somas2"   "2020-1-C2-somas-2")      ; Aulas 3 e 4, 23/24/25 set:
(code-etex-tla "c2m2"           "2020-1-C2-somas-2")      ;  (c2m201somas2p)
(code-etex-tla "c2m201defint"   "2020-1-C2-def-integral") ; Aulas 5 e 6, 30/set e 1/2 out:
(code-etex-tla "c2m5"           "2020-1-C2-def-integral") ;  (c2m201defintp)
(code-etex-tla "c2m201escadas"  "2020-1-C2-escadas")      ; Aulas 7 e 8, 7/8/9 out:
(code-etex-tla "c2m7"           "2020-1-C2-escadas")      ;  (c2m201escadasp)
(code-etex-tla "c2m201tfcs"     "2020-1-C2-TFCs")         ; Aula 9, 14/16/out (15 foi feriado):
(code-etex-tla "c2m9"           "2020-1-C2-TFCs")         ;  (c2m201tfcsp)
(code-etex-tla "c2m201tfc2"     "2020-1-C2-TFC2")         ; Aulas 10 e 11, 21/22/23/out:
(code-etex-tla "c2m10"          "2020-1-C2-TFC2")         ;  (c2m201tfc2p)
(code-etex-tla "c2m201tfc22"    "2020-1-C2-TFC2-2")       ; Aula 12, 28/29/out:
(code-etex-tla "c2m11"          "2020-1-C2-TFC2-2")       ;  (c2m201tfc22p)
(code-etex-tla "c2m201isub"     "2020-1-C2-int-subst")    ; Aula 13,
(code-etex-tla "c2m12"          "2020-1-C2-int-subst")    ;  (c2m201isubp)
(code-etex-tla "c2m201mt1"      "2020-1-C2-miniteste-1")  ; Mini-teste 1,
(code-etex-tla "c2mt1"          "2020-1-C2-miniteste-1")  ;  (c2m201mt1p)
(code-etex-tla "c2m201fracparc" "2020-1-C2-fracs-parcs")  ; Aulas 16 e 17,
(code-etex-tla "c2m16"          "2020-1-C2-fracs-parcs")  ;  (c2m201fracparcp)
(code-etex-tla "c2m18"          "2020-1-C2-int-pots-sen-cos") ; Aula 18,
(code-etex-tla "c2m201ipsc"     "2020-1-C2-int-pots-sen-cos") ; (c2m201ipsc)
(code-etex-tla "c2m201p1"       "2020-1-C2-P1")           ; P1
(code-etex-tla "c2mp1"          "2020-1-C2-P1")           ; (c2mp1p)
(code-etex-tla "c2m201substtrig1" "2020-1-C2-subst-trig-1")
(code-etex-tla "c2mst1"         "2020-1-C2-subst-trig-1")  ; (c2m201substtrig1p)
(code-etex-tla "c2m201p2"       "2020-1-C2-P2")
(code-etex-tla "c2mp2"          "2020-1-C2-P2")
(code-etex-tla "c2m201mt2"      "2020-1-C2-MT2")
(code-etex-tla "c2mmt2"         "2020-1-C2-MT2")
(code-etex-tla "c2m201mt3"      "2020-1-C2-MT3")
(code-etex-tla "c2mmt3"         "2020-1-C2-MT3")
(code-etex-tla "c2m201vs"       "2020-1-C2-VS")
(code-etex-tla "c2mvs"          "2020-1-C2-VS")
;;
;; (c2m201tudoa "title")
;; (c2m201tudoa "title" "Todos os PDFs do semestre")
(code-etex-tla "c2tuo"          "2020-1-C2-tudo")
(code-etex-tla "c2m201tudo"     "2020-1-C2-tudo")

;; «c2-2020-1-telegram»  (to ".c2-2020-1-telegram")
;; (find-telegram-save-log-links "2020" "1" "C2" "C1")
;; (code-pdf-page "20201C2C1" "~/2020.1-C2/C2-C1-RCN-PURO-2020.1.pdf")
;; (code-pdf-text "20201C2C1" "~/2020.1-C2/C2-C1-RCN-PURO-2020.1.pdf")
;; (code-pdf-page "20201C2C12" "~/2020.1-C2/C2-C1-RCN-PURO-2020.1-2.pdf")
;; (code-pdf-text "20201C2C12" "~/2020.1-C2/C2-C1-RCN-PURO-2020.1-2.pdf")
;; (code-pdf-page "20201C2C13" "~/2020.1-C2/C2-C1-RCN-PURO-2020.1-3.pdf")
;; (code-pdf-text "20201C2C13" "~/2020.1-C2/C2-C1-RCN-PURO-2020.1-3.pdf")
;; (find-20201C2C1page)
;; (find-20201C2C1text)
;; (find-20201C2C12page)
;; (find-20201C2C12text)
;; (find-20201C2C13page)
;; (find-20201C2C13text)

;; (find-telegram-save-log-links "2020" "1" "C2" "E1")
;; (code-pdf-page "20201C2E1" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1.pdf")
;; (code-pdf-text "20201C2E1" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1.pdf")
;; (code-pdf-page "20201C2E12" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1-2.pdf")
;; (code-pdf-text "20201C2E12" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1-2.pdf")
;; (code-pdf-page "20201C2E13" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1-3.pdf")
;; (code-pdf-text "20201C2E13" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1-3.pdf")
;; (code-pdf-page "20201C2E14" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1-4.pdf")
;; (code-pdf-text "20201C2E14" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1-4.pdf")
;; (code-pdf-page "20201C2E15" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1-5.pdf")
;; (code-pdf-text "20201C2E15" "~/2020.1-C2/C2-E1-RCN-PURO-2020.1-5.pdf")
;; (find-20201C2E1page)
;; (find-20201C2E1text)
;; (find-20201C2E12page)
;; (find-20201C2E12text)
;; (find-20201C2E13page)
;; (find-20201C2E13text)




;; «c3-2019-2»  (to ".c3-2019-2")
(defun c3o () (interactive) (find-angg ".emacs" "c3-2020-1"))

;; (c3m192tudoa "title")
(code-etex-tla "c3tuo"      "2019-2-C3-tudo")
(code-etex-tla "c3m192tudo" "2019-2-C3-tudo")

;; «c3-2020-1»  (to ".c3-2020-1")
(defun c3o () (interactive) (find-angg ".emacs" "c3-2020-1"))

;; «c3» (to ".c3")
(defun c3e () (interactive) (find-angg ".emacs" "c3"))
;;
;; Aulas de Cálculo 3:
;;
;; Setembro:  16    18    aulas 1 e 2   (c3m201introp) (c3m201vtp)
;;            23    25    aulas 3 e 4   (c3m201taylor1p)
;;            30 -----    aulas 5       (c3m201taylor2p)
;;            --     2            e 6
;; Outubro:    7  8  9    aulas 7 e 8   (c3m201taylor3p)
;;            14    16    aulas 9 e 10  (c3m201sups1p)
;;            21 22 23    aulas 11 e 12 (c3m201sups2p)
;;            28 29 30    aulas 12 e 13 (c3m201derps)
;;            --------
;; Novembro:   4  5  6    aulas 14 e 15
;;            11 12 13    aulas 16 e 17
;;            18 19       aula 18
;;            25 26 27    aulas 19 e 20
;;
(code-etex-tla "c3m0"          "2020-1-C3-intro")           ; Aula 1, 16/set:
(code-etex-tla "c3m201intro"   "2020-1-C3-intro")           ;  (c3m201introp)
(code-etex-tla "c3m1"          "2020-1-C3-vetor-tangente")  ; Aula 2, 18/set:
(code-etex-tla "c3m201vt"      "2020-1-C3-vetor-tangente")  ;  (c3m201vtp)
(code-etex-tla "c3m2"          "2020-1-C3-taylor-1")        ; Aulas 3 e 4, 23/25/set:
(code-etex-tla "c3m201taylor1" "2020-1-C3-taylor-1")        ;  (c3m201taylor1p)
(code-etex-tla "c3m5"          "2020-1-C3-taylor-2")        ; Aulas 5 e 6, 30/set e 2/out:
(code-etex-tla "c3m201taylor2" "2020-1-C3-taylor-2")        ;  (c3m201taylor2p)
(code-etex-tla "c3m7"          "2020-1-C3-taylor-3")        ; Aulas 7 e 8, 7/9/out:
(code-etex-tla "c3m201taylor3" "2020-1-C3-taylor-3")        ;  (c3m201taylor3p)
(code-etex-tla "c3m9"          "2020-1-C3-superficies-1")   ; Aulas 9 e 10, 14/16/out:
(code-etex-tla "c3m201sups1"   "2020-1-C3-superficies-1")   ;  (c3m201sups1p)
(code-etex-tla "c3m10"         "2020-1-C3-superficies-2")   ; Aulas 11 e 12, 21/23/out:
(code-etex-tla "c3m201sups2"   "2020-1-C3-superficies-2")   ;  (c3m201sups2p)
(code-etex-tla "c3m12"         "2020-1-C3-derivs-parciais") ; Aula 13, 28/out:
(code-etex-tla "c3m201derps"   "2020-1-C3-derivs-parciais") ;  (c3m201derpsp)
(code-etex-tla "c3m14"         "2020-1-C3-plano-tang")      ; Aulas 14 e 15, 4/6/out
(code-etex-tla "c3m201pltan"   "2020-1-C3-plano-tang")      ;  (c3m201pltanp)
(code-etex-tla "c3m18"         "2020-1-C3-derivs-alta-ordem") ; Aula 18, 18/nov
(code-etex-tla "c3m201Fxy"     "2020-1-C3-derivs-alta-ordem") ; (c3m201Fxyp)
(code-etex-tla "c3m2ao"         "2020-1-C3-aprox-2a-ordem-R2")
(code-etex-tla "c3m201aprox2ao" "2020-1-C3-aprox-2a-ordem-R2") ; (c3m2aop)
(code-etex-tla "c3mmt2"        "2020-1-C3-miniteste-2")
(code-etex-tla "c3m201mt2"     "2020-1-C3-miniteste-2")     ; (c3m201mt2p)
(code-etex-tla "c3mdp1"        "2020-1-C3-dicas-p1")
(code-etex-tla "c3m201dp1"     "2020-1-C3-dicas-p1")        ; (c3mdp1p)
(code-etex-tla "c3mtopo"       "2020-1-C3-abertos-e-fechados")
(code-etex-tla "c3m201topo"    "2020-1-C3-abertos-e-fechados")  ; (c3mtopop)
(code-etex-tla "c3mp1"         "2020-1-C3-P1")
(code-etex-tla "c3m201p1"      "2020-1-C3-P1")   ; (c3mp1)
(code-etex-tla "c3mp2"         "2020-1-C3-P2")
(code-etex-tla "c3m201p2"      "2020-1-C3-P2")
;;
;; (c3m201tudoa "title")
(code-etex-tla "c3tuo"          "2020-1-C3-tudo")
(code-etex-tla "c3m201tudo"     "2020-1-C3-tudo")

;; «c3-2020-1-telegram»  (to ".c3-2020-1-telegram")
;; (find-telegram-save-log-links "2020" "1" "C3" "M1")
;; (code-pdf-page "20201C3M1" "~/2020.1-C3/C3-M1-RCN-PURO-2020.1.pdf")
;; (code-pdf-text "20201C3M1" "~/2020.1-C3/C3-M1-RCN-PURO-2020.1.pdf")
;; (code-pdf-page "20201C3M12" "~/2020.1-C3/C3-M1-RCN-PURO-2020.1-2.pdf")
;; (code-pdf-text "20201C3M12" "~/2020.1-C3/C3-M1-RCN-PURO-2020.1-2.pdf")
;; (code-pdf-page "20201C3M13" "~/2020.1-C3/C3-M1-RCN-PURO-2020.1-3.pdf")
;; (code-pdf-text "20201C3M13" "~/2020.1-C3/C3-M1-RCN-PURO-2020.1-3.pdf")
;; (code-pdf-page "20201C3M14" "~/2020.1-C3/C3-M1-RCN-PURO-2020.1-4.pdf")
;; (code-pdf-text "20201C3M14" "~/2020.1-C3/C3-M1-RCN-PURO-2020.1-4.pdf")
;; (find-20201C3M1page)
;; (find-20201C3M1text)
;; (find-20201C3M12page)
;; (find-20201C3M12text)
;; (find-20201C3M13page)
;; (find-20201C3M13text)
;; (find-20201C3M14page)
;; (find-20201C3M14text)




;; «c2-2020-2»  (to ".c2-2020-2")
(defun c2eo () (interactive) (find-angg ".emacs" "c2-2020-2"))

;; (c2m202intro "title")
;; (c2m202intro "title" "Aula 1: Introdução ao curso (e a EDOs e ao $[:=]$)")
(code-etex-tla "c21"         "2020-2-C2-intro")
(code-etex-tla "c2m202intro" "2020-2-C2-intro")
;; (c2m202somas1a "title")
;; (c2m202somas1a "title" "Aula 2: integrais como somas de retângulos (1)")
(code-etex-tla "c22"          "2020-2-C2-somas-1")
(code-etex-tla "c2m202somas1" "2020-2-C2-somas-1")
;; (c2m202somas2a "title")
;; (c2m202somas2a "title" "Aula 4: Integrais como somas de retângulos (2)")
(code-etex-tla "c24"          "2020-2-C2-somas-2")
(code-etex-tla "c2m202somas2" "2020-2-C2-somas-2")
;; (c2m202escadasa "title")
;; (c2m202escadasa "title" "Aula 8: integrais de funções escada")
(code-etex-tla "c28"           "2020-2-C2-escadas")
(code-etex-tla "c2m202escadas" "2020-2-C2-escadas")
;; (c2m202mt1a "title")
;; (c2m202mt1a "title" "Mini-teste 1")
(code-etex-tla "c2mt1"     "2020-2-C2-MT1")
(code-etex-tla "c2m202mt1" "2020-2-C2-MT1")
;; (c2m202tfca "title")
;; (c2m202tfca "title" "Aula 12: o TFC2.")
(code-etex-tla "c2t"       "2020-2-C2-TFC")
(code-etex-tla "c2m202tfc" "2020-2-C2-TFC")
;; (c2m202isa "title")
;; (c2m202isa "title" "Aula 14: integração por substituição.")
(code-etex-tla "c2is"     "2020-2-C2-int-subst")
(code-etex-tla "c2m202is" "2020-2-C2-int-subst")
;; (c2m202sta "title")
;; (c2m202sta "title" "Aula nn: substituição trigonométrica")
(code-etex-tla "c2st"     "2020-2-C2-subst-trig")
(code-etex-tla "c2m202st" "2020-2-C2-subst-trig")
;; (c2m202mt2a "title")
;; (c2m202mt2a "title" "Mini-teste 2")
(code-etex-tla "c2mt2"     "2020-2-C2-MT2")
(code-etex-tla "c2m202mt2" "2020-2-C2-MT2")
;; (c2m202fpa "title")
;; (c2m202fpa "title" "Aula nn: frações parciais")
(code-etex-tla "c2fp"     "2020-2-C2-fracs-parcs")
(code-etex-tla "c2m202fp" "2020-2-C2-fracs-parcs")
;; (c2m202edovsa "title")
;; (c2m202edovsa "title" "Aula ??: EDOs com variáveis separáveis")
(code-etex-tla "c2evs"       "2020-2-C2-edovs")
(code-etex-tla "c2m202edovs" "2020-2-C2-edovs")
;; (c2m202p1a "title")
;; (c2m202p1a "title" "P1 (primeira prova)")
(code-etex-tla "c2p1"     "2020-2-C2-P1")
(code-etex-tla "c2m202p1" "2020-2-C2-P1")
;; (c2m202ita "title")
;; (c2m202ita "title" "Aula ??: Identidades trigonométricas")
(code-etex-tla "c2it"     "2020-2-C2-ids-trigs")
(code-etex-tla "c2m202it" "2020-2-C2-ids-trigs")
;; (c2m202p2a "title")
;; (c2m202p2a "title" "P2 (segunda prova)")
(code-etex-tla "c2p2"     "2020-2-C2-P2")
(code-etex-tla "c2m202p2" "2020-2-C2-P2")

;; (c2m202tudoa "title")
(code-etex-tla "c2tuo"      "2020-2-C2-tudo")
(code-etex-tla "c2m202tudo" "2020-2-C2-tudo")

;; (find-CN-aula-links "2020-2-C2-somas-2"      "2" "c2m202somas2" "c2m202s2")
;; (find-CN-aula-links "2020-2-C2-def-integral" "2" "c2m202defint" "c2m202defi")

;; (code-etex-tla "c2m201somas2"   "2020-1-C2-somas-2")
;; (code-etex-tla "c2m2"           "2020-1-C2-somas-2")
;; (code-etex-tla "c2m201defint"   "2020-1-C2-def-integral") ; Aulas 5 e 6, 30/set e 1/2 out:
;; (code-etex-tla "c2m5"           "2020-1-C2-def-integral") ;  (c2m201defintp)


;; «c3-2020-2»  (to ".c3-2020-2")
(defun c3eoo () (interactive) (find-angg ".emacs" "c3-2020-2"))

;; (c3m202intro "title")
;; (c3m202intro "title" "Introdução ao curso" "e revisão de pontos e vetores")
(code-etex-tla "c31"         "2020-2-C3-intro")
(code-etex-tla "c3m202intro" "2020-2-C3-intro")
;; (c3m202vta "title")
;; (c3m202vta "title" "Vetores tangentes em" "R^2")
(code-etex-tla "c3m202vt"    "2020-2-C3-vetor-tangente")
(code-etex-tla "c32"         "2020-2-C3-vetor-tangente")
;; (c3m202acela "title")
;; (c3m202acela "title" "o vetor aceleração")
(code-etex-tla "c33"         "2020-2-C3-aceleracao")
(code-etex-tla "c3m202acel"  "2020-2-C3-aceleracao")
;; (c3m202taylor1a "title")
;; (c3m202taylor1a "title" "Aula 5: séries de Taylor e Maclaurin")
(code-etex-tla "c35"           "2020-2-C3-taylor")
(code-etex-tla "c3m202taylor1" "2020-2-C3-taylor")
;; (c3m202rcadeia1a "title")
;; (c3m202rcadeia1a "title" "Aula 7: Regra da Cadeia (1)")
(code-etex-tla "c37"            "2020-2-C3-rcadeia1")
(code-etex-tla "c3m202rcadeia1" "2020-2-C3-rcadeia1")
;; (c3m202mt1a "title")
;; (c3m202mt1a "title" "Mini-teste 1")
(code-etex-tla "c3mt1"     "2020-2-C3-MT1")
(code-etex-tla "c3m202mt1" "2020-2-C3-MT1")
;; (c3m202planotanga "title")
;; (c3m202planotanga "title" "Aula ??: o plano tangente")
(code-etex-tla "c3pt"            "2020-2-C3-plano-tang")
(code-etex-tla "c3m202planotang" "2020-2-C3-plano-tang")
;; (c3m202mt2a "title")
;; (c3m202mt2a "title" "Mini-teste 2")
(code-etex-tla "c3mt2"     "2020-2-C3-MT2")
(code-etex-tla "c3m202mt2" "2020-2-C3-MT2")
;; (c3m202p1a "title")
;; (c3m202p1a "title" "P1 (Primeira prova)")
(code-etex-tla "c3p1"     "2020-2-C3-P1")
(code-etex-tla "c3m202p1" "2020-2-C3-P1")
;; (c3m202p2a "title")
;; (c3m202p2a "title" "P2 (segunda prova)")
(code-etex-tla "c3p2"     "2020-2-C3-P2")
(code-etex-tla "c3m202p2" "2020-2-C3-P2")

;; (c3m202tudoa "title")
(code-etex-tla "c3tuo"      "2020-2-C3-tudo")
(code-etex-tla "c3m202tudo" "2020-2-C3-tudo")

;; «c2-2020-2-telegram»  (to ".c2-2020-2-telegram")
(defun c2eot () (interactive) (find-angg ".emacs" "c2-2021-1-telegram"))
;;
;; (find-telegram-save-log-links "2020" "2" "C2" "C1")
;; (code-pdf-page "20202C2C1" "~/2020.2-C2/C2-C1-RCN-PURO-2020.2.pdf")
;; (code-pdf-text "20202C2C1" "~/2020.2-C2/C2-C1-RCN-PURO-2020.2.pdf")
;; (code-pdf-page "20202C2C12" "~/2020.2-C2/C2-C1-RCN-PURO-2020.2-2.pdf")
;; (code-pdf-text "20202C2C12" "~/2020.2-C2/C2-C1-RCN-PURO-2020.2-2.pdf")
;; (find-20202C2C1page)
;; (find-20202C2C1text)
;; (find-20202C2C12page)
;; (find-20202C2C12text)

;; (find-telegram-save-log-links "2020" "2" "C2" "E1")
;; (code-pdf-page "20202C2E1" "~/2020.2-C2/C2-E1-RCN-PURO-2020.2.pdf")
;; (code-pdf-text "20202C2E1" "~/2020.2-C2/C2-E1-RCN-PURO-2020.2.pdf")
;; (code-pdf-page "20202C2E12" "~/2020.2-C2/C2-E1-RCN-PURO-2020.2-2.pdf")
;; (code-pdf-text "20202C2E12" "~/2020.2-C2/C2-E1-RCN-PURO-2020.2-2.pdf")
;; (code-pdf-page "20202C2E13" "~/2020.2-C2/C2-E1-RCN-PURO-2020.2-3.pdf")
;; (code-pdf-text "20202C2E13" "~/2020.2-C2/C2-E1-RCN-PURO-2020.2-3.pdf")
;; (find-20202C2E1page)
;; (find-20202C2E1text)
;; (find-20202C2E12page)
;; (find-20202C2E12text)
;; (find-20202C2E13page)
;; (find-20202C2E13text)

;; «c3-2020-2-telegram»  (to ".c3-2020-2-telegram")
(defun c3eot () (interactive) (find-angg ".emacs" "c3-2020-2-telegram"))
;;
;; (find-telegram-save-log-links "2020" "2" "C3" "M1")
;; (code-pdf-page "20202C3M1"  "~/2020.2-C3/C3-M1-RCN-PURO-2020.2.pdf")
;; (code-pdf-text "20202C3M1"  "~/2020.2-C3/C3-M1-RCN-PURO-2020.2.pdf")
;; (code-pdf-page "20202C3M12" "~/2020.2-C3/C3-M1-RCN-PURO-2020.2-2.pdf")
;; (code-pdf-text "20202C3M12" "~/2020.2-C3/C3-M1-RCN-PURO-2020.2-2.pdf")
;; (find-20202C3M1page)
;; (find-20202C3M1text)
;; (find-20202C3M12page)
;; (find-20202C3M12text)

(seen 19022)


;; «c2-2021-1»  (to ".c2-2021-1")
(defun c2eo () (interactive) (find-angg ".emacs" "c2-2021-1"))

;; (c2m211introa "title")
;; (c2m211introa "title" "Aula 1: introdução ao curso (e a EDOs e ao $[:=]$)")
(code-etex-tla "c2i"         "2021-1-C2-intro")
(code-etex-tla "c2m211intro" "2021-1-C2-intro")
;; (c2m211substa "title")
;; (c2m211substa "title" "Aula 1: O operador de substituição `$[:=]$'")
;; (c2m211substa  "sobre-treinar-muito")
;;(code-etex-tla "c2s"         "2021-1-C2-subst")
(code-etex-tla "c2m211subst" "2021-1-C2-subst")
;; (c2m211somas1a "title")
;; (c2m211somas1a "title" "Aula 2: integrais como somas de retângulos (1)")
(code-etex-tla "c2so"         "2021-1-C2-somas-1")
(code-etex-tla "c2m211somas1" "2021-1-C2-somas-1")
;; (c2m211somas1da "title")
;; (c2m211somas1da "title" "Material extra: dicas de estudo")
;; (c2m211somas1da   "dica-7")
(code-etex-tla "c2sod"         "2021-1-C2-somas-1-dicas")
(code-etex-tla "c2m211somas1d" "2021-1-C2-somas-1-dicas")
;; (c2m211somas2a "title")
;; (c2m211somas2a "title" "Aula 4: integrais como somas de retângulos (2)")
(code-etex-tla "c2so2"        "2021-1-C2-somas-2")
(code-etex-tla "c2m211somas2" "2021-1-C2-somas-2")
;;
;; (c2m211somas24a "title")
;; (c2m211somas24a "title" "Comentários sobre o exercício 4")
;; (c2m211somas24a  "contexto")
;; (c2m211somas24a  "abusos-de-linguagem")
;; (c2m211somas24a  "mais-sobre-bolinhas")
(code-etex-tla "c2so24"        "2021-1-C2-somas-2-4")
(code-etex-tla "c2m211somas24" "2021-1-C2-somas-2-4")
;; (c2m211pra "title")
;; (c2m211pra "title" "Aula 15: Propriedades da integral")
(code-etex-tla "c2pr"     "2021-1-C2-propriedades-da-integral")
(code-etex-tla "c2m211pr" "2021-1-C2-propriedades-da-integral")
;; (c2m211mt1a "title")
;; (c2m211mt1a "title" "Mini-teste 1")
(code-etex-tla "c2mt1"     "2021-1-C2-MT1")
(code-etex-tla "c2m211mt1" "2021-1-C2-MT1")
;; (c2m211mt2a "title")
;; (c2m211mt2a "title" "Mini-teste 2")
(code-etex-tla "c2mt2"     "2021-1-C2-MT2")
(code-etex-tla "c2m211mt2" "2021-1-C2-MT2")
;; (c2m211tfcsa "title")
;; (c2m211tfcsa "title" "Aula 19: os dois TFCs")
;; (c2m211tfcsp 17 "exercicio-5")
;; (c2m211tfcsa    "exercicio-5")
;; (c2m211tfcsa    "exercicio-5" "42 = 200")
(code-etex-tla "c2t"        "2021-1-C2-os-dois-TFCs")
(code-etex-tla "c2m211tfcs" "2021-1-C2-os-dois-TFCs")
;; (c2m211isa "title")
;; (c2m211isa "title" "Aula 21: integração por substituição")
(code-etex-tla "c2is"     "2021-1-C2-int-subst")
(code-etex-tla "c2m211is" "2021-1-C2-int-subst")
;; (c2mcc2a "title")
;; (c2mcc2a "title" "Aula 23: como contas de integração" "costumam ser organizadas")
(code-etex-tla "c2c"       "2021-1-C2-contas-em-C2")
(code-etex-tla "c2mcc2"    "2021-1-C2-contas-em-C2")
(code-etex-tla "c2m211cc2" "2021-1-C2-contas-em-C2")
;; (c2m211p1a "title")
;; (c2m211p1a "title" "P1 (primeira prova)")
;; (c2m211p1a "apendice")
(code-etex-tla "c2p1"     "2021-1-C2-P1")
(code-etex-tla "c2m211p1" "2021-1-C2-P1")
;; (c2m211edovsa "title")
;; (c2m211edovsa "title" "Aula 25: EDOs com variáveis separáveis")
(code-etex-tla "c2ev"        "2021-1-C2-edovs")
(code-etex-tla "c2m211edovs" "2021-1-C2-edovs")
;; (c2m211p2a "title")
(code-etex-tla "c2p2"     "2021-1-C2-P2")
(code-etex-tla "c2m211p2" "2021-1-C2-P2")

;; (c2m211fcia "title")
;; (c2m211fcia "title" "Material extra: funções são conjuntos infinitos de pontos")
;; (c2m211fcia "title" "acabei transferindo o que estava aqui pra outros PDFs!")
(code-etex-tla "c2fci"     "2021-1-C2-funcoes-conjs-infinitos")
(code-etex-tla "c2m211fci" "2021-1-C2-funcoes-conjs-infinitos")
;; (c2m211figsa "title")
;; (c2m211figsa "title" "Aula 12: Algumas figuras")
;; (c2m211figsa "title" "Elas foram transferidas pro Somas 2")
(code-etex-tla "c2fi"       "2021-1-C2-integral-figuras")
(code-etex-tla "c2m211figs" "2021-1-C2-integral-figuras")
;; (c2m211iea "title")
;; (c2m211iea "title" "Aula 13: integrais de funções-escada")
;; (c2m211iea "title" "(Obsoleto! Deletar!)")
(code-etex-tla "c2ie"     "2021-1-C2-integrais-escadas")
(code-etex-tla "c2m211ie" "2021-1-C2-integrais-escadas")
;; (c2m211caa "title")
;; (c2m211caa "title" "Slides de 2020.1 e 2020.2" "que eu posso querer reusar")
(code-etex-tla "c2ca"     "2021-1-C2-coisas-antigas")
(code-etex-tla "c2m211ca" "2021-1-C2-coisas-antigas")

;; (c2m211tudoa "title")
(code-etex-tla "c2tuo"      "2021-1-C2-tudo")
(code-etex-tla "c2m211tudo" "2021-1-C2-tudo")



;; «c2-2021-1-telegram»  (to ".c2-2021-1-telegram")
(defun c2et () (interactive) (find-angg ".emacs" "c2-2021-1-telegram"))
;;
;; (find-telegram-save-log-links "2021" "1" "C2" "C1")
;; (brg "~/2021.1-C2/C2-C1-RCN-PURO-2021.1.pdf")
(code-pdf-page "20211C2C1" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1.pdf")
(code-pdf-text "20211C2C1" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1.pdf")
(code-pdf-page "20211C2C12" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1-2.pdf")
(code-pdf-text "20211C2C12" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1-2.pdf")
(code-pdf-page "20211C2C13" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1-3.pdf")
(code-pdf-text "20211C2C13" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1-3.pdf")
(code-pdf-page "20211C2C14" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1-4.pdf")
(code-pdf-text "20211C2C14" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1-4.pdf")
(code-pdf-page "20211C2C15" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1-5.pdf")
(code-pdf-text "20211C2C15" "~/2021.1-C2/C2-C1-RCN-PURO-2021.1-5.pdf")
;; (find-20211C2C1page)
;; (find-20211C2C1text)
;; (find-20211C2C1page 1 "17 June 2021")
;; (find-20211C2C1text 1 "17 June 2021")
;; (find-20211C2C1page 11 "18 June 2021")
;; (find-20211C2C1text 11 "18 June 2021")
;; (find-20211C2C1page 15 "24 June 2021")
;; (find-20211C2C1text 15 "24 June 2021")
;; (find-20211C2C1page 20 "25 June 2021")
;; (find-20211C2C1text 20 "25 June 2021")
;; (find-20211C2C12page)
;; (find-20211C2C12text)
;; (find-20211C2C13page)
;; (find-20211C2C13text)
;; (find-20211C2C13page 4 "alguns livros antigos")
;; (find-20211C2C13text 4 "alguns livros antigos")
;;
;; (find-telegram-save-log-links "2021" "1" "C2" "E1")
;; (brg "~/2021.1-C2/C2-E1-RCN-PURO-2021.1.pdf")
(code-pdf-page "20211C2E1"  "~/2021.1-C2/C2-E1-RCN-PURO-2021.1.pdf")
(code-pdf-text "20211C2E1"  "~/2021.1-C2/C2-E1-RCN-PURO-2021.1.pdf")
(code-pdf-page "20211C2E12" "~/2021.1-C2/C2-E1-RCN-PURO-2021.1-2.pdf")
(code-pdf-text "20211C2E12" "~/2021.1-C2/C2-E1-RCN-PURO-2021.1-2.pdf")
(code-pdf-page "20211C2E13" "~/2021.1-C2/C2-E1-RCN-PURO-2021.1-3.pdf")
(code-pdf-text "20211C2E13" "~/2021.1-C2/C2-E1-RCN-PURO-2021.1-3.pdf")
(code-pdf-page "20211C2E14" "~/2021.1-C2/C2-E1-RCN-PURO-2021.1-4.pdf")
(code-pdf-text "20211C2E14" "~/2021.1-C2/C2-E1-RCN-PURO-2021.1-4.pdf")
;; (find-20211C2E1page)
;; (find-20211C2E1text)
;; (find-20211C2E1page  1 "16 June 2021")
;; (find-20211C2E1text  1 "16 June 2021")
;; (find-20211C2E1page 16 "e testarem as funcoes" "vao aprender MUITO")
;; (find-20211C2E1text 16 "e testarem as funcoes" "vao aprender MUITO")
;; (find-20211C2E1page 20 "motivos por eu preferir aulas por Telegram")
;; (find-20211C2E1text 20 "motivos por eu preferir aulas por Telegram")
;; (find-20211C2E1page 34 "18 June 2021")
;; (find-20211C2E1text 34 "18 June 2021")
;; (find-20211C2E1page 36 "jeito esperto")
;; (find-20211C2E1text 36 "jeito esperto")
;; (find-20211C2E1page 45 "19 June 2021")
;; (find-20211C2E1text 45 "19 June 2021")
;; (find-20211C2E1page 47 "23 June 2021")
;; (find-20211C2E1text 47 "23 June 2021")
;; (find-20211C2E1page 62 "mas que voces discutam aqui no canal do Telegram.")
;; (find-20211C2E1text 62 "mas que voces discutam aqui no canal do Telegram.")
;; (find-20211C2E1page 72 "que se chama somatório")
;; (find-20211C2E1text 72 "que se chama somatório")
;; (find-20211C2E1page 73 "Ta', mas qual materia?")
;; (find-20211C2E1text 73 "Ta', mas qual materia?")
;; (find-20211C2E1page 74 "Gente, a materia de matematica fica cada vez mais dificil")
;; (find-20211C2E1text 74 "Gente, a materia de matematica fica cada vez mais dificil")
;; (find-20211C2E1page 74 "mas se voces" "fizerem perguntas mais especificas")
;; (find-20211C2E1text 74 "mas se voces" "fizerem perguntas mais especificas")
;; (find-20211C2E1page 75 "O pior que pode acontecer")
;; (find-20211C2E1text 75 "O pior que pode acontecer")
;; (find-20211C2E1page 82 "25 June 2021")
;; (find-20211C2E1text 82 "25 June 2021")
;; (find-20211C2E1page 83 "30 June 2021")
;; (find-20211C2E1text 83 "30 June 2021")
;; (find-20211C2E1page 86 "1 July 2021")
;; (find-20211C2E1text 86 "1 July 2021")
;; (find-20211C2E1page 91 "2 July 2021")
;; (find-20211C2E1text 91 "2 July 2021")
;; (find-20211C2E12page)
;; (find-20211C2E12text)
;; (find-20211C2E12page 1 "7 July 2021")
;; (find-20211C2E12text 1 "7 July 2021")
;; (find-20211C2E12page 8 "8 July 2021")
;; (find-20211C2E12text 8 "8 July 2021")
;; (find-20211C2E12page 18 "9 July 2021")
;; (find-20211C2E12text 18 "9 July 2021")
;; (find-20211C2E12page 19 "14 July 2021")
;; (find-20211C2E12text 19 "14 July 2021")
;; (find-20211C2E12page 31 "15 July 2021")
;; (find-20211C2E12text 31 "15 July 2021")
;; (find-20211C2E12page 46 "16 July 2021")
;; (find-20211C2E12text 46 "16 July 2021")
;; (find-20211C2E12page 69 "17 July 2021")
;; (find-20211C2E12text 69 "17 July 2021")
;; (find-20211C2E12page 70 "19 July 2021")
;; (find-20211C2E12text 70 "19 July 2021")
;; (find-20211C2E12page 71 "20 July 2021")
;; (find-20211C2E12text 71 "20 July 2021")
;; (find-20211C2E12page 77 "21 July 2021")
;; (find-20211C2E12text 77 "21 July 2021")
;; (find-20211C2E13page)
;; (find-20211C2E13text)
;; (find-20211C2E13page 1 "21 July 2021")
;; (find-20211C2E13text 1 "21 July 2021")
;; (find-20211C2E13page 1 "22 July 2021")
;; (find-20211C2E13text 1 "22 July 2021")
;; (find-20211C2E13page 36 "23 July 2021")
;; (find-20211C2E13text 36 "23 July 2021")
;; (find-20211C2E13page 37 "24 July 2021")
;; (find-20211C2E13text 37 "24 July 2021")
;; (find-20211C2E13page 38 "28 July 2021")
;; (find-20211C2E13text 38 "28 July 2021")
;; (find-20211C2E13page 42 "29 July 2021")
;; (find-20211C2E13text 42 "29 July 2021")
;; (find-20211C2E13page 51 "30 July 2021")
;; (find-20211C2E13text 51 "30 July 2021")
;; (find-20211C2E13page 54 "4 August 2021")
;; (find-20211C2E13text 54 "4 August 2021")
;; (find-20211C2E13page 62 "5 August 2021")
;; (find-20211C2E13text 62 "5 August 2021")
;; (find-20211C2E13page 74 "9 August 2021")
;; (find-20211C2E13text 74 "9 August 2021")
;; (find-20211C2E13page 74 "11 August 2021")
;; (find-20211C2E13text 74 "11 August 2021")
;; (find-20211C2E13page 81 "12 August 2021")
;; (find-20211C2E13text 81 "12 August 2021")
;; (find-20211C2E14page)
;; (find-20211C2E14text)





;; «c3-2021-1»  (to ".c3-2021-1")
(defun c3eo () (interactive) (find-angg ".emacs" "c3-2021-1"))

;; (c3m211introa "title")
;; (c3m211introa "title" "Aula 1: introdução ao curso")
(code-etex-tla "c3i"         "2021-1-C3-intro")
(code-etex-tla "c3m211intro" "2021-1-C3-intro")
;; (c3m211vta "title")
;; (c3m211vta "title" "Aula 2: Vetores tangentes em $\\R^2$")
(code-etex-tla "c3vt"     "2021-1-C3-vetor-tangente")
(code-etex-tla "c3m211vt" "2021-1-C3-vetor-tangente")
;; (c3m211vla "title")
;; (c3m211vla "title" "Aula 3: como visualizar limites")
(code-etex-tla "c3vl"     "2021-1-C3-visualizar-limites")
(code-etex-tla "c3m211vl" "2021-1-C3-visualizar-limites")
;; (c3m211taa "title")
;; (c3m211taa "title" "Aula 5: Séries de Taylor e MacLaurin")
(code-etex-tla "c3ta"     "2021-1-C3-taylor")
(code-etex-tla "c3m211ta" "2021-1-C3-taylor")
;; (c3m211ca "title")
;; (c3m211ca "title" "Aula 7: Cortes em superfícies")
(code-etex-tla "c3c"     "2021-1-C3-cortes")
(code-etex-tla "c3m211c" "2021-1-C3-cortes")
;; (c3m211cna "title")
;; (c3m211cna "title" "Aula 8: curvas de nível e diagramas de numerozinhos")
(code-etex-tla "c3cn"     "2021-1-C3-curvas-de-nivel")
(code-etex-tla "c3m211cn" "2021-1-C3-curvas-de-nivel")
;; (c3m211planosa "title")
;; (c3m211planosa "title" "Aula ??: revisão de planos")
;;(code-etex-tla "c3pl"         "2021-1-C3-planos")
(code-etex-tla "c3m211planos" "2021-1-C3-planos")
;; (c3m211mt1a "title")
;; (c3m211mt1a "title" "Mini-teste 1")
(code-etex-tla "c3mt1"     "2021-1-C3-MT1")
(code-etex-tla "c3m211mt1" "2021-1-C3-MT1")
;; (c3m211dpa "title")
;; (c3m211dpa "title" "Aula 13: entendendo visualmente derivadas parciais")
(code-etex-tla "c3dp"     "2021-1-C3-derivadas-parciais")
(code-etex-tla "c3m211dp" "2021-1-C3-derivadas-parciais")
;; (c3m211nfa "title")
;; (c3m211nfa "title" "Aula 14: Notação de físicos")
(code-etex-tla "c3nf"     "2021-1-C3-notacao-de-fisicos")
(code-etex-tla "c3m211nf" "2021-1-C3-notacao-de-fisicos")
;; (c3m211qa "title")
;; (c3m211qa "title" "Aula 17: algumas funções quadráticas")
(code-etex-tla "c3q"     "2021-1-C3-funcoes-quadraticas")
(code-etex-tla "c3m211q" "2021-1-C3-funcoes-quadraticas")
;; (c3m211ja "title")
;; (c3m211ja "title" "Aula 21: a matriz jacobiana")
(code-etex-tla "c3j"     "2021-1-C3-matriz-jacobiana")
(code-etex-tla "c3m211j" "2021-1-C3-matriz-jacobiana")
;; (c3m211mt2a "title")
;; (c3m211mt2a "title" "Mini-teste 2")
(code-etex-tla "c3mt2"     "2021-1-C3-MT2")
(code-etex-tla "c3m211mt2" "2021-1-C3-MT2")
;; (c3mgrada "title")
;; (c3mgrada "title" "Aula 23: o vetor gradiente")
(code-etex-tla "c3g"        "2021-1-C3-gradiente")
(code-etex-tla "c3mgrad"    "2021-1-C3-gradiente")
(code-etex-tla "c3m211grad" "2021-1-C3-gradiente")
;; (c3m211p1a "title")
;; (c3m211p1a "title" "P1 (primeira prova)")
(code-etex-tla "c3p1"     "2021-1-C3-P1")
(code-etex-tla "c3m211p1" "2021-1-C3-P1")
;; (c3m211afa "title")
;; (c3m211afa "title" "Aula 25: abertos e fechados em $\\R^2$")
(code-etex-tla "c3af"     "2021-1-C3-abertos-e-fechados")
(code-etex-tla "c3m211af" "2021-1-C3-abertos-e-fechados")
;; (c3m211p2a "title")
;; (c3m211p2a "title" "P2 (segunda prova)")
(code-etex-tla "c3p2"     "2021-1-C3-P2")
(code-etex-tla "c3m211p2" "2021-1-C3-P2")

;; (c3m211tudoa "title")
(code-etex-tla "c3tu"       "2021-1-C3-tudo")
(code-etex-tla "c3m211tudo" "2021-1-C3-tudo")

;; «c3-2021-1-telegram»  (to ".c3-2021-1-telegram")
(defun c3et () (interactive) (find-angg ".emacs" "c3-2021-1-telegram"))
;;
;; (find-telegram-save-log-links "2021" "1" "C3" "M1")
(code-pdf-page "20211C3M1"  "~/2021.1-C3/C3-M1-RCN-PURO-2021.1.pdf")
(code-pdf-text "20211C3M1"  "~/2021.1-C3/C3-M1-RCN-PURO-2021.1.pdf")
(code-pdf-page "20211C3M12" "~/2021.1-C3/C3-M1-RCN-PURO-2021.1-2.pdf")
(code-pdf-text "20211C3M12" "~/2021.1-C3/C3-M1-RCN-PURO-2021.1-2.pdf")
;; (find-20211C3M1page)
;; (find-20211C3M1text)
;; (find-20211C3M1page   1 "16 June 2021")
;; (find-20211C3M1text   1 "16 June 2021")
;; (find-20211C3M1page  15 "17 June 2021")
;; (find-20211C3M1text  15 "17 June 2021")
;; (find-20211C3M1page  17 "18 June 2021")
;; (find-20211C3M1text  17 "18 June 2021")
;; (find-20211C3M1page  28 "21 June 2021")
;; (find-20211C3M1text  28 "21 June 2021")
;; (find-20211C3M1page  29 "23 June 2021")
;; (find-20211C3M1text  29 "23 June 2021")
;; (find-20211C3M1page  41 "25 June 2021")
;; (find-20211C3M1text  41 "25 June 2021")
;; (find-20211C3M1page  48 "30 June 2021")
;; (find-20211C3M1text  48 "30 June 2021")
;; (find-20211C3M1page  54  "2 July 2021")
;; (find-20211C3M1text  54  "2 July 2021")
;; (find-20211C3M1page  63  "7 July 2021")
;; (find-20211C3M1text  63  "7 July 2021")
;; (find-20211C3M1page  67  "9 July 2021")
;; (find-20211C3M1text  67  "9 July 2021")
;; (find-20211C3M1page  77 "14 July 2021")
;; (find-20211C3M1text  77 "14 July 2021")
;; (find-20211C3M1page  86 "16 July 2021")
;; (find-20211C3M1text  86 "16 July 2021")
;; (find-20211C3M1page  91 "21 July 2021")
;; (find-20211C3M1text  91 "21 July 2021")
;; (find-20211C3M1page 101 "23 July 2021")
;; (find-20211C3M1text 101 "23 July 2021")
;; (find-20211C3M12page)
;; (find-20211C3M12text)
;; (find-20211C3M12page  1 "23 July 2021")
;; (find-20211C3M12text  1 "23 July 2021")
;; (find-20211C3M12page 15 "24 July 2021")
;; (find-20211C3M12text 15 "24 July 2021")
;; (find-20211C3M12page 15 "28 July 2021")
;; (find-20211C3M12text 15 "28 July 2021")
;; (find-20211C3M12page 19 "30 July 2021")
;; (find-20211C3M12text 19 "30 July 2021")
;; (find-20211C3M12page 27 "4 August 2021")
;; (find-20211C3M12text 27 "4 August 2021")
;; (find-20211C3M12page 30 "6 August 2021")
;; (find-20211C3M12text 30 "6 August 2021")
;; (find-20211C3M12page 37 "11 August 2021")
;; (find-20211C3M12text 37 "11 August 2021")

(seen 19375)


;; «c2-2021-2»  (to ".c2-2021-2")
(defun c2eo () (interactive) (find-angg ".emacs" "c2-2021-2"))

;; (c2m212introp 1 "title")
;; (c2m212introa   "title" "Aulas 4 e 5: introdução ao curso")
(code-etex-tla "c2i"         "2021-2-C2-intro")
(code-etex-tla "c2m212intro" "2021-2-C2-intro")
;; (c2m212somas1a "title")
;; (c2m212somas1a "title" "Aula 4: integrais como somas de retângulos (1)")
(code-etex-tla "c2so"         "2021-2-C2-somas-1")
(code-etex-tla "c2m212somas1" "2021-2-C2-somas-1")
;; (c2m212mt1a "title")
;; (c2m212mt1a "title" "Mini-teste 1")
(code-etex-tla "c2mt1"     "2021-2-C2-MT1")
(code-etex-tla "c2m212mt1" "2021-2-C2-MT1")
;; (c2m212mt2a "title")
;; (c2m212mt2a "title" "Mini-teste 2")
(code-etex-tla "c2mt2"     "2021-2-C2-MT2")
(code-etex-tla "c2m212mt2" "2021-2-C2-MT2")
;; (c2m212somas2a "title")
;; (c2m212somas2a "title" "Aula 13: integrais como somas de retângulos (2)")
(code-etex-tla "c2so2"        "2021-2-C2-somas-2")
(code-etex-tla "c2m212somas2" "2021-2-C2-somas-2")
;; (c2m212somas24a "title")
;; (c2m212somas24a "title" "Comentários sobre o exercício 4 do")
(code-etex-tla "c2so24"        "2021-2-C2-somas-2-4")
(code-etex-tla "c2m212somas24" "2021-2-C2-somas-2-4")
;; (c2m212isa "title")
;; (c2m212isa "title" "Aula 17: infs e sups")
(code-etex-tla "c2is"     "2021-2-C2-infs-e-sups")
(code-etex-tla "c2m212is" "2021-2-C2-infs-e-sups")
;; (c2m212dia "title")
;; (c2m212dia "title" "Aula 19: a definição da integral")
(code-etex-tla "c2di"     "2021-2-C2-def-integral")
(code-etex-tla "c2m212di" "2021-2-C2-def-integral")
;; (c2m212pia "title")
;; (c2m212pia "title" "Aula ??: propriedades da integral")
(code-etex-tla "c2pi"     "2021-2-C2-props-int")
(code-etex-tla "c2m212pi" "2021-2-C2-props-int")
;; (c2m212tfc1a "title")
;; (c2m212tfc1a "title" "Aula 20: o TFC1")
(code-etex-tla "c2t1"       "2021-2-C2-TFC1")
(code-etex-tla "c2m212tfc1" "2021-2-C2-TFC1")
;; (c2m212mt3a "title")
;; (c2m212mt3a "title" "Mini-teste 3")
(code-etex-tla "c2mt3"     "2021-2-C2-MT3")
(code-etex-tla "c2m212mt3" "2021-2-C2-MT3")
;; (c2m212intsa "title")
;; (c2m212intsa "title" "Aula 22: integração por substituição")
(code-etex-tla "c2ints"     "2021-2-C2-int-subst")
(code-etex-tla "c2m212ints" "2021-2-C2-int-subst")
;; (c2m212mva "title")
;; (c2m212mva "title" "Aula 26: mudança de variável")
(code-etex-tla "c2mv"     "2021-2-C2-mud-var-gamb")
(code-etex-tla "c2m212mv" "2021-2-C2-mud-var-gamb")
;; (c2m212p1a "title")
;; (c2m212p1a "title" "P1 (Primeira prova)")
(code-etex-tla "c2p1"     "2021-2-C2-P1")
(code-etex-tla "c2m212p1" "2021-2-C2-P1")
;; (c2m212edovsa "title")
;; (c2m212edovsa "title" "Aula 26: EDOs com variáveis separáveis")
(code-etex-tla "c2ev"        "2021-2-C2-edovs")
(code-etex-tla "c2m212edovs" "2021-2-C2-edovs")
;; (c2m212rp2a "title")
;; (c2m212rp2a "title" "Aula 28: revisão pra P2")
(code-etex-tla "c2rp2"     "2021-2-C2-revisao-pra-P2")
(code-etex-tla "c2m212rp2" "2021-2-C2-revisao-pra-P2")
;; (c2m212p2a "title")
;; (c2m212p2a "title" "Segunda prova (P2)")
(code-etex-tla "c2p2"     "2021-2-C2-P2")
(code-etex-tla "c2m212p2" "2021-2-C2-P2")
;; (c2m212fpa "title")
;; (c2m212fpa "title" "Aula nn: frações parciais")
(code-etex-tla "c2fp"     "2021-2-C2-fracoes-parciais")
(code-etex-tla "c2m212fp" "2021-2-C2-fracoes-parciais")
;; (c2m212vsa "title")
(code-etex-tla "c2vs"    "2021-2-C2-VS")
(code-etex-tla "c2m212vs" "2021-2-C2-VS")

;; (c2m212tudoa "title")
;; (c2m212tudoa "title" "Todos os PDFs do semestre")
(code-etex-tla "c2tuoo"     "2021-2-C2-tudo")
(code-etex-tla "c2m212tudo" "2021-2-C2-tudo")

;; «c2-2021-2-telegram»  (to ".c2-2021-2-telegram")
(defun c2et () (interactive) (find-angg ".emacs" "c2-2021-2-telegram"))
;;
;; (find-telegram-save-log-links "2021" "2" "C2" "C1")
;; (brg "~/2021.2-C2/C2-C1-RCN-PURO-2021.2.pdf")
;; (code-pdf-page "20212C2C1"  "~/2021.2-C2/C2-C1-RCN-PURO-2021.2.pdf")
;; (code-pdf-text "20212C2C1"  "~/2021.2-C2/C2-C1-RCN-PURO-2021.2.pdf")
;; (code-pdf-page "20212C2C12" "~/2021.2-C2/C2-C1-RCN-PURO-2021.2-2.pdf")
;; (code-pdf-text "20212C2C12" "~/2021.2-C2/C2-C1-RCN-PURO-2021.2-2.pdf")
;; (code-pdf-page "20212C2C13" "~/2021.2-C2/C2-C1-RCN-PURO-2021.2-3.pdf")
;; (code-pdf-text "20212C2C13" "~/2021.2-C2/C2-C1-RCN-PURO-2021.2-3.pdf")
;; (find-20212C2C1page)
;; (find-20212C2C1text)
;; (find-20212C2C1page 1 "21 October 2021")
;; (find-20212C2C1text 1 "21 October 2021")
;; (find-20212C2C1page 21 "4 November 2021")
;; (find-20212C2C1text 21 "4 November 2021")
;; (find-20212C2C1page 24 "5 November 2021")
;; (find-20212C2C1text 24 "5 November 2021")
;; (find-20212C2C1page 27 "6 November 2021")
;; (find-20212C2C1text 27 "6 November 2021")
;; (find-20212C2C1page 29 "11 November 2021")
;; (find-20212C2C1text 29 "11 November 2021")
;; (find-20212C2C1page 67 "25 November 2021")
;; (find-20212C2C1text 67 "25 November 2021")
;; (find-20212C2C1page 80 "26 November 2021")
;; (find-20212C2C1text 80 "26 November 2021")
;; (find-20212C2C1page 90 "2 December 2021")
;; (find-20212C2C1text 90 "2 December 2021")
;; (find-20212C2C1page 95 "3 December 2021")
;; (find-20212C2C1text 95 "3 December 2021")
;; (find-20212C2C1page 96 "9 December 2021")
;; (find-20212C2C1text 96 "9 December 2021")
;; 67-89
;; (find-20212C2C12page)
;; (find-20212C2C12text)
;; (find-20212C2C12page 1 "9 December 2021")
;; (find-20212C2C12text 1 "9 December 2021")
;; (find-20212C2C12page 7 "10 December 2021")
;; (find-20212C2C12text 7 "10 December 2021")
;; (find-20212C2C12page 7 "16 December 2021")
;; (find-20212C2C12text 7 "16 December 2021")
;; (find-20212C2C12page 17 "17 December 2021")
;; (find-20212C2C12text 17 "17 December 2021")
;; (find-20212C2C12page 19 "23 December 2021")
;; (find-20212C2C12text 19 "23 December 2021")
;;
;; (find-20212C2C13page)
;; (find-20212C2C13text)
;;
;; (find-telegram-save-log-links "2021" "2" "C2" "E1")
;; (brg "~/2021.2-C2/C2-E1-RCN-PURO-2021.2.pdf")
;; (find-fline "~/2021.2-C2/" "C2-E1-RCN-PURO-2021.2")
;; (code-pdf-page "20212C2E1" "~/2021.2-C2/C2-E1-RCN-PURO-2021.2.pdf")
;; (code-pdf-text "20212C2E1" "~/2021.2-C2/C2-E1-RCN-PURO-2021.2.pdf")
;; (code-pdf-page "20212C2E12" "~/2021.2-C2/C2-E1-RCN-PURO-2021.2-2.pdf")
;; (code-pdf-text "20212C2E12" "~/2021.2-C2/C2-E1-RCN-PURO-2021.2-2.pdf")
;; (code-pdf-page "20212C2E13" "~/2021.2-C2/C2-E1-RCN-PURO-2021.2-3.pdf")
;; (code-pdf-text "20212C2E13" "~/2021.2-C2/C2-E1-RCN-PURO-2021.2-3.pdf")
;; (find-20212C2E1page)
;; (find-20212C2E1text)
;; (find-20212C2E1page 1 "21 October 2021")
;; (find-20212C2E1text 1 "21 October 2021")
;; (find-20212C2E1page 8 "22 October 2021")
;; (find-20212C2E1text 8 "22 October 2021")
;; (find-20212C2E1page 9 "27 October 2021")
;; (find-20212C2E1text 9 "27 October 2021")
;; (find-20212C2E1page 9 "28 October 2021")
;; (find-20212C2E1text 9 "28 October 2021")
;; (find-20212C2E1page 17 "3 November 2021")
;; (find-20212C2E1text 17 "3 November 2021")
;; (find-20212C2E1page 19 "4 November 2021")
;; (find-20212C2E1text 19 "4 November 2021")
;; (find-20212C2E1page 21 "10 November 2021")
;; (find-20212C2E1text 21 "10 November 2021")
;; (find-20212C2E1page 36 "11 November 2021")
;; (find-20212C2E1text 36 "11 November 2021")
;; (find-20212C2E1page 43 "12 November 2021")
;; (find-20212C2E1text 43 "12 November 2021")
;; (find-20212C2E1page 44 "13 November 2021")
;; (find-20212C2E1text 44 "13 November 2021")
;; (find-20212C2E1page 44 "17 November 2021")
;; (find-20212C2E1text 44 "17 November 2021")
;; (find-20212C2E1page 67 "24 November 2021")
;; (find-20212C2E1text 67 "24 November 2021")
;; (find-20212C2E1page 76 "25 November 2021")
;; (find-20212C2E1text 76 "25 November 2021")
;; (find-20212C2E1page 82   "Alice, voce consegue refazer a 2b")
;; (find-20212C2E1text 82   "Alice, voce consegue refazer a 2b")
;; (find-20212C2E1page 90 "26 November 2021")
;; (find-20212C2E1text 90 "26 November 2021")
;; (find-20212C2E1page 90 "1 December 2021")
;; (find-20212C2E1text 90 "1 December 2021")


;; (find-20212C2E12page)
;; (find-20212C2E12text)
;; (find-20212C2E12page 1 "1 December 2021")
;; (find-20212C2E12text 1 "1 December 2021")
;; (find-20212C2E12page 2 "2 December 2021")
;; (find-20212C2E12text 2 "2 December 2021")
;; (find-20212C2E12page 8 "8 December 2021")
;; (find-20212C2E12text 8 "8 December 2021")
;; (find-20212C2E12page 20 "9 December 2021")
;; (find-20212C2E12text 20 "9 December 2021")
;; (find-20212C2E12page 23 "15 December 2021")
;; (find-20212C2E12text 23 "15 December 2021")
;; (find-20212C2E12page 35 "16 December 2021")
;; (find-20212C2E12text 35 "16 December 2021")
;; (find-20212C2E12page 47 "22 December 2021")
;; (find-20212C2E12text 47 "22 December 2021")
;; (find-20212C2E12page 48 "23 December 2021")
;; (find-20212C2E12text 48 "23 December 2021")
;; (find-20212C2E12page 55 "5 January 2022")
;; (find-20212C2E12text 55 "5 January 2022")
;; (find-20212C2E12page 62 "6 January 2022")
;; (find-20212C2E12text 62 "6 January 2022")
;; (find-20212C2E12page 66 "7 January 2022")
;; (find-20212C2E12text 66 "7 January 2022")
;; (find-20212C2E12page 67 "9 January 2022")
;; (find-20212C2E12text 67 "9 January 2022")
;; (find-20212C2E12page 67 "10 January 2022")
;; (find-20212C2E12text 67 "10 January 2022")
;; (find-20212C2E12page 68 "12 January 2022")
;; (find-20212C2E12text 68 "12 January 2022")
;; (find-20212C2E12page 71 "13 January 2022")
;; (find-20212C2E12text 71 "13 January 2022")
;; (find-20212C2E12page 80 "19 January 2022")
;; (find-20212C2E12text 80 "19 January 2022")
;; (find-20212C2E12page 86 "20 January 2022")
;; (find-20212C2E12text 86 "20 January 2022")
;; (find-20212C2E12page 86 "24 January 2022")
;; (find-20212C2E12text 86 "24 January 2022")
;; (find-20212C2E12page 86 "25 January 2022")
;; (find-20212C2E12text 86 "25 January 2022")
;; (find-20212C2E12page 88 "26 January 2022")
;; (find-20212C2E12text 88 "26 January 2022")
;; (find-20212C2E13page)
;; (find-20212C2E13text)
;; (find-20212C2E13page 1 "26 January 2022")
;; (find-20212C2E13text 1 "26 January 2022")
;; (find-20212C2E13page 4 "27 January 2022")
;; (find-20212C2E13text 4 "27 January 2022")
;; (find-20212C2E13page 8 "31 January 2022")
;; (find-20212C2E13text 8 "31 January 2022")
;; (find-20212C2E13page 9 "2 February 2022")
;; (find-20212C2E13text 9 "2 February 2022")
;; (find-20212C2E13page 11 "3 February 2022")
;; (find-20212C2E13text 11 "3 February 2022")
;; (find-20212C2E13page 15 "4 February 2022")
;; (find-20212C2E13text 15 "4 February 2022")
;; (find-20212C2E13page 17 "7 February 2022")
;; (find-20212C2E13text 17 "7 February 2022")




;; «c3-2021-2»  (to ".c3-2021-2")
(defun c3eoo () (interactive) (find-angg ".emacs" "c3-2021-2"))
;; (c3m212introa "title")
;; (c3m212introa "title" "Aula 1: introdução ao curso")
(code-etex-tla "c3i"         "2021-2-C3-intro")
(code-etex-tla "c3m212intro" "2021-2-C3-intro")
;; (c3m212vta "title")
;; (c3m212vta "title" "Aula 6: Vetores tangentes em" "R^2")
(code-etex-tla "c3vt"     "2021-2-C3-vetor-tangente")
(code-etex-tla "c3m212vt" "2021-2-C3-vetor-tangente")
;; (c3m212beziera "title")
;; (c3m212beziera "title" "Aula 7: um vídeo sobre curvas de Bézier")
(code-etex-tla "c3b"          "2021-2-C3-bezier")
(code-etex-tla "c3m212bezier" "2021-2-C3-bezier")
;; (c3m212mt1a "title")
;; (c3m212mt1a "title" "Mini-teste 1")
(code-etex-tla "c3mt1"     "2021-2-C3-MT1")
(code-etex-tla "c3m212mt1" "2021-2-C3-MT1")
;; (c3m212typesa "title")
;; (c3m212typesa "title" "Aula 9: tipos")
(code-etex-tla "c3ty"        "2021-2-C3-tipos")
(code-etex-tla "c3m212types" "2021-2-C3-tipos")
;; (c3m212nfa "title")
;; (c3m212nfa "title" "Aula 11: ``notação de físicos''")
(code-etex-tla "c3nf"     "2021-2-C3-notacao-de-fisicos")
(code-etex-tla "c3m212nf" "2021-2-C3-notacao-de-fisicos")
;; (c3m212dna "title")
;; (c3m212dna "title" "Aula 16: diagramas de numerozinhos")
(code-etex-tla "c3dn"     "2021-2-C3-diag-nums")
(code-etex-tla "c3m212dn" "2021-2-C3-diag-nums")
;; (c3m212mt2a "title")
;; (c3m212mt2a "title" "Mini-teste 2")
(code-etex-tla "c3mt2"     "2021-2-C3-MT2")
(code-etex-tla "c3m212mt2" "2021-2-C3-MT2")
;; (c3m212fha "title")
;; (c3m212fha "title" "Aula 23: funções homogêneas")
(code-etex-tla "c3fh"     "2021-2-C3-funcoes-homogeneas")
(code-etex-tla "c3m212fh" "2021-2-C3-funcoes-homogeneas")
;; (c3m212taa "title")
;; (c3m212taa "title" "Aula 24: Séries de Taylor")
(code-etex-tla "c3ta"     "2021-2-C3-taylor")
(code-etex-tla "c3m212ta" "2021-2-C3-taylor")
;; (c3m212p1a "title")
;; (c3m212p1a "title" "Primeira prova (P1)")
(code-etex-tla "c3p1"     "2021-2-C3-P1")
(code-etex-tla "c3m212p1" "2021-2-C3-P1")
;; (c3m212t2a "title")
;; (c3m212t2a "title" "Aula 26: Taylor em $\\R^2$")
(code-etex-tla "c3t2"     "2021-2-C3-taylor-R2")
(code-etex-tla "c3m212t2" "2021-2-C3-taylor-R2")
;; (c3m212p2a "title")
;; (c3m212p2a "title" "Segunda prova (P2)")
(code-etex-tla "c3p2"     "2021-2-C3-P2")
(code-etex-tla "c3m212p2" "2021-2-C3-P2")
;; (c3m212vsa "title")
;; (c3m212vsa "title" "Prova final (VS)")
(code-etex-tla "c3vs"     "2021-2-C3-VS")
(code-etex-tla "c3m212vs" "2021-2-C3-VS")

;; (c3m212qa "title")
;; (c3m212qa "title" "Aula 17: algumas funções quadráticas")
(code-etex-tla "c3q"     "2021-2-C3-funcoes-quadraticas")
(code-etex-tla "c3m212q" "2021-2-C3-funcoes-quadraticas")

;; (c3m212tudoa "title")
;; (c3m212tudoa "title" "Todos os PDFs do semestre")
(code-etex-tla "c3tuoo"     "2021-2-C3-tudo")
(code-etex-tla "c3m212tudo" "2021-2-C3-tudo")

;; «c3-2021-2-telegram»  (to ".c3-2021-2-telegram")
(defun c3et () (interactive) (find-angg ".emacs" "c3-2021-2-telegram"))
;;
;; (find-telegram-save-log-links "2021" "2" "C3" "M1")
;; (code-pdf-page "20212C3M1" "~/2021.2-C3/C3-M1-RCN-PURO-2021.2.pdf")
;; (code-pdf-text "20212C3M1" "~/2021.2-C3/C3-M1-RCN-PURO-2021.2.pdf")
;; (code-pdf-page "20212C3M12" "~/2021.2-C3/C3-M1-RCN-PURO-2021.2-2.pdf")
;; (code-pdf-text "20212C3M12" "~/2021.2-C3/C3-M1-RCN-PURO-2021.2-2.pdf")
;; (code-pdf-page "20212C3M13" "~/2021.2-C3/C3-M1-RCN-PURO-2021.2-3.pdf")
;; (code-pdf-text "20212C3M13" "~/2021.2-C3/C3-M1-RCN-PURO-2021.2-3.pdf")
;; (code-pdf-page "20212C3M14" "~/2021.2-C3/C3-M1-RCN-PURO-2021.2-4.pdf")
;; (code-pdf-text "20212C3M14" "~/2021.2-C3/C3-M1-RCN-PURO-2021.2-4.pdf")
;; (find-20212C3M1page)
;; (find-20212C3M1text)
;; (find-20212C3M12page)
;; (find-20212C3M12text)
;; (find-20212C3M12page 32 "1 December 2021")
;; (find-20212C3M12text 32 "1 December 2021")
;; (find-20212C3M12page 40 "3 December 2021")
;; (find-20212C3M12text 40 "3 December 2021")
;; (find-20212C3M12page 49 "6 December 2021")
;; (find-20212C3M12text 49 "6 December 2021")
;; (find-20212C3M12page 49 "8 December 2021")
;; (find-20212C3M12text 49 "8 December 2021")
;; (find-20212C3M12page 60 "10 December 2021")
;; (find-20212C3M12text 60 "10 December 2021")
;; (find-20212C3M12page 76 "15 December 2021")
;; (find-20212C3M12text 76 "15 December 2021")
;; (find-20212C3M12page 80 "17 December 2021")
;; (find-20212C3M12text 80 "17 December 2021")
;; (find-20212C3M12page 81 "22 December 2021")
;; (find-20212C3M12text 81 "22 December 2021")
;; (find-20212C3M12page 89 "5 January 2022")
;; (find-20212C3M12text 89 "5 January 2022")
;; (find-20212C3M13page)
;; (find-20212C3M13text)
;; (find-20212C3M13page 1 "5 January 2022")
;; (find-20212C3M13text 1 "5 January 2022")
;; (find-20212C3M14page)
;; (find-20212C3M14text)



;; «c2-2022-1»  (to ".c2-2022-1")
(defun c2eoo () (interactive) (find-angg ".emacs" "c2-2022-1"))

;; (c2m221introa "title")
;; (c2m221introa "title" "Aulas 4 e 5: mais exercícios de substituição")
(code-etex-tla "c2i"         "2022-1-C2-intro")
(code-etex-tla "c2m221intro" "2022-1-C2-intro")

;; (c2m221somas3a "title")
;; (c2m221somas3a "title" "Aula 11: somas de retângulos")
(code-etex-tla "c2so3"        "2022-1-C2-somas-3")
(code-etex-tla "c2m221somas3" "2022-1-C2-somas-3")

;; (c2m221isa "title")
;; (c2m221isa "title" "Aula 15: infs e sups")
(code-etex-tla "c2is"     "2022-1-C2-infs-e-sups")
(code-etex-tla "c2m221is" "2022-1-C2-infs-e-sups")

;; (c2m221tfc1a "title")
;; (c2m221tfc1a "title" "Aula 23: o TFC1")
(code-etex-tla "c2t1"       "2022-1-C2-TFC1")
(code-etex-tla "c2m221tfc1" "2022-1-C2-TFC1")

;; (c2m221mt1a "title")
;; (c2m221mt1a "title" "Mini-teste 1")
(code-etex-tla "c2mt1"     "2022-1-C2-MT1")
(code-etex-tla "c2m221mt1" "2022-1-C2-MT1")

;; (c2m221dfia "title")
;; (c2m221dfia "title" "derivada" "da função inversa")
(code-etex-tla "c2df"      "2022-1-C2-der-fun-inv")
(code-etex-tla "c2m221dfi" "2022-1-C2-der-fun-inv")

;; (c2m221atisa "title")
;; (c2m221atisa "title" "Aula 29: algumas técnicas de integração")
(code-etex-tla "c2at"       "2022-1-C2-algumas-t-ints")
(code-etex-tla "c2m221atis" "2022-1-C2-algumas-t-ints")

;; (c2m221fda "title")
;; (c2m221fda "title" "Este arquivo só tem definições!")
(code-etex-tla "c2fd"     "2022-1-C2-formulas-defs")
(code-etex-tla "c2m221fd" "2022-1-C2-formulas-defs")
;; (c2m221fta "title")
;; (c2m221fta "title" "Testes para as definições")
(code-etex-tla "c2ft"     "2022-1-C2-formulas-test")
(code-etex-tla "c2m221ft" "2022-1-C2-formulas-test")

;; (c2m221mt2a "title")
;; (c2m221mt2a "title" "Mini-teste 2")
(code-etex-tla "c2mt2"     "2022-1-C2-MT2")
(code-etex-tla "c2m221mt2" "2022-1-C2-MT2")

;; (c2m221pra "title")
;; (c2m221pra "title" "Aula 31: primitivas")
(code-etex-tla "c2pr"     "2022-1-C2-primitivas")
(code-etex-tla "c2m221pr" "2022-1-C2-primitivas")

;; (c2m221dp1a "title")
;; (c2m221dp1a "title" "Aula 31: dicas pra P1")
(code-etex-tla "c2d1"      "2022-1-C2-dicas-pra-P1")
(code-etex-tla "c2m221dp1" "2022-1-C2-dicas-pra-P1")

;; (c2m221p1a "title")
;; (c2m221p1a "title" "P1 (Primeira prova)")
(code-etex-tla "c2p1"     "2022-1-C2-P1")
(code-etex-tla "c2m221p1" "2022-1-C2-P1")

;; (c2m221dp2a "title")
;; (c2m221dp2a "title" "Aula 31.5: dicas pra P2")
(code-etex-tla "c2d2"      "2022-1-C2-dicas-pra-P2")
(code-etex-tla "c2m221dp2" "2022-1-C2-dicas-pra-P2")

;; (c2m221p2a "title")
;; (c2m221p2a "title" "P2 (Segunda prova)")
(code-etex-tla "c2p2"     "2022-1-C2-P2")
(code-etex-tla "c2m221p2" "2022-1-C2-P2")

;; (c2m221vra "title")
;; (c2m221vra "title" "Prova de reposição (VR)")
(code-etex-tla "c2vr"     "2022-1-C2-VR")
(code-etex-tla "c2m221vr" "2022-1-C2-VR")

;; (c2m221dvsa "title")
;; (c2m221dvsa "title" "Aula 35: dicas pra VS aberta")
(code-etex-tla "c2dv"      "2022-1-C2-dicas-pra-VSA")
(code-etex-tla "c2m221dvs" "2022-1-C2-dicas-pra-VSA")

;; (c2m221vsaa "title")
;; (c2m221vsaa "title" "VS aberta (VSA)")
(code-etex-tla "c2vs"      "2022-1-C2-VSA")
(code-etex-tla "c2m221vsa" "2022-1-C2-VSA")

;; (c2m221vsba "title")
;; (c2m221vsba "title" "VS extra - 31/ago/2022")
(code-etex-tla "c2vsb"     "2022-1-C2-VSB")
(code-etex-tla "c2m221vsb" "2022-1-C2-VSB")

;; Extras:
;;
;; (c2m221ac2a "title")
;; (c2m221ac2a "title" "Cálculo 2" "antes da pandemia," "durante, e agora")
(code-etex-tla "c2ap"      "2022-1-apresentacao-C2")
(code-etex-tla "c2m221ac2" "2022-1-apresentacao-C2")
;;
(defun c2ab () (interactive) (find-TH "2022-apresentacao-sobre-C2"))
;;
;; (c2m221finia "title")
;; (c2m221finia "title" "funções integráveis" "e funções não-integráveis")
(code-etex-tla "c2fi"       "2022-1-C2-fini")
(code-etex-tla "c2m221fini" "2022-1-C2-fini")
;;
;; (c2m221tudoa "title")
;; (c2m221tudoa "title" "Todos os PDFs do semestre")
(code-etex-tla "c2tuoo"     "2022-1-C2-tudo")
(code-etex-tla "c2m221tudo" "2022-1-C2-tudo")

;; «c2q221»  (to ".c2q221")
;; (find-angg "2022.1-C2/Makefile")
(defun c2q221 (&optional n &rest rest) (interactive)
  (find-pdf-page "~/2022.1-C2/C2-quadros.pdf" n))

;; «c2-2022-1-quadros»  (to ".c2-2022-1-quadros")
;; (find-pdf-page "~/2022.1-C2/C2-quadros-tarde.pdf" 24)
;; (find-pdf-page "~/2022.1-C2/C2-quadros-manha.pdf" 18)
;; (find-pdf-page "~/2022.1-C2/C2-quadros.pdf"  1)
;; (find-pdf-page "~/2022.1-C2/C2-quadros.pdf" 42)
;; (find-code-quadro "2022.1-C2" "c2q221")
;;
;; (c2q221  1 "mar30 E1" "Exercício 3 da página 13")
;; (c2q221  2 "mar31 C1" "Exercício 3 da página 13")
;; (c2q221  3 "mar31 E1" "EDOs por chutar e testar")
;; (c2q221  4 "abr06 E1" "EDOs por chutar e testar; [S1]")
;; (c2q221  5 "abr07 C1" "EDOs e antiderivadas por chutar e testar")
;; (c2q221  6 "abr07 E1" "Quais são as regras exatas do [:=]?")
;; (c2q221  7 "abr08 C1" "PDF novo: exercícios 4 e 5. Árvores")
;; (c2q221  8 "abr13 E1" "Exercícios 6 e 7. Árvores")
;; (c2q221  9 "abr14 C1" "Regras implícitas")
;; (c2q221 10 "abr20 E1" "Introdução ao TFC2. Exercício 8")
;; (c2q221 11 "abr27 E1" "[S99]")
;; (c2q221 12 "abr28 C1" "desenho animado")
;; (c2q221 13 "abr28 E1" "Exercício 9")
;; (c2q221 14 "abr29 C1" "Como visualizar somatórios")
;; (c2q221 15 "mai04 E1" "Como visualizar somatórios")
;; (c2q221 16 "mai05 C1" "Represente como retângulos")
;; (c2q221 17 "mai05 E1" "Represente como retângulos")
;; (c2q221 18 "mai06 C1" "Imagens de intervalos - sup informal")
;; (c2q221 19 "mai11 E1" "Imagens de intervalos - sup informal")
;; (c2q221 20 "mai12 C1" "Somas de Riemann")
;; (c2q221 21 "mai12 E1" "Definição de integral")
;; (c2q221 22 "mai18 E1" "Partições")
;; (c2q221 23 "mai19 C1" "O jogo de desenhar conjuntos de R^2")
;; (c2q221 24 "mai19 E1" "Como visualizar proposições")
;; (c2q221 25 "mai20 C1" "Como debugar representações gráficas")
;; (c2q221 26 "mai25 E1" "PDF sobre infs e sups: exercício 2")
;; (c2q221 27 "mai26 C1" "f([1,3]) por uma função descontínua")
;; (c2q221 28 "mai26 E1" "f([1,3]) por uma função descontínua")
;; (c2q221 29 "mai27 C1" "infs e sups")
;; (c2q221 30 "jun01 E1" "revisão depois do ENFEPRO")
;; (c2q221 31 "jun02 C1" "infs e sups")
;; (c2q221 32 "jun02 E1" "exercício 7")
;; (c2q221 33 "jun03 C1" "exercício 8")
;; (c2q221 34 "jun15 E1" "propriedades da integral")
;; (c2q221 35 "jun15 E1" "exercícios 3 e 4")
;; (c2q221 36 "jun22 E1" "preparação pro mini-teste")
;; (c2q221 37 "jun23 C1" "preparação pro mini-teste")
;; (c2q221 38 "jun23 E1" "preparação pro mini-teste")
;; (c2q221 39 "jun24 C1" "como escrever demonstrações passo a passo")
;; (c2q221 40 "jun29 E1" "como debugar demonstrações passo a passo")
;; (c2q221 41 "jun30 C1" "ln |x|")
;; (c2q221 42 "jun30 E1" "DFI")
;; (c2q221 43 "jul01 C1" "PDF sobre DFI")
;; (c2q221 44 "jul06 E1" "DFI por [:=]")
;; (c2q221 45 "jul07 C1" "algumas técnicas de integração: MV")
;; (c2q221 46 "jul07 E1" "preparação pro MT2")
;; (c2q221 47 "jul08 C1" "algumas técnicas de integração")
;; (c2q221 48 "jul13 E1")
;; (c2q221 49 "jul13 C1")
;; (c2q221 50 "jul14 C1")
;; (c2q221 51 "jul14 E1" "prova")

;; «c2-2022-1-telegram»  (to ".c2-2022-1-telegram")

;; (find-telegram-save-log-links "2022" "1" "C2" "C1")
;; (code-pdf-page "20221C2C1" "~/2022.1-C2/C2-C1-RCN-PURO-2022.1.pdf")
;; (code-pdf-text "20221C2C1" "~/2022.1-C2/C2-C1-RCN-PURO-2022.1.pdf")
;; (find-20221C2C1page)
;; (find-20221C2C1text)

;; (find-telegram-save-log-links "2022" "1" "C2" "E1")
;; (code-pdf-page "20221C2E1" "~/2022.1-C2/C2-E1-RCN-PURO-2022.1.pdf")
;; (code-pdf-text "20221C2E1" "~/2022.1-C2/C2-E1-RCN-PURO-2022.1.pdf")
;; (find-20221C2E1page)
;; (find-20221C2E1text)



;; «c3-2022-1»  (to ".c3-2022-1")
(defun c3eo () (interactive) (find-angg ".emacs" "c3-2022-1"))
;; (find-pdf-page "~/2022.1-C3/C3-quadros.pdf" 23)

;; (c3m221orbitaa "title")
;; (c3m221orbitaa "title" "Aulas 4 e 5: órbita")
(code-etex-tla "c3or"         "2022-1-C3-orbita")
(code-etex-tla "c3m221orbita" "2022-1-C3-orbita")

;; (c3m221nfa "title")
;; (c3m221nfa "title" "Aula 10: ``notação de físicos''")
(code-etex-tla "c3nf"     "2022-1-C3-notacao-de-fisicos")
(code-etex-tla "c3m221nf" "2022-1-C3-notacao-de-fisicos")

;; (c3m221mt1a "title")
;; (c3m221mt1a "title" "Mini-teste 1")
(code-etex-tla "c3mt1"     "2022-1-C3-MT1")
(code-etex-tla "c3m221mt1" "2022-1-C3-MT1")

;; (c3m221fha "title")
;; (c3m221fha "title" "Aula 29: funções homogêneas")
(code-etex-tla "c3fh"     "2022-1-C3-funcoes-homogeneas")
(code-etex-tla "c3m221fh" "2022-1-C3-funcoes-homogeneas")

;; (c3m221mt2a "title")
;; (c3m221mt2a "title" "Mini-teste 2")
(code-etex-tla "c3mt2"     "2022-1-C3-MT2")
(code-etex-tla "c3m221mt2" "2022-1-C3-MT2")

;; (c3m221p1a "title")
;; (c3m221p1a "title" "P1 (Primeira prova)")
(code-etex-tla "c3p1"     "2022-1-C3-P1")
(code-etex-tla "c3m221p1" "2022-1-C3-P1")

;; (c3m221p2a "title")
;; (c3m221p2a "title" "P2 (Segunda prova)")
(code-etex-tla "c3p2"     "2022-1-C3-P2")
(code-etex-tla "c3m221p2" "2022-1-C3-P2")

;; (c3m221vra "title")
;; (c3m221vra "title" "Prova de reposição (VR)")
(code-etex-tla "c3vr"     "2022-1-C3-VR")
(code-etex-tla "c3m221vr" "2022-1-C3-VR")

;; (c3m221vsa "title")
;; (c3m221vsa "title" "Prova suplementar (VS)")
(code-etex-tla "c3vs"     "2022-1-C3-VS")
(code-etex-tla "c3m221vs" "2022-1-C3-VS")

;; (c3m221vsba "title")
;; (c3m221vsba "title" "VS extra - 31/ago/2022")
(code-etex-tla "c3vsb"     "2022-1-C3-VSB")
(code-etex-tla "c3m221vsb" "2022-1-C3-VSB")

;; (c3m221tudoa "title")
;; (c3m221tudoa "title" "Todos os PDFs do semestre")
(code-etex-tla "c3tuoo"     "2022-1-C3-tudo")
(code-etex-tla "c3m221tudo" "2022-1-C3-tudo")

;; «c3q221»             (to ".c3q221")
;; «c3-2022-1-quadros»  (to ".c3-2022-1-quadros")
;; (find-pdf-page "~/2022.1-C3/C3-quadros.pdf" 23)
;; (find-code-quadro "2022.1-C2" "c2q221")
(defun c3q221 (&optional n &rest rest) (interactive)
  (find-pdf-page "~/2022.1-C3/C3-quadros.pdf" n))
;; (c3q221  1 "mar30: introdução, convenções sobre pontos e vetores")
;; (c3q221  2 "mar30: introdução, convenções sobre pontos e vetores 2")
;; (c3q221  3 "abr01: exercícios de parábolas parametrizadas")
;; (c3q221  4 "abr06: Freya Holmer e trajetórias")
;; (c3q221  5 "abr08: exercícios de trajetórias")
;; (c3q221  6 "abr13: mais órbita")
;; (c3q221  7 "abr20: séries de Taylor")
;; (c3q221  8 "abr27: mais séries de Taylor")
;; (c3q221  9 "abr29: introdução à notação de físicos")
;; (c3q221 10 "mai04: aproximações lineares no Thompson e no Miranda")
;; (c3q221 11 "mai06: técnicas de tradução")
;; (c3q221 12 "mai11: exercícios de traduzir exemplo do Miranda")
;; (c3q221 13 "mai13: diferenciais no Thomas e no Thompson")
;; (c3q221 14 "mai18: nomes pra funções; useful dodge")
;; (c3q221 15 "mai20: diagramas de numerozinhos")
;; (c3q221 16 "mai25: pirâmide")
;; (c3q221 17 "mai27: barranco")
;; (c3q221 18 "jun01: mais barranco")
;; (c3q221 19 "jun03: mais barranco; revisão de planos")
;; (c3q221 20 "jun15: aproximações linares no olhômetro, derivada direcional")
;; (c3q221 21 "jun22: preparação pro mini-teste")
;; (c3q221 22 "jun24: dúvidas e mini-teste")
;; (c3q221 23 "jun29: gradientes nas pirâmides")
;; (c3q221 24 "jul01: campo gradiente / como escrever demonstrações")
;; (c3q221 25 "jul06: funções homogêneas")
;; (c3q221 26 "jul08: funções homogêneas em (x0,y0); MT2")

;; «c3-2022-1-telegram»  (to ".c3-2022-1-telegram")
;; (find-telegram-save-log-links "2022" "1" "C3" "M1")
;; (code-pdf-page "20221C3M1" "~/2022.1-C3/C3-M1-RCN-PURO-2022.1.pdf")
;; (code-pdf-text "20221C3M1" "~/2022.1-C3/C3-M1-RCN-PURO-2022.1.pdf")
;; (find-20221C3M1page)
;; (find-20221C3M1text)



;; «c2-2022-2»  (to ".c2-2022-2")
(defun c2eo () (interactive) (find-angg ".emacs" "c2-2022-2"))

;; (c2m222buracoa "title")
;; (c2m222buracoa "title" "Aulas 1, 3 e 4: a operação `$[:=]$', ou:")
(code-etex-tla "c2bu"         "2022-2-C2-buraco")
(code-etex-tla "c2m222buraco" "2022-2-C2-buraco")

;; (c2m222mma "title")
;; (c2m222mma "title" "Aula 2: derivação e integração com o Mathologermóvel")
(code-etex-tla "c2mm"     "2022-2-C2-mathologermovel")
(code-etex-tla "c2m222mm" "2022-2-C2-mathologermovel")

;; (c2m222introa "title")
;; (c2m222introa "title" "(Não usei)")
(code-etex-tla "c2i"         "2022-2-C2-intro")
(code-etex-tla "c2m222intro" "2022-2-C2-intro")

;; (c2m222ippa "title")
;; (c2m222ippa "title" "Aula 6: Integração por partes")
(code-etex-tla "c2ip"      "2022-2-C2-int-por-partes")
(code-etex-tla "c2m222ipp" "2022-2-C2-int-por-partes")

;; (c2m222fpa "title")
;; (c2m222fpa "title" "Aula 9: Frações Parciais")
(code-etex-tla "c2fp"     "2022-2-C2-fracoes-parciais")
(code-etex-tla "c2m222fp" "2022-2-C2-fracoes-parciais")

;; (c2m222mva "title")
;; (c2m222mva "title" "Aula 10: Mudança de variáveis")
(code-etex-tla "c2mv"     "2022-2-C2-mudanca-de-variaveis")
(code-etex-tla "c2m222mv" "2022-2-C2-mudanca-de-variaveis")

;; (c2m222striga "title")
;; (c2m222striga "title" "Aulas 11 e 12: substituição trigonométrica")
(code-etex-tla "c2st"        "2022-2-C2-subst-trig")
(code-etex-tla "c2m222strig" "2022-2-C2-subst-trig")

;; (c2m222sra "title")
;; (c2m222sra "title" "Aula 13, 14 e 16: Somas de Riemann")
(code-etex-tla "c2sr"     "2022-2-C2-somas-de-riemann")
(code-etex-tla "c2m222sr" "2022-2-C2-somas-de-riemann")

;; (c2m222tfcsa "title")
;; (c2m222tfcsa "title" "Aula 19: o TFC1 e o TFC2.")
(code-etex-tla "c2tf"       "2022-2-C2-TFC1-e-TFC2")
(code-etex-tla "c2m222tfcs" "2022-2-C2-TFC1-e-TFC2")

;; (c2m222areasevolumesa "title")
;; (c2m222areasevolumesa "title" "Aula 22: áreas, volumes")
(code-etex-tla "c2av"                "2022-2-C2-areas-e-volumes")
(code-etex-tla "c2m222areasevolumes" "2022-2-C2-areas-e-volumes")

;; (c2m222edovsa "title")
;; (c2m222edovsa "title" "Aulas 23 e 24: EDOs com variáveis separáveis")
(code-etex-tla "c2ev"        "2022-2-C2-edovs")
(code-etex-tla "c2m222edovs" "2022-2-C2-edovs")

;; (c2m222edolsa "title")
;; (c2m222edolsa "title" "Aula 25: EDOs lineares")
(code-etex-tla "c2el"        "2022-2-C2-edos-lineares")
(code-etex-tla "c2m222edols" "2022-2-C2-edos-lineares")

;; (c2m222dicasp1a "title")
;; (c2m222dicasp1a "title" "Dicas pra P1")
(code-etex-tla "c2d1"          "2022-2-C2-dicas-pra-P1")
(code-etex-tla "c2m222dicasp1" "2022-2-C2-dicas-pra-P1")

;; (c2m222p1a "title")
;; (c2m222p1a "title" "P1 (Primeira prova)")
(code-etex-tla "c2p1"     "2022-2-C2-P1")
(code-etex-tla "c2m222p1" "2022-2-C2-P1")

;; (c2m222edoexsa "title")
;; (c2m222edoexsa "title" "Aula 30: EDOs exatas")
(code-etex-tla "c2ee"         "2022-2-C2-edos-exatas")
(code-etex-tla "c2m222edoexs" "2022-2-C2-edos-exatas")

;; (c2m222dp2a "title")
;; (c2m222dp2a "title" "Dicas pra P2")
(code-etex-tla "c2d2"      "2022-2-C2-dicas-pra-P2")
(code-etex-tla "c2m222dp2" "2022-2-C2-dicas-pra-P2")

;; (c2m222p2a "title")
;; (c2m222p2a "title" "P2 (Segunda prova)")
(code-etex-tla "c2p2"     "2022-2-C2-P2")
(code-etex-tla "c2m222p2" "2022-2-C2-P2")

;; (c2m222vra "title")
;; (c2m222vra "title" "Prova de reposição (VR)")
(code-etex-tla "c2vr"     "2022-2-C2-VR")
(code-etex-tla "c2m222vr" "2022-2-C2-VR")

;; (c2m222dvsa "title")
(code-etex-tla "c2dv"      "2022-2-C2-dicas-pra-VS")
(code-etex-tla "c2m222dvs" "2022-2-C2-dicas-pra-VS")

;; (c2m222vsa "title")
;; (c2m222vsa "title" "Prova suplementar (VS)")
(code-etex-tla "c2vs"     "2022-2-C2-VS")
(code-etex-tla "c2m222vs" "2022-2-C2-VS")

;; (c2m222plca "title")
;; (c2m222plca "title" "Plano de curso")
(code-etex-tla "c2plc"     "2022-2-C2-plano-de-curso")
(code-etex-tla "c2m222plc" "2022-2-C2-plano-de-curso")

;; (c2m222tudoa "title")
;; (c2m222tudoa "title" "Todos os PDFs do semestre")
(code-etex-tla "c2tuo"      "2022-2-C2-tudo")
(code-etex-tla "c2m222tudo" "2022-2-C2-tudo")

;; «c2-2022-2-quadros»  (to ".c2-2022-2-quadros")
;; «c2q222»  (to ".c2q222")
(defun c2qo () (interactive) (find-angg ".emacs" "c2-2022-2-quadros"))
(code-pdf-page "c2q222" "~/2022.2-C2/C2-quadros.pdf")
(code-pdf-text "c2q222" "~/2022.2-C2/C2-quadros.pdf")
;; http://anggtwu.net/2022.2-C2/C2-quadros.pdf
;; (find-angg "2022.2-C2/Makefile")
;; (find-c2q222page  1 "ago24: vídeo do Mathologer; derivação formal")
;; (find-c2q222page  2 "ago25: diferenciação e integração com o Mathologermóvel")
;; (find-c2q222page  3 "ago31: árvores, justificativas, [:=]")
;; (find-c2q222page  6 "set01: EDOs por chutar e testar")
;; (find-c2q222page  8 "set08: integração por partes")
;; (find-c2q222page 17 "set21: frações parciais")
;; (find-c2q222page 19 "set22: mudança de variáveis, ints pots sens e coss")
;; (find-c2q222page 21 "set26: aula de reposição")
;; (find-c2q222page 22 "set28: substituição trigonométrica (1)")
;; (find-c2q222page 24 "set29: substituição trigonométrica (2)")
;; (find-c2q222page 26 "out04: aula de reposição")
;; (find-c2q222page 27 "out05: somas de Riemann (1)")
;; (find-c2q222page 28 "out06: somas de Riemann (2), o que vamos ver hoje")
;; (find-c2q222page 29 "out06: somas de Riemann (2), (f(x1)+f(x2))/2")
;; (find-c2q222page 30 "out06: somas de Riemann (2), imagens de conjuntos finitos")
;; (find-c2q222page 31 "out13: somas de Riemann (3)")
;; (find-c2q222page 33 "out26: TFC1 e TFC2")
;; (find-c2q222page 35 "out27: TFC1 e TFC2 (2)")
;; (find-c2q222page 36 "nov03: áreas, volumes, e comprimento de arco")
;; (find-c2q222page 39 "nov09: EDOs com variáveis separáveis")
;; (find-c2q222page 40 "nov10: condições iniciais")
;; (find-c2q222page 41 "nov16: EDOLCCs")
;; (find-c2q222page 43 "nov17: EDOLCCs (2)")
;; (find-c2q222page 45 "nov23: Números complexos")
;; (find-c2q222page 47 "nov29: Aula de reforço")
;; (find-c2q222page 48 "dez01: EDOs exatas por chutar e testar")
;; (find-c2q222page 52 "dez06: aula de reforço")

;; «c3-2022-2»  (to ".c3-2022-2")
(defun c3eo () (interactive) (find-angg ".emacs" "c3-2022-2"))

;; «c3-2022-2-quadros»  (to ".c3-2022-2-quadros")
;; «c3q222»  (to ".c3q222")
;; (find-angg ".emacs" "c3-2022-1-quadros")
(defun c3qo () (interactive) (find-angg ".emacs" "c3-2022-2-quadros"))
(code-pdf-page "c3q222" "~/2022.2-C3/C3-quadros.pdf")
(code-pdf-text "c3q222" "~/2022.2-C3/C3-quadros.pdf")
;; http://anggtwu.net/2022.2-C3/C3-quadros.pdf
;; (find-angg "2022.2-C3/Makefile")
;; (find-c3q222page  1 "ago24: Revisão de pontos e vetores.")
;; (find-c3q222page  2 "ago26: Exercício da órbita.")
;; (find-c3q222page  3 "ago31: Exercício da órbita (sem letras e números).")
;; (find-c3q222page  4 "set02: Tipos; definição do vetor velocidade.")
;; (find-c3q222page  5 "set21: Séries de Taylor (1).")
;; (find-c3q222page  6 "set23: Séries de Taylor (2).")
;; (find-c3q222page  7 "set27: Aula de reposição.")
;; (find-c3q222page  8 "set28: Diagramas de numerozinhos 1.")
;; (find-c3q222page  9 "set30: Diagramas de numerozinhos 2.")
;; (find-c3q222page 10 "out04: Aula de reposição")
;; (find-c3q222page 11 "out05: Planos tangentes e retas normais.")
;; (find-c3q222page 13 "out07: Derivada direcional, mas antes outras coisas.")
;; (find-c3q222page 14 "out14: Derivadas parciais")
;; (find-c3q222page 15 "out25: Aula de reposição")
;; (find-c3q222page 16 "out26: Derivadas parciais, vetor normal, vetor gradiente")
;; (find-c3q222page 17 "nov04: Funções homogêneas e derivadas de ordem superior")
;; (find-c3q222page 19 "nov09: Regra da cadeia / matriz jacobiana")
;; (find-c3q222page 20 "nov16: Abertos e fechados")
;; (find-c3q222page 22 "nov18: Abertos e fechados (2)")
;; (find-c3q222page 23 "nov21: Aula de reforço")
;; (find-c3q222page 24 "nov23: Abertos, fechados e imagens inversas")
;; (find-c3q222page 26 "nov25: Máximos e mínimos locais por diagramas de sinais")
;; (find-c3q222page 28 "nov30: idem, mas fora do ponto (0,0)")
;; (find-c3q222page 29 "dez06: Aula de reforço")
;; (find-c3q222page 31 "dez07: P2")

;; (c3m222introa "title")
;; (c3m222introa "title" "Aulas 1 e 2: introdução ao curso" "(e a trajetórias)")
(code-etex-tla "c3i"         "2022-2-C3-intro")
(code-etex-tla "c3m222intro" "2022-2-C3-intro")

;; (c3m222typesa "title")
;; (c3m222typesa "title" "Aula 4: tipos")
(code-etex-tla "c3ty"        "2022-2-C3-tipos")
(code-etex-tla "c3m222types" "2022-2-C3-tipos")

;; (c3m222taylora "title")
;; (c3m222taylora "title" "Aulas 9 e 10: Séries de Taylor")
(code-etex-tla "c3ta"         "2022-2-C3-taylor")
(code-etex-tla "c3m222taylor" "2022-2-C3-taylor")

;; (c3m222superficiesa "title")
;; (c3m222superficiesa "title" "Aulas 11 e 12: introdução a superfícies")
(code-etex-tla "c3su"              "2022-2-C3-superficies")
(code-etex-tla "c3m222superficies" "2022-2-C3-superficies")

;; (c3m222pta "title")
;; (c3m222pta "title" "Aulas 13 e 14: Plano tangente,")
(code-etex-tla "c3pt"     "2022-2-C3-plano-tangente")
(code-etex-tla "c3m222pt" "2022-2-C3-plano-tangente")

;; (c3m222dpa "title")
;; (c3m222dpa "title" "Aula 16: Derivadas Parciais")
(code-etex-tla "c3dp"     "2022-2-C3-derivadas-parciais")
(code-etex-tla "c3m222dp" "2022-2-C3-derivadas-parciais")

;; (c3m222fha "title")
;; (c3m222fha "title" "Aula 22: Funções homogêneas e")
(code-etex-tla "c3fh"     "2022-2-C3-funcoes-homogeneas")
(code-etex-tla "c3m222fh" "2022-2-C3-funcoes-homogeneas")

;; (c3m222rca "title")
;; (c3m222rca "title" "Aula 23: Regra da cadeia")
(code-etex-tla "c3rc"     "2022-2-C3-regra-da-cadeia")
(code-etex-tla "c3m222rc" "2022-2-C3-regra-da-cadeia")

;; (c3m222dicasp1a "title")
;; (c3m222dicasp1a "title" "Dicas pra P1")
(code-etex-tla "c3d1"          "2022-2-C3-dicas-pra-P1")
(code-etex-tla "c3m222dicasp1" "2022-2-C3-dicas-pra-P1")

;; (c3m222p1a "title")
;; (c3m222p1a "title" "P1 (Primeira prova)")
(code-etex-tla "c3p1"     "2022-2-C3-P1")
(code-etex-tla "c3m222p1" "2022-2-C3-P1")

;; (c3m222fdifsa "title")
;; (c3m222fdifsa "title" "Aula 25: Funções diferenciáveis")
' (code-etex-tla "c3fd"        "2022-2-C3-funcoes-difs")
' (code-etex-tla "c3m222fdifs" "2022-2-C3-funcoes-difs")

;; (c3m222topa "title")
;; (c3m222topa "title" "Aulas 25 e 26: conjuntos abertos,")
(code-etex-tla "c3to"      "2022-2-C3-topologia")
(code-etex-tla "c3m222top" "2022-2-C3-topologia")

;; (c3m222mmsa "title")
;; (c3m222mmsa "title" "Aula 27: Máximos e mínimos")
(code-etex-tla "c3mm"      "2022-2-C3-maximos-e-minimos")
(code-etex-tla "c3m222mms" "2022-2-C3-maximos-e-minimos")

;; (c3m222dicasp2a "title")
;; (c3m222dicasp2a "title" "Dicas pra P2")
(code-etex-tla "c3d2"          "2022-2-C3-dicas-pra-P2")
(code-etex-tla "c3m222dicasp2" "2022-2-C3-dicas-pra-P2")

;; (c3m222p2a "title")
;; (c3m222p2a "title" "P2 (Segunda prova)")
(code-etex-tla "c3p2"     "2022-2-C3-P2")
(code-etex-tla "c3m222p2" "2022-2-C3-P2")

;; (c3m222vra "title")
;; (c3m222vra "title" "Prova de reposição (VR)")
(code-etex-tla "c3vr"     "2022-2-C3-VR")
(code-etex-tla "c3m222vr" "2022-2-C3-VR")

;; (c3m222vsa "title")
;; (c3m222vsa "title" "Prova suplementar (VS)")
(code-etex-tla "c3vs"     "2022-2-C3-VS")
(code-etex-tla "c3m222vs" "2022-2-C3-VS")

;; (c3m222plca "title")
;; (c3m222plca "title" "Plano de curso")
(code-etex-tla "c3plc"     "2022-2-C3-plano-de-curso")
(code-etex-tla "c3m222plc" "2022-2-C3-plano-de-curso")

;; (c3m222tudoa "title")
;; (c3m222tudoa "title" "Todos os PDFs do semestre")
(code-etex-tla "c3tu"       "2022-2-C3-tudo")
(code-etex-tla "c3m222tudo" "2022-2-C3-tudo")



;; «c2-2023-1»          (to ".c2-2023-1")
;; «c2-2023-1-quadros»  (to ".c2-2023-1-quadros")
;; Skel: (find-semestre-links "23" "1" "2")
(defun c2eo () (interactive) (find-angg ".emacs" "c2-2023-1"))

;; «c2q231» (to ".c2q231")
;; (find-angg ".emacs" "c2-2022-1-quadros")
(defun c2qo () (interactive) (find-angg ".emacs" "c2-2023-1-quadros"))
(code-pdf-page "c2q231" "~/2023.1-C2/C2-quadros.pdf")
(code-pdf-text "c2q231" "~/2023.1-C2/C2-quadros.pdf")
;; http://anggtwu.net/2023.1-C2/C2-quadros.pdf
;; (find-angg "2023.1-C2/Makefile")
;; (find-c2q231page  1 "apr04: O carro")
;; (find-c2q231page  3 "apr11: O carro")
;; (find-c2q231page  5 "apr14: Árvores")
;; (find-c2q231page  7 "apr18: Contas com justificativas")
;; (find-c2q231page 13 "apr25: Substituição")
;; (find-c2q231page 16 "apr28: Integral indefinida")
;; (find-c2q231page 18 "may02: Revisão")
;; (find-c2q231page 22 "may05: Mudança de variáveis")
;; (find-c2q231page 24 "may09: Mudança de variáveis")
;; (find-c2q231page 26 "may12: Substituição trigonométrica e DFI")
;; (find-c2q231page 28 "may16: Substituição trigonométrica")
;; (find-c2q231page 30 "may19: Frações parciais")
;; (find-c2q231page 32 "may23: A definição da integral")
;; (find-c2q231page 34 "may26: A definição da integral")
;; (find-c2q231page 36 "may30: P1")
;; (find-c2q231page 37 "jun02: Integral como limite")
;; (find-c2q231page 39 "jun06: Funções não integráveis, TFC1")
;; (find-c2q231page 41 "jun13: EDOVSs")
;; (find-c2q231page 43 "jun16: EDOVSs")
;; (find-c2q231page 46 "jun20: EDOs lineares")
;; (find-c2q231page 50 "jun23: Oscilações")
;; (find-c2q231page 53 "jun27: Preparação pra P2")
;; (find-c2q231page 55 "jun30: Revisão pra P2")
;; (find-c2q231page 59 "jul04: Volumes e comprimento de arco")

;; (c2m231introa "title")
;; (c2m231introa "title" "Aula 0: Introdução ao curso")
(code-etex-tla "c2in"        "2023-1-C2-intro")
(code-etex-tla "c2m231intro" "2023-1-C2-intro")

;; (c2m231carroa "title")
;; (c2m231carroa "title" "Aulas 1 e 3: integração e derivação" "com o mathologermóvel")
(code-etex-tla "c2ca"        "2023-1-C2-carro")
(code-etex-tla "c2m231carro" "2023-1-C2-carro")

;; (c2m231macacoa "title")
;; (c2m231macacoa "title" "Aulas 4 até 9: o macaco integrador")
(code-etex-tla "c2ma"         "2023-1-C2-macaco")
(code-etex-tla "c2m231macaco" "2023-1-C2-macaco")

;; (c2m231mva "title")
;; (c2m231mva "title" "Aulas 10 até 14: mudança de variáveis")
(code-etex-tla "c2mv"     "2023-1-C2-mudanca-de-variaveis")
(code-etex-tla "c2m231mv" "2023-1-C2-mudanca-de-variaveis")

;; (c2m231fpa "title")
;; (c2m231fpa "title" "Aula 14: Frações Parciais")
(code-etex-tla "c2fp"     "2023-1-C2-fracoes-parciais")
(code-etex-tla "c2m231fp" "2023-1-C2-fracoes-parciais")

;; (c2m231sra "title")
;; (c2m231sra "title" "Aulas 15 até 19: Somas de Riemann")
(code-etex-tla "c2sr"     "2023-1-C2-somas-de-riemann")
(code-etex-tla "c2m231sr" "2023-1-C2-somas-de-riemann")

;; (c2m231dicasp1a "title")
;; (c2m231dicasp1a "title" "Dicas pra P1")
(code-etex-tla "c2d1"          "2023-1-C2-dicas-pra-P1")
(code-etex-tla "c2m231dicasp1" "2023-1-C2-dicas-pra-P1")

;; (c2m231p1a "title")
;; (c2m231p1a "title" "P1 (Primeira prova)")
(code-etex-tla "c2p1"     "2023-1-C2-P1")
(code-etex-tla "c2m231p1" "2023-1-C2-P1")

;; (c2m231edovsa "title")
;; (c2m231edovsa "title" "Aulas 21 e 22: EDOs com variáveis separáveis.")
(code-etex-tla "c2ev"        "2023-1-C2-edovs")
(code-etex-tla "c2m231edovs" "2023-1-C2-edovs")

;; (c2m231edolsa "title")
;; (c2m231edolsa "title" "Aula 23: EDOs lineares")
(code-etex-tla "c2el"        "2023-1-C2-edos-lineares")
(code-etex-tla "c2m231edols" "2023-1-C2-edos-lineares")

;; (c2m231dicasp2a "title")
;; (c2m231dicasp2a "title" "Dicas pra P2")
(code-etex-tla "c2d2"          "2023-1-C2-dicas-pra-P2")
(code-etex-tla "c2m231dicasp2" "2023-1-C2-dicas-pra-P2")

;; (c2m231volumesa "title")
;; (c2m231volumesa "title" "Aula 27: volumes e comprimento de arco")
(code-etex-tla "c2vo"          "2023-1-C2-volumes")
(code-etex-tla "c2m231volumes" "2023-1-C2-volumes")

;; (c2m231p2a "title")
;; (c2m231p2a "title" "P2 (Segunda prova)")
(code-etex-tla "c2p2"     "2023-1-C2-P2")
(code-etex-tla "c2m231p2" "2023-1-C2-P2")

;; (c2m231vra "title")
;; (c2m231vra "title" "Prova de reposição (VR)")
(code-etex-tla "c2vr"     "2023-1-C2-VR")
(code-etex-tla "c2m231vr" "2023-1-C2-VR")

;; (c2m231tudoa "title")
(code-etex-tla "c2tu"       "2023-1-C2-tudo")
(code-etex-tla "c2m231tudo" "2023-1-C2-tudo")

;; (c2m231plca "cronograma")
(code-etex-tla "c2plc"     "2023-1-C2-plano-de-curso")
(code-etex-tla "c2m231plc" "2023-1-C2-plano-de-curso")
;;  (find-pdf-page "~/LATEX/2023-C2-monitoria-edital.pdf")
;;             (find-LATEX "2023-C2-monitoria-edital.tex")
'     (code-etex-tla "mc2" "2023-C2-monitoria-edital")
;; (c2m231pma "title")
(code-etex-tla "c2pm"      "2023-1-C2-prova-monitor")
(code-etex-tla "c2m231pm"  "2023-1-C2-prova-monitor")
;; (c2m231abaixoassinadoa "title")
(code-etex-tla "c2ab"                 "2023-1-C2-abaixo-assinado")
(code-etex-tla "c2m231abaixoassinado" "2023-1-C2-abaixo-assinado")





;; «c3-2023-1»          (to ".c3-2023-1")
;; «c3-2023-1-quadros»  (to ".c3-2023-1-quadros")
;; Skel: (find-semestre-links "23" "1" "3")
(defun c3e () (interactive) (find-angg ".emacs" "c3-2023-1"))

;; «c3q231»  (to ".c3q231")
;; (find-angg ".emacs" "c2-2022-1-quadros")
(defun c3q () (interactive) (find-angg ".emacs" "c3-2023-1-quadros"))
(code-pdf-page "c3q231" "~/2023.1-C3/C3-quadros.pdf")
(code-pdf-text "c3q231" "~/2023.1-C3/C3-quadros.pdf")
;; http://anggtwu.net/2023.1-C3/C3-quadros.pdf
;; (find-angg "2023.1-C3/Makefile")
;; (find-c3q231page  1 "fev36: pagina fake")

;; (c3m231introa "title")
(code-etex-tla "c3in"        "2023-1-C3-intro")
(code-etex-tla "c3m231intro" "2023-1-C3-intro")

;; (c3m231plca "title")
(code-etex-tla "c3plc"     "2023-1-C3-plano-de-curso")
(code-etex-tla "c3m231plc" "2023-1-C3-plano-de-curso")

;; (c3m231tudoa "title")
;;(code-etex-tla "c3tu"       "2023-1-C3-tudo")
;;(code-etex-tla "c3m231tudo" "2023-1-C3-tudo")



;; «c4-2023-1»  (to ".c4-2023-1")
;; «c4-2023-1-quadros»  (to ".c4-2023-1-quadros")
;; Skel: (find-semestre-emacs-links "23" "1" "C4")
(defun c4e () (interactive) (find-angg ".emacs" "c4-2023-1"))

;; «c4q231»  (to ".c4q231")
;; (find-angg ".emacs" "c4-2022-1-quadros")
(defun c4q () (interactive) (find-angg ".emacs" "c4-2023-1-quadros"))
(code-pdf-page "c4q231" "~/2023.1-C4/C4-quadros.pdf")
(code-pdf-text "c4q231" "~/2023.1-C4/C4-quadros.pdf")
;; http://anggtwu.net/2023.1-C4/C4-quadros.pdf
;; (find-angg "2023.1-C4/Makefile")
;; (find-c4q231page  1 "03/abr Revisão de parametrizações.")
;; (find-c4q231page  3 "14/abr Revisão de parametrizações (cont).")
;; (find-c4q231page  5 "17/abr Como entender cada componente de uma fórmula.")
;; (find-c4q231page  7 "24/abr A passagem de somatório para integral.")
;; (find-c4q231page  9 "28/abr Entendendo o ds e alguns vetores.")
;; (find-c4q231page 12 "05/mai Um pouco de Física.")
;; (find-c4q231page 13 "08/mai 'Trabalho' (entre aspas!) por integrais.")
;; (find-c4q231page 14 "12/mai O 'trabalho' não depende da parametrização.")
;; (find-c4q231page 17 "15/mai Mais sobre reparametrização; dicas pra P1.")
;; (find-c4q231page 18 "19/mai Primeiros exemplos do Teorema de Green.")
;; (find-c4q231page 19 "22/mai Operadores diferenciais.")
;; (find-c4q231page 21 "23/mai Um pouco de coordenadas polares.")
;; (find-c4q231page 22 "29/mai Mudança de variável na integral dupla.")
;; (find-c4q231page 24 "30/mai Dicas pra P1 e revisão.")
;; (find-c4q231page 26 "01/jun Aula de reforço.")
;; (find-c4q231page 27 "05/jun Exercícios de Teorema de Green.")
;; (find-c4q231page 30 "06/jun Aula de dúvidas.")
;; (find-c4q231page 32 "07/jun Aula de reforço.")
;; (find-c4q231page 37 "12/jun P1.")
;; (find-c4q231page 38 "13/jun Operadores diferenciais de novo.")
;; (find-c4q231page 39 "19/jun Determinantes.")
;; (find-c4q231page 40 "20/jun Determinantes.")
;; (find-c4q231page 41 "26/jun Coordenadas esféricas.")
;; (find-c4q231page 42 "27/jun Integrais em coordenadas esféricas.")
;; (find-c4q231page 43 "03/jul Preparação pra P2.")

;; (c4m231introa "title")
(code-etex-tla "c4in"        "2023-1-C4-intro")
(code-etex-tla "c4m231intro" "2023-1-C4-intro")

;; (c4m231dicasp1a "title")
;; (c4m231dicasp1a "title" "Dicas pra P1")
(code-etex-tla "c4d1"          "2023-1-C4-dicas-pra-P1")
(code-etex-tla "c4m231dicasp1" "2023-1-C4-dicas-pra-P1")

;; (c4m231p1a "title")
(code-etex-tla "c4p1"     "2023-1-C4-P1")
(code-etex-tla "c4m231p1" "2023-1-C4-P1")

;; (c4m231dicasp2a "title")
(code-etex-tla "c4d2"          "2023-1-C4-dicas-pra-P2")
(code-etex-tla "c4m231dicasp2" "2023-1-C4-dicas-pra-P2")

;; (c4m231p2a "title")
(code-etex-tla "c4p2"     "2023-1-C4-P2")
(code-etex-tla "c4m231p2" "2023-1-C4-P2")

;; (c4m231plca "title")
(code-etex-tla "c4plc"     "2023-1-C4-plano-de-curso")
(code-etex-tla "c4m231plc" "2023-1-C4-plano-de-curso")

;; (c4m231tudoa "title")
(code-etex-tla "c4tu"       "2023-1-C4-tudo")
(code-etex-tla "c4m231tudo" "2023-1-C4-tudo")


;; «es-2023-1»  (to ".es-2023-1")
;; «es-2023-1-quadros»  (to ".es-2023-1-quadros")
;; Skel: (find-semestre-emacs-links "23" "1" "ES"  "22" "2")
(defun ese () (interactive) (find-angg ".emacs" "es-2023-1"))

;; «esq231»  (to ".esq231")
;; (find-angg ".emacs" "es-2022-1-quadros")
(defun esq () (interactive) (find-angg ".emacs" "es-2023-1-quadros"))
(code-pdf-page "esq231" "~/2023.1-ES/ES-quadros.pdf")
(code-pdf-text "esq231" "~/2023.1-ES/ES-quadros.pdf")
;; http://anggtwu.net/2023.1-ES/ES-quadros.pdf
;; (find-angg "2023.1-ES/Makefile")
;; (find-esq231page  1 "abr19: histogramas identificados e não identificados")
;; (find-esq231page  5 "abr26: média")
;; (find-esq231page 10 "mai03: probabilidade")
;; (find-esq231page 14 "mai10: probabilidade, intervalos, nomes longos")
;; (find-esq231page 18 "mai17: probabilidade, set comprehensions")
;; (find-esq231page 22 "mai31: probabilidades e conjuntos visualmente")
;; (find-esq231page 32 "jun07: sensibilidade, especificidade, covariância")
;; (find-esq231page 36 "jun14: P1")
;; (find-esq231page 37 "jun21: distribuições contínuas, uniformes, quantis")
;; (find-esq231page 41 "jun28: revisão de FDPs, FDAs e covariância")

;; (esm231introa "title")
(code-etex-tla "esin"        "2023-1-ES-intro")
(code-etex-tla "esm231intro" "2023-1-ES-intro")

;; (esm231p1a "title")
(code-etex-tla "esp1"     "2023-1-ES-P1")
(code-etex-tla "esm231p1" "2023-1-ES-P1")

;; (esm231p2a "title")
(code-etex-tla "esp2"     "2023-1-ES-P2")
(code-etex-tla "esm231p2" "2023-1-ES-P2")

;; (esm231vra "title")
(code-etex-tla "esvr"     "2023-1-ES-VR")
(code-etex-tla "esm231vr" "2023-1-ES-VR")

;; (esm231plca "title")
(code-etex-tla "esplc"     "2023-1-ES-plano-de-curso")
(code-etex-tla "esm231plc" "2023-1-ES-plano-de-curso")

;; (esm231tudoa "title")
(code-etex-tla "estu"       "2023-1-ES-tudo")
(code-etex-tla "esm231tudo" "2023-1-ES-tudo")



;; «la-2023-1»  (to ".la-2023-1")
;; «la-2023-1-quadros»  (to ".la-2023-1-quadros")
;; Skel: (find-semestre-emacs-links "23" "1" "LA"  "22" "2")
(defun lae () (interactive) (find-angg ".emacs" "la-2023-1"))

;; «laq231»  (to ".laq231")
;; (find-angg ".emacs" "la-2022-1-quadros")
(defun laq () (interactive) (find-angg ".emacs" "la-2023-1-quadros"))
(code-pdf-page "laq231" "~/2023.1-LA/LA-quadros.pdf")
(code-pdf-text "laq231" "~/2023.1-LA/LA-quadros.pdf")
;; http://anggtwu.net/2023.1-LA/LA-quadros.pdf
;; (find-angg "2023.1-LA/Makefile")
;; (find-laq231page  1 "apr03: Set comprehensions e notação λ.")
;; (find-laq231page  3 "apr17: Notação λ e redução")
;; (find-laq231page  6 "apr24: Exercícios de tipos.")
;; (find-laq231page  8 "may08: Árvores; apagar e reconstruir informação.")
;; (find-laq231page  9 "may15: Curry-Howard e descarga de hipóteses.")
;; (find-laq231page 11 "may22: Exercícios de Planar Heyting Algebras.")
;; (find-laq231page 12 "may29: Dupla negação e De Morgan em ZHAs.")
;; (find-laq231page 13 "jun05: Introdução à Logica Modal.")
;; (find-laq231page 16 "jun12: Um pouco de categorias.")
;; (find-laq231page 21 "jun19: Mais categorias.")
;; (find-laq231page 24 "jun26: Algumas traduções.")
;; (find-laq231page 27 "jul03: Um pouco de Lean (até o rw).")

;; (lam231introa "title")
;; (lam231introa "title" "Aula 1: introdução")
(code-etex-tla "lain"        "2023-1-LA-intro")
(code-etex-tla "lam231intro" "2023-1-LA-intro")

;; (lam231plca "plano-de-curso")
(code-etex-tla "laplc"     "2023-1-LA-plano-de-curso")
(code-etex-tla "lam231plc" "2023-1-LA-plano-de-curso")

;; (lam231tudoa "title")
(code-etex-tla "latu"       "2023-1-LA-tudo")
(code-etex-tla "lam231tudo" "2023-1-LA-tudo")




;; «c2-2023-2»          (to ".c2-2023-2")
;; Skel: (find-semestre-emacs-links "23" "2" "C2"  "23" "1")
(defun c2e () (interactive) (find-angg ".emacs" "c2-2023-2"))

;; «c2-2023-2-quadros»  (to ".c2-2023-2-quadros")
;; «c2q232»             (to ".c2q232")
;; (find-angg ".emacs" "c2-2022-1-quadros")
(defun c2q () (interactive) (find-angg ".emacs" "c2-2023-2-quadros"))
(code-pdf-page "c2q232" "~/2023.2-C2/C2-quadros.pdf")
(code-pdf-text "c2q232" "~/2023.2-C2/C2-quadros.pdf")
;; http://anggtwu.net/2023.2-C2/C2-quadros.pdf
;; (find-angg "2023.2-C2/Makefile")
;; (find-c2q232page  1 " 1,ago28: Introdução, mathologermóvel")
;; (find-c2q232page  3 " 2,ago29: Introdução, mathologermóvel")
;; (find-c2q232page  5 " 3,ago30: Maxima, [:=], chutar e testar, TFC2")
;; (find-c2q232page  7 " 4,sep04: Contas com justificativas")
;; (find-c2q232page 10 " 5,sep05: Contas com justificativas")
;; (find-c2q232page 12 " 6,sep06: Integração por partes")
;; (find-c2q232page 18 " 7,sep11: Exercícios de como organizar demonstrações")
;; (find-c2q232page 21 " 8,sep12: Mudança de variável")
;; (find-c2q232page 23 " 9,sep13: Caixinhas maiores, teste de nivelamento")
;; (find-c2q232page 29 "10,sep18: Derivada da função inversa")
;; (find-c2q232page 31 "11,sep19: Frações parciais")
;; (find-c2q232page 37 "12,sep20: Frações parciais")
;; (find-c2q232page 39 "13,sep25: Somas de Riemann, somatórios")
;; (find-c2q232page 39 "14,sep26: Somas de Riemann, somatórios")
;; (find-c2q232page 39 "15,sep27: Somas de Riemann, somatórios")
;; (find-c2q232page 44 "16,oct02: Somas de Riemann, TFC1, funções não integráveis")
;; (find-c2q232page 47 "19,oct09: Volumes")
;; (find-c2q232page 49 "21,oct11: Volumes")
;; (find-c2q232page 51 "25,oct23: Comprimento de arco")
;; (find-c2q232page 53 "26,oct24: Campos de direções e EDOs com variáveis separáveis")
;; (find-c2q232page 56 "27,oct25: EDOs com variáveis separáveis")
;; (find-c2q232page 59 "29,oct31: EDOs com variáveis separáveis: funções inversas")
;; (find-c2q232page 61 "30,nov01: EDOLCCs")
;; (find-c2q232page 66 "31,nov06: Revisão de variáveis complexas")
;; (find-c2q232page 71 "32,nov07: Variáveis complexas e EDOLCCs")
;; (find-c2q232page 73 "34,nov13: EDOs exatas")
;; (find-c2q232page 77 "35,nov14: EDOs lineares")
;; (find-c2q232page 81 "36.5,nov16: Aula de reposição")
;; (find-c2q232page 85 "38,nov21: O método dos coeficientes a determinar")
;; (find-c2q232page 89 "39,nov22: Séries de Taylor")
;; (find-c2q232page 93 "40,nov27: Séries convergentes e divergentes")
;; (find-c2q232page 95 "41,nov28: Séries de Taylor de novo: T_3")
;; (find-c2q232page 96 "42,nov29: Séries formais")
;; (find-c2q232page 98 "42.5,dec04: Aula de reposição/reforço")
;; (find-c2q232page 102     "dec05: Aula de reposição/reforço")
;; (find-c2q232page 108     "dec11: Aula de reposição/reforço")
;; (find-c2q232page 116     "dec12: Aula de reposição/reforço")
;; (find-c2q232page 119     "dec13: Aula de reposição/reforço")
;; (find-c2q232page 121     "dec14: Aula de reposição/reforço")
;; (find-c2q232page 125     "dec15: Aula de reposição/reforço")
;; (find-c2q232page 127     "dec18: Aula de reposição/reforço")
;; 2hQ93

;; (c2m232introa "title")
;; (c2m232introa "title" "Aula 0: Introdução ao curso")
(code-etex-tla "c2in"        "2023-2-C2-intro")
(code-etex-tla "c2m232intro" "2023-2-C2-intro")

;; (c2m232carroa "title")
;; (c2m232carroa "title" "Aulas 1 e 2: integração e derivação" "com o mathologermóvel")
(code-etex-tla "c2ca"        "2023-2-C2-carro")
(code-etex-tla "c2m232carro" "2023-2-C2-carro")

;; (c2m232justa "title")
;; (c2m232justa "title" "Aulas 3, 4 e 5: contas com justificativas")
(code-etex-tla "c2ju"       "2023-2-C2-justificativas")
(code-etex-tla "c2m232just" "2023-2-C2-justificativas")

;; (c2m232ipa "title")
;; (c2m232ipa "title" "Aula 6: integração por partes")
(code-etex-tla "c2ip"     "2023-2-C2-integracao-por-partes")
(code-etex-tla "c2m232ip" "2023-2-C2-integracao-por-partes")

;; (c2m232mvda "caso-1")
;; (c2m232mvda "caso-1" "\\sa{caso sen(2x)*2}")
(code-etex-tla "c2mvd"     "2023-2-C2-mv-defs")
(code-etex-tla "c2m232mvd" "2023-2-C2-mv-defs")

;; (c2m232mva "title")
;; (c2m232mva "title" "Aulas 8 a 11: mudança de variáveis")
(code-etex-tla "c2mv"     "2023-2-C2-mudanca-de-variaveis")
(code-etex-tla "c2m232mv" "2023-2-C2-mudanca-de-variaveis")

;; (c2m232tna "title")
;; (c2m232tna "title" "Aula 9: teste de nivelamento")
(code-etex-tla "c2tn"     "2023-2-C2-teste-niv")
(code-etex-tla "c2m232tn" "2023-2-C2-teste-niv")

;; (c2m231dfia "title")
;; (c2m231dfia "title" "Aula 10: derivada da função inversa")
(code-etex-tla "c2dfi"     "2023-2-C2-DFI")
(code-etex-tla "c2m231dfi" "2023-2-C2-DFI")

;; (c2m232fpa "title")
;; (c2m232fpa "title" "Aulas 11 e 12: Frações parciais")
(code-etex-tla "c2fp"     "2023-2-C2-fracoes-parciais")
(code-etex-tla "c2m232fp" "2023-2-C2-fracoes-parciais")

;; (c2m232sra "title")
;; (c2m232sra "title" "Aulas 13 até 16: Somas de Riemann")
(code-etex-tla "c2sr"     "2023-2-C2-somas-de-riemann")
(code-etex-tla "c2m232sr" "2023-2-C2-somas-de-riemann")

;; (c2m232tfc1a "title")
;; (c2m232tfc1a "title" "Aula 16: o TFC1")
(code-etex-tla "c2t1"       "2023-2-C2-TFC1")
(code-etex-tla "c2m232tfc1" "2023-2-C2-TFC1")

;; (c2m232dirichleta "title")
;; (c2m232dirichleta "title" "Aula 16: a função de Dirichlet")
(code-etex-tla "c2di"            "2023-2-C2-dirichlet")
(code-etex-tla "c2m232dirichlet" "2023-2-C2-dirichlet")

;; (c2m232dicasp1a "title")
;; (c2m232dicasp1a "title" "Dicas pra P1")
(code-etex-tla "c2d1"          "2023-2-C2-dicas-pra-P1")
(code-etex-tla "c2m232dicasp1" "2023-2-C2-dicas-pra-P1")

;; (c2m232volumesa "title")
;; (c2m232volumesa "title" "Aulas 19 e 21: volumes")
(code-etex-tla "c2vo"          "2023-2-C2-volumes")
(code-etex-tla "c2m232volumes" "2023-2-C2-volumes")

;; (c2m232p1a "title")
;; (c2m232p1a "title" "P1 (Primeira prova)")
(code-etex-tla "c2p1"     "2023-2-C2-P1")
(code-etex-tla "c2m232p1" "2023-2-C2-P1")

;; (c2m232coaa "title")
;; (c2m232coaa "title" "Aula 25: comprimento de arco")
(code-etex-tla "c2coa"     "2023-2-C2-comprimento-de-arco")
(code-etex-tla "c2m232coa" "2023-2-C2-comprimento-de-arco")

;; (c2m232edovsa "title")
;; (c2m232edovsa "title" "Aula 26: EDOs com variáveis separáveis")
(code-etex-tla "c2ev"        "2023-2-C2-edovs")
(code-etex-tla "c2m232edovs" "2023-2-C2-edovs")

;; (c2m232edolccsa "title" "Aula 30: EDOs lineares" "com coeficientes constantes")
(code-etex-tla "c2el"          "2023-2-C2-edolccs")
(code-etex-tla "c2m232edolccs" "2023-2-C2-edolccs")

;; (c2m232nca "title")
;; (c2m232nca "title" "Aula 31: revisão de números complexos")
(code-etex-tla "c2nc"     "2023-2-C2-numeros-complexos")
(code-etex-tla "c2m232nc" "2023-2-C2-numeros-complexos")

;; (c2m232edosexatasa "title")
;; (c2m232edosexatasa "title" "Aula 34: EDOs exatas")
(code-etex-tla "c2ee"                 "2023-2-C2-edos-exatas")
(code-etex-tla "c2m232edosexatas"     "2023-2-C2-edos-exatas")
(code-etex-tla "c2eed"                "2023-2-C2-edos-exatas-defs")
(code-etex-tla "c2m232edosexatasdefs" "2023-2-C2-edos-exatas-defs")

;; (c2m232edolsa "title")
;; (c2m232edolsa "title" "Aula 35: EDOs lineares")
(code-etex-tla "c2els"       "2023-2-C2-edos-lineares")
(code-etex-tla "c2m232edols" "2023-2-C2-edos-lineares")

;; (c2m232cda "title")
;; (c2m232cda "title" "Aula 38: o método dos" "coeficientes a determinar")
(code-etex-tla "c2cd"     "2023-2-C2-coefs-a-determinar")
(code-etex-tla "c2m232cd" "2023-2-C2-coefs-a-determinar")

;; (c2m232taa "title")
;; (c2m232taa "title" "Aula 39: Séries de Taylor e MacLaurin")
(code-etex-tla "c2ta"     "2023-2-C2-taylor")
(code-etex-tla "c2m232ta" "2023-2-C2-taylor")

;; (c2m232dicasp2a "title")
;; (c2m232dicasp2a "title" "Dicas pra P2")
(code-etex-tla "c2d2"          "2023-2-C2-dicas-pra-P2")
(code-etex-tla "c2m232dicasp2" "2023-2-C2-dicas-pra-P2")

;; (c2m232seriesformaisa "title")
;; (c2m232seriesformaisa "title" "Aula 42: séries formais")
(code-etex-tla "c2sf"                "2023-2-C2-series-formais")
(code-etex-tla "c2m232seriesformais" "2023-2-C2-series-formais")

;; (c2m232p2a "title")
;; (c2m232p2a "title" "P2 (Segunda prova)")
(code-etex-tla "c2p2"     "2023-2-C2-P2")
(code-etex-tla "c2m232p2" "2023-2-C2-P2")

;; (c2m232vrp1a "title")
;; (c2m232vrp1a "title" "Prova de reposição (VR)" "pra quem perdeu a P1")
(code-etex-tla "c2vr1"      "2023-2-C2-VRP1")
(code-etex-tla "c2m232vrp1" "2023-2-C2-VRP1")

;; (c2m232vrp2a "title" "Prova de reposição (VR)" "pra quem perdeu a P2")
(code-etex-tla "c2vr2"      "2023-2-C2-VRP2")
(code-etex-tla "c2m232vrp2" "2023-2-C2-VRP2")

;; (c2m232dicasvsa "title")
;; (c2m232dicasvsa "title" "Dicas pra VS")
(code-etex-tla "c2dvs"         "2023-2-C2-dicas-pra-VS")
(code-etex-tla "c2m232dicasvs" "2023-2-C2-dicas-pra-VS")

;; (c2m232refsubsta "title")
;; (c2m232refsubsta "title" "Aula de reforço sobre substituição")
(code-etex-tla "c2rs"           "2023-2-C2-ref-subst")
(code-etex-tla "c2m232refsubst" "2023-2-C2-ref-subst")

;; (c2m232vsa "title")
(code-etex-tla "c2vs"     "2023-2-C2-VS")
(code-etex-tla "c2m232vs" "2023-2-C2-VS")

;; (c2m232seriesa "title")
(code-etex-tla "c2se"         "2023-2-C2-edos-series")
(code-etex-tla "c2m232series" "2023-2-C2-edos-series")

;; (c2m232varparamsa "title")
(code-etex-tla "c2vp"            "2023-2-C2-var-params")
(code-etex-tla "c2m232varparams" "2023-2-C2-var-params")

;; (c2m232asa "title")
(code-etex-tla "c2as"     "2023-2-C2-areas-de-srs")
(code-etex-tla "c2m232as" "2023-2-C2-areas-de-srs")

;; (c2m232impropriasa "title")
(code-etex-tla "c2ii"             "2023-2-C2-ints-improprias")
(code-etex-tla "c2m232improprias" "2023-2-C2-ints-improprias")

;; (c2m232maximaa "title")
(code-etex-tla "c2ma"         "2023-2-C2-maxima")
(code-etex-tla "c2m232maxima" "2023-2-C2-maxima")

;; (c2m232abaixoassinadoa "title")
(code-etex-tla "c2ab"                 "2023-2-C2-abaixo-assinado")
(code-etex-tla "c2m232abaixoassinado" "2023-2-C2-abaixo-assinado")

;; (c2m232plca "title")
(code-etex-tla "c2plc"     "2023-2-C2-plano-de-curso")
(code-etex-tla "c2m232plc" "2023-2-C2-plano-de-curso")

;; (c2m232tudoa "title")
(code-etex-tla "c2tu"       "2023-2-C2-tudo")
(code-etex-tla "c2m232tudo" "2023-2-C2-tudo")



;; «c3-2023-2»          (to ".c3-2023-2")
;; «c3-2023-2-quadros»  (to ".c3-2023-2-quadros")
;; Skel: (find-semestre-emacs-links "23" "2" "C3"  "22" "2")
(defun c3e () (interactive) (find-angg ".emacs" "c3-2023-2"))

;; «c3q232»  (to ".c3q232")
;; (find-angg ".emacs" "c3-2022-1-quadros")
(defun c3q () (interactive) (find-angg ".emacs" "c3-2023-2-quadros"))
(code-pdf-page "c3q232" "~/2023.2-C3/C3-quadros.pdf")
(code-pdf-text "c3q232" "~/2023.2-C3/C3-quadros.pdf")
;; http://anggtwu.net/2023.2-C3/C3-quadros.pdf
;;  (find-angg       "2023.2-C3/Makefile")
;; (find-c3q232page  1 " 1,ago30: Introdução, jogo colaborativo, retas parametrizadas")
;; (find-c3q232page  3 " 2,sep01: Trajetória em três partes")
;; (find-c3q232page  8 " 3,sep06: (ninguém veio)")
;; (find-c3q232page  9 " 5,sep13: Vetor velocidade, círculo e parábolas")
;; (find-c3q232page 14 " 6,sep15: Mais trajetórias")
;; (find-c3q232page 16 " 8,sep22: Tipos e limites")
;; (find-c3q232page 20 " 9,sep27: Séries de Taylor")
;; (find-c3q232page 26 "10,sep29: Notação de físicos")
;; (find-c3q232page 31 "11,oct04: Linearizações, variáveis dependentes, pirâmide...")
;; (find-c3q232page 36 "12,oct06: pirâmide, cruz, determinante, produto cruzado...")
;; (find-c3q232page 42 "13,oct11: Gradiente")
;; (find-c3q232page 50 "17,oct25: Funções homogêneas")
;; (find-c3q232page 54 "18,oct27: Funções homogêneas")
;; (find-c3q232page 57 "19,nov01: Formas quadráticas e diagramas de sinais")
;; (find-c3q232page 64 "22,nov10: Preparação pra P1")
;; (find-c3q232page 65 "24,nov17: Autovetores, autovalores, matrizes definidas")
;; (find-c3q232page 71 "26,nov24: Matrizes definidas")

;; (c3m232introa "title")
;; (c3m232introa "title" "Aulas 1 e 2: introdução ao curso" "(e a trajetórias)")
(code-etex-tla "c3in"        "2023-2-C3-intro")
(code-etex-tla "c3m232intro" "2023-2-C3-intro")

;; (c3m232sga "title")
;; (c3m232sga "title" "Aulas 1 e 2: Seja o seu próprio GeoGebra")
(code-etex-tla "c3sg"     "2023-2-C3-geogebra")
(code-etex-tla "c3m232sg" "2023-2-C3-geogebra")

;; (c3m232tra "title")
;; (c3m232tra "title" "Aula 6: mais trajetórias")
(code-etex-tla "c3tr"     "2023-2-C3-trajetorias")
(code-etex-tla "c3m232tr" "2023-2-C3-trajetorias")

;; (c3m232tiposa "title")
;; (c3m232tiposa "title" "Aula 8: tipos e limites")
(code-etex-tla "c3ti"        "2023-2-C3-tipos")
(code-etex-tla "c3m232tipos" "2023-2-C3-tipos")

;; (c3m232taa "title")
;; (c3m232taa "title" "Aula 8: séries de Taylor e Maclaurin")
(code-etex-tla "c3ta"     "2023-2-C3-taylor")
(code-etex-tla "c3m232ta" "2023-2-C3-taylor")

;; (c3m232nfa "title")
;; (c3m232nfa "title" "Aula 10: ``notação de físicos''")
(code-etex-tla "c3nf"     "2023-2-C3-notacao-de-fisicos")
(code-etex-tla "c3m232nf" "2023-2-C3-notacao-de-fisicos")

;; (c3m232gradientea "title")
;; (c3m232gradientea "title" "Aulas 12 e 13: o gradiente")
(code-etex-tla "c3gr"            "2023-2-C3-gradiente")
(code-etex-tla "c3m232gradiente" "2023-2-C3-gradiente")

;; (c3m232fha "title")
;; (c3m232fha "title" "Aula 17: funções homogêneas")
(code-etex-tla "c3fh"     "2023-2-C3-funcoes-homogeneas")
(code-etex-tla "c3m232fh" "2023-2-C3-funcoes-homogeneas")

;; (c3m232dicasp1a "title")
(code-etex-tla "c3d1"          "2023-2-C3-dicas-pra-P1")
(code-etex-tla "c3m232dicasp1" "2023-2-C3-dicas-pra-P1")

;; (c3m232p1a "title")
;; (c3m232p1a "title" "P1 (primeira prova)")
(code-etex-tla "c3p1"     "2023-2-C3-P1")
(code-etex-tla "c3m232p1" "2023-2-C3-P1")

;; (c3m232mda "title")
;; (c3m232mda "title" "Aula ??: matrizes definidas")
(code-etex-tla "c3md"     "2023-2-C3-matrizes-definidas")
(code-etex-tla "c3m232md" "2023-2-C3-matrizes-definidas")

;; (c3m232toa "title")
(code-etex-tla "c3to"     "2023-2-C3-topologia")
(code-etex-tla "c3m232to" "2023-2-C3-topologia")

;; (c3m232twa "title")
(code-etex-tla "c3tw"     "2023-2-C3-teorema-de-weierstrass")
(code-etex-tla "c3m232tw" "2023-2-C3-teorema-de-weierstrass")

;; (c3m232beziera "title")
(code-etex-tla "c3be"         "2023-2-C3-bezier")
(code-etex-tla "c3m232bezier" "2023-2-C3-bezier")

;; (c3m232poa "title")
(code-etex-tla "c3po"         "2023-2-C3-polis-2o-grau")
(code-etex-tla "c3m232po"     "2023-2-C3-polis-2o-grau")
(code-etex-tla "c3pod"        "2023-2-C3-polis-2o-grau-defs")
(code-etex-tla "c3m232podefs" "2023-2-C3-polis-2o-grau-defs")

;; (c3m232dicasp2a "title")
(code-etex-tla "c3d2"          "2023-2-C3-dicas-pra-P2")
(code-etex-tla "c3m232dicasp2" "2023-2-C3-dicas-pra-P2")

;; (c3m232p2a "title")
(code-etex-tla "c3p2"     "2023-2-C3-P2")
(code-etex-tla "c3m232p2" "2023-2-C3-P2")

;; (c3m232plca "title")
(code-etex-tla "c3plc"     "2023-2-C3-plano-de-curso")
(code-etex-tla "c3m232plc" "2023-2-C3-plano-de-curso")

;; (c3m232tudoa "title")
(code-etex-tla "c3tu"       "2023-2-C3-tudo")
(code-etex-tla "c3m232tudo" "2023-2-C3-tudo")




;; «c2-2024-1»  (to ".c2-2024-1")
;; «c2-2024-1-quadros»  (to ".c2-2024-1-quadros")
;; Skel: (find-semestre-emacs-links "24" "1" "C2"  "23" "2")
(defun c2e  () (interactive) (find-angg ".emacs" "c2-2024-1"))
(defun c2eo () (interactive) (find-angg ".emacs" "c2-2023-2"))

;; «c2q241»  (to ".c2q241")
;; (find-angg ".emacs" "c2-2022-1-quadros")
(defun c2q () (interactive) (find-angg ".emacs" "c2-2024-1-quadros"))
(code-pdf-page "c2q241" "~/2024.1-C2/C2-quadros.pdf")
(code-pdf-text "c2q241" "~/2024.1-C2/C2-quadros.pdf")
;; http://anggtwu.net/2024.1-C2/C2-quadros.pdf
;; (find-angg "2024.1-C2/Makefile")
;; (find-c2q241page  1 "fev36: pagina fake")

;; (c2m241introa "title")
(code-etex-tla "c2in"        "2024-1-C2-intro")
(code-etex-tla "c2m241intro" "2024-1-C2-intro")

;; (c2m241plca "title")
(code-etex-tla "c2plc"     "2024-1-C2-plano-de-curso")
(code-etex-tla "c2m241plc" "2024-1-C2-plano-de-curso")

;; (c2m241tudoa "title")
(code-etex-tla "c2tu"       "2024-1-C2-tudo")
(code-etex-tla "c2m241tudo" "2024-1-C2-tudo")

(code-etex-tla "c2te"       "2024-1-C2-C3-termo")




;; «c3-2024-1»  (to ".c3-2024-1")
;; «c3-2024-1-quadros»  (to ".c3-2024-1-quadros")
;; Skel: (find-semestre-emacs-links "24" "1" "C3"  "23" "2")
(defun c3e  () (interactive) (find-angg ".emacs" "c3-2024-1"))
(defun c3eo () (interactive) (find-angg ".emacs" "c3-2023-2"))

;; «c3q241»  (to ".c3q241")
;; (find-angg ".emacs" "c3-2022-1-quadros")
(defun c3q () (interactive) (find-angg ".emacs" "c3-2024-1-quadros"))
(code-pdf-page "c3q241" "~/2024.1-C3/C3-quadros.pdf")
(code-pdf-text "c3q241" "~/2024.1-C3/C3-quadros.pdf")
;; http://anggtwu.net/2024.1-C3/C3-quadros.pdf
;; (find-angg "2024.1-C3/Makefile")
;; (find-c3q241page  1 "fev36: pagina fake")

;; (c3m241introa "title")
(code-etex-tla "c3in"        "2024-1-C3-intro")
(code-etex-tla "c3m241intro" "2024-1-C3-intro")

;; (c3m241plca "title")
(code-etex-tla "c3plc"     "2024-1-C3-plano-de-curso")
(code-etex-tla "c3m241plc" "2024-1-C3-plano-de-curso")

;; (c3m241tudoa "title")
(code-etex-tla "c3tu"       "2024-1-C3-tudo")
(code-etex-tla "c3m241tudo" "2024-1-C3-tudo")


;; (c3m241testeniva "title")
(code-etex-tla "c3tn"           "2024-1-C3-teste-niv")
(code-etex-tla "c3m241testeniv" "2024-1-C3-teste-niv")

;; ----------------------------------------






(code-etex-tla "ema" "2019ebl-mesa-disc-logica-grad")
;; (code-etex-tla "ems" "2019ebl-mesa-slides")
(code-etex-tla "ebf" "2019ebl-five-appls")
(code-etex-tla "eb5" "2019ebl-five-appls")

(code-etex-tla "p2s" "2019planar-has-2-slashings")
(code-etex-tla "p2l" "2019planar-has-2-logic")

(code-etex-tla "oxa" "2019oxford-abs")
(code-etex-tla "oxn" "2019oxford-abs-noc")
(code-etex-tla "oxd" "2019oxford-diags")
(code-etex-tla "oxi" "2019oxford-intro")
(code-etex-tla "dru" "2019derived-rules")
(code-etex-tla "elp" "2019elephant-poster")
(code-etex-tla "elz" "2019elephant-poster-z")

(code-etex-tla "iga" "2019ilha-grande-poster-a4")
(code-etex-tla "igp" "2019ilha-grande-poster")
(code-etex-tla "igs" "2019ilha-grande-slides")
(code-etex-tla "seh" "2019seminario-hermann")

(code-etex-tla "jop" "2019J-ops")
(code-etex-tla "jod" "2019J-ops-defs")
(code-etex-tla "jos" "2019J-ops-slashings")
(code-etex-tla "jol" "2019J-ops-logic")
(code-etex-tla "joc" "2019J-ops-cubes")
(code-etex-tla "jom" "2019J-ops-midway")
(code-etex-tla "jov" "2019J-ops-valuations")
(code-etex-tla "joa" "2019J-ops-algebra")
(code-etex-tla "joe" "2019J-ops-categories")
(code-etex-tla "joo" "2019J-ops-classifier")
(code-etex-tla "jok" "2019J-ops-kan")
(code-etex-tla "jon" "2020J-ops-new")
;;
(defun jodnt () (interactive) (find-LATEXfile "2019J-ops.dnt"))
(defun catsem () (interactive) (find-LATEX "catsem-u.bib"))
(defun catsli () (interactive) (find-LATEX "catsem-slides.bib"))

(code-etex-tla "ph9" "2019planar-has-1-main")
(code-etex-tla "saj" "2019sajl-test")
(code-etex-tla "kan" "2019kan-extensions")
(code-etex-tla "adj" "2020adjunctions")
(code-etex-tla "cl9" "2019classifier")
;; (code-etex-tla "cla" "2019classifier")

(defun haj () (interactive) (find-2a '(find-angg "IDRIS/HAJ2.idr") '(find-angg "IDRIS/HAJ.idr")))

(code-etex-tla "eco" "2019emacsconf")
(code-etex-tla "ecl" "2019emacsconf-long")
(code-etex-tla "nea" "2019newton-abs")
(code-etex-tla "nes" "2019newton-slides")
(code-etex-tla "taa" "2020tallinn-abstract")
(code-etex-tla "lvn" "2020lawvere-notation")

(code-etex-tla "hy8"  "2008hyp-utf8")
(code-etex-tla "hyp8" "2008hyp-utf8")
(code-etex-tla "natd" "2008natded-utf8")
(code-etex-tla "pbl"  "2020pullback-lemmas")

(code-etex-tla "pan" "2019-2-C2-provas-antigas")
(code-etex-tla "ace" "2020-ace")
;; (code-etex-tla "tik" "2020tikz-test")
;; (code-etex-tla "kle" "2019notes-kleisli")
(code-etex-tla "quo" "2020quotient-types")
(code-etex-tla "dno" "2020on-a-broken-dnc")

(code-etex-tla "noo"  "2020notes-on-notation")
(code-etex-tla "fav"  "2020favorite-conventions")
(code-etex-tla "shv"  "2020sheaves")
(code-etex-tla "clo"  "2020closure-operator")
(code-etex-tla "clj"  "2020closures-and-J-ops")
(code-etex-tla "clt"  "2020clops-and-tops")
(code-etex-tla "clg"  "2020clops-and-tops-garbage")

(code-etex-tla "abt"  "2020abramsky-tzevelekos")
(code-etex-tla "awo"  "2020awodey")
(code-etex-tla "bmt"  "2020badiou-mt")
(code-etex-tla "blo"  "2020badiou-low")
(code-etex-tla "bo1"  "2020borceux1")
(code-etex-tla "cac"  "2020caccamo")
(code-etex-tla "ctc"  "2020barrwellsctcs")
(code-etex-tla "cwi"  "2020caccamo-winskel")
(code-etex-tla "gef"  "2020genericfigures")
(code-etex-tla "hyp"  "2020hyp")
(code-etex-tla "inst" "2020institutions")
(code-etex-tla "jac"  "2020jacobs")
(code-etex-tla "l86"  "2020lambek86")
(code-etex-tla "lad"  "2020lawvere-adjfo")
(code-etex-tla "lar"  "2020mclarty")
(code-etex-tla "leq"  "2020lawvere-equahyp")
(code-etex-tla "lin"  "2020lindenhovius")
(code-etex-tla "lind" "lindenhovius")
(code-etex-tla "linj" "2021lindenhovius-june")
(code-etex-tla "linf" "2021lindenhovius-j-to-X")
(code-etex-tla "obi"  "2021other-bijections")
(code-etex-tla "lor"  "2020loregian")
(code-etex-tla "mds"  "2020macdonaldsobral")
(code-etex-tla "mmo"  "2020maclane-moerdijk")
(code-etex-tla "pra"  "2020prawitz")
(code-etex-tla "rie"  "2020riehl")
(code-etex-tla "sgl"  "2021sgl")
(code-etex-tla "shy"  "2020seelyhyp")
(code-etex-tla "shp"  "2020seelyhyp-poster")
(code-etex-tla "slc"  "2020seelylccc")
(code-etex-tla "plc"  "2020seelyplc")
(code-etex-tla "tpt"  "2020topostheory")
(code-etex-tla "vdp"  "2020dialectica")
(code-etex-tla "kdi"  "2020kockdiff")
(code-etex-tla "lsc"  "2020lambek-scott")
(code-etex-tla "lst"  "2020bell-lst")
(code-etex-tla "zha"  "2021zhang")
(code-etex-tla "rrj"  "2021rrj")

(code-pdf-page "lind" "~/LATEX/lindenhovius.pdf")
(code-pdf-text "lind" "~/LATEX/lindenhovius.pdf")

(defun dne () (interactive) (find-LATEX "2020dn6-error-handling.lua"))

;; (defun eup () (interactive) (find-escript-upload-links))
;; (defun aup () (interactive) (find-angg-upload-links))


(defun iub () (interactive) (insert "
%UB
%UB
%UB
%L
%L defub \"??\"
$$\\pu \\ub{??}
$$
"))


;; «find-tl-links» (to ".find-tl-links")
;; (find-find-links-links "M-p" "tl" "dir path stem")
;; (define-key my-mode-map "\M-p" 'find-tl-links)

(defun find-tl-links (&optional dir path stem &rest pos-spec-list)
"Visit a temporary buffer containing hyperlinks for a texlive package pdf."
  (interactive)
  (setq dir (or dir default-directory))
  (setq path (or path (buffer-substring-no-properties (ee-bol) (ee-eol))))
  (let* ((fullpath (concat dir path))
	 (fulldir (file-name-directory fullpath))
	 (fname (file-name-nondirectory fullpath))
	 (stem (or stem (replace-regexp-in-string ".pdf" "" fname)))
	 (find-stemfile (ee-intern "find-%sfile" stem))
	 (find-stempage (ee-intern "find-%spage" stem))
	 (find-stemtext (ee-intern "find-%stext" stem)))
    (apply 'find-elinks
     `((find-tl-links ,dir ,path ,stem ,@pos-spec-list)
       ;; Convention: the first sexp always regenerates the buffer.
       (find-efunction 'find-tl-links)
       ""
       (find-fline ,fulldir)
       (find-pdf-page ,(concat dir path))
       (find-pdf-text ,(concat dir path))
       ""
       (code-c-d ,stem ,fulldir)
       (code-pdf-page ,stem ,fullpath)
       (code-pdf-text ,stem ,fullpath)
       (,find-stemfile "")
       (,find-stempage)
       (,find-stemtext)
       ,(ee-template0 "\
")
       )
     pos-spec-list)))

;; Test:
;; (find-tlsh "find * | sort | grep verbatim")
;; (find-tlsh "find * | sort | grep verbatim" "verbatimbox.pdf")
;; (eek "<up> M-e M-p")


(code-c-d "elpa" "~/.emacs.d/elpa/")
;; (find-elpafile "")

(seen 19570)

;; «rexx»  (to ".rexx")

;; «eepitch-oorexx»  (to ".eepitch-oorexx")
;; (find-es "rexx" "0branch-repl")
(defun eepitch-oorexx () (interactive)
  (eepitch-comint "rexx repl.rexx" "rexx $S/https/0branch.com/snippets/repl.rexx"))

;; «oorexx-test-blocks»  (to ".oorexx-test-blocks")
;;
(defun ee-insert-test-oorexx-mode ()
  (interactive)
  (insert (ee-adjust-red-stars (format "
/*
* (eepitch-oorexx)
* (eepitch-kill)
* (eepitch-oorexx)
interpret .stream~new('%s')~arrayin~makestring('line', '; ')

*/
" (buffer-name)))))


(defun eepitch-srf () (interactive)
  (eepitch-comint "srf" "~/usrc/srf/srf"))

;; «rexx-sc»  (to ".rexx-sc")
;; (find-es "rexx" "sc")
;; (find-es "rexx" "eepitch-rexxsc")
(defun eepitch-rexxsc () (interactive) (eepitch-comint "rexx sc" "~/REXX/sc.rexx"))

;; «oorexx-docs»  (to ".oorexx-docs")
;; (find-es "rexx" "oorexx-docs")
(code-c-d      "oorexxdocs"   "$S/https/sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/")
(code-pdf-page "oorexxreadme" "$S/https/sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/readme.pdf")
(code-pdf-text "oorexxreadme" "$S/https/sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/readme.pdf")
(code-pdf-page "oorexxref"    "$S/https/sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/rexxref.pdf")
(code-pdf-text "oorexxref"    "$S/https/sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/rexxref.pdf" 22)
(code-pdf-page "oorexxunix"   "$S/https/sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/unixextensions.pdf")
(code-pdf-text "oorexxunix"   "$S/https/sourceforge.net/projects/oorexx/files/oorexx-docs/4.2.0/unixextensions.pdf")
;;
;; (find-oorexxdocsfile "")
;; (find-oorexxrefpage)
;; (find-oorexxreftext)
;; (find-oorexxunixpage)
;; (find-oorexxunixtext)
;; (find-oorexxreadmepage)
;; (find-oorexxreadmetext)





;; «srf»  (to ".srf")
;; (find-es "rexx" "srf-fossil")
;; (find-es "rexx" "srf-lua")
(code-c-d "srf" "~/usrc/srf/" :anchor)
;; (find-srffile "")

;; (find-angg ".emacs.templates" "find-fossil-update-srf-links")




;; «ff-search» (to ".ff-search")
;; «ee-pdftotext-replace-bad-ffs» (to ".ee-pdftotext-replace-bad-ffs")
;; Moved to:
;; (find-eev "eev-pdflike.el" "find-pdf-text")
;; (find-eev "eev-pdflike.el" "find-sh-page")
;; (ee-pdftotext-replace-bad-ffs "abc \f\f def \f g")
;;
;; Delete extra formfeeds in the output of pdftotext.
;; (find-elnode "Search and Replace")
;; (find-kopkadaly4page (+ 12 126) "\\ominus")
;; (find-kopkadaly4text (+ 12 126) "\\ominus")


;;;  _____ _                              __ _
;;; |_   _(_)_ __   ___   __ _ _ __ __ _ / _(_) __ _
;;;   | | | | '_ \ / _ \ / _` | '__/ _` | |_| |/ _` |
;;;   | | | | |_) | (_) | (_| | | | (_| |  _| | (_| |
;;;   |_| |_| .__/ \___/ \__, |_|  \__,_|_| |_|\__,_|
;;;         |_|          |___/
;;
;; «tipografia-digital» (to ".tipografia-digital")
;; (find-es "http" "python3-http.server")
;; (find-rcirc-intro "5. `find-freenode-links'")
;; (find-TH "2019.1-TD")
;; (find-TH "2019.1-TD" "install-eev")
;; http://anggtwu.net/2019.1-TD.html#install-eev
;; http://anggtwu.net/2019.1-TD.html#emacs-para-windows
;; (find-sh "ifconfig")
;; (find-fline "~/TH/R/eev-current/")
(defun tdh () (interactive) (find-es "http" "python3-http.server"))
(defun tdu () (interactive) (find-sh "date; cp -v ~/2019.1-TD/NOTES ~/TH/R/2019.1-TD/NOTES; cp -v /tmp/eev2.tgz ~/TH/R/eev-current/"))
(defun tdu () (interactive) (find-sh "date; cp -v ~/2019.1-TD/NOTES ~/TH/R/2019.1-TD/NOTES"))
(defun tde () (interactive) (find-angg ".emacs" "tipografia-digital"))
(defun tdn () (interactive) (find-fline "~/2019.1-TD/NOTES"))
(defun tdw () (interactive) (find-wget "http://anggtwu.net/2019.1-TD/NOTES"))
(defun tdw () (interactive) (find-wget "http://192.168.196.223:8000/2019.1-TD/NOTES"))
(defun tdw () (interactive) (find-wget "http://192.168.196.223:8002/2019.1-TD/NOTES"))
(defun tdb () (interactive) (find-TH "2019.1-TD"))


;;;   __ _        _   _     _
;;;  / _(_)_  __ | |_| |__ (_)___
;;; | |_| \ \/ / | __| '_ \| / __|
;;; |  _| |>  <  | |_| | | | \__ \
;;; |_| |_/_/\_\  \__|_| |_|_|___/
;;;
;; (require 'eev-steps)

;; On sweetjane:
;; (defun myip-as-string () (myip-eth0-as-string))

;; (find-eapropos "iconify")
;; (find-eapropos "suspend")
;; (find-elongkey-links "C-x C-z  ;; suspend-frame")

(when (eq window-system 'x)
  (global-set-key "\C-z" nil)
  (global-set-key "\C-x\C-z" nil)
  )

;; ispell-local-dictionary-alist
;; (find-efile "")
;; (find-egrep "grep -nH -e ispell-local-dictionary-alist *.el")

;; ee-comment-prefix:    ";;"

;; http://lists.gnu.org/archive/html/bug-gnu-emacs/2009-11/msg00363.html
;; http://web.psung.name/emacs/2007/emacs-slides-2.pdf
;; http://web.psung.name/emacs/2007/emacs-slides-3.pdf

;; )
;; !!!!


;; «book-index»  (to ".book-index")
;; (find-angg "LUA/book-index.lua")
(defun book-index () (interactive) (find-angg "LUA/book-index.lua"))



;; «find-pdft-page»  (to ".find-pdft-page")
;; See: (find-es "emacs" "find-pdft-page")
;;      (find-eev "eev-pdflike.el" "find-pdftools-page")
;; `find-pdft-page' is a `find-pdftools-page' that does not ask:
;;   "Revert buffer from file .../foo.pdf? (yes or no)"
;; Note: this is obsolete - now `find-pdftools-page' doesn't ask.
;;
;; ;; (find-code-xxxpdf-family "pdft-page")
;;         (code-xxxpdf-family "pdft-page")

(defun find-pdft-page (fname &optional page &rest rest)
  (let ((revert-without-query '(".*")))
    (apply 'find-pdftools-page fname page rest)))

(defun find-pdft-revert (fname)
  (let ((revert-without-query '(".*")))
    (find-fline fname)
    (revert-buffer)))

;; (find-pdft-revert "~/LATEX/2019-1-C3-P1.pdf")

;; «ee-pdftools-revert-all»  (to ".ee-pdftools-revert-all")
;; (find-es "emacs" "ee-pdftools-revert-all")

(defun g () (interactive) (ee-pdftools-revert-all))



(seen 19721)



(defun actprog ()
  (interactive)
  (find-pdf-page
   "$S/http/www.cs.ox.ac.uk/ACT2019/preproceedings/ACT%202019%20programme.pdf"))


;; «find-dednat6-links»  (to ".find-dednat6-links")
;; (find-es "dednat" "git-repo-update")
(defun find-dednat6-links () (interactive) (find-es "dednat" "git-repo-update"))


(defun find-sda1-links () (interactive)
  (let* ((dir (file-name-directory buffer-file-name))
	 (sda1dir (format "/sda1/%s" dir)))
    (find-2b '(find-fline sda1dir)
	     '(find-fline dir))))

;; (find-efunction 'recover-this-file)
;;
(defun recover-this-file-tkdiff (&optional fname)
  (interactive)
  (setq fname (or fname buffer-file-name))
  (let* ((fnamed (file-name-directory fname))
	 (fnamef (file-name-nondirectory fname))
	 (fnameb (format "%s#%s#" fnamed fnamef)))
    (find-tkdiff fname fnameb)))



;; «fde»  (to ".fde")
;; (find-eev "eev-intro.el" "find-intro-dual")
;; (find-intro-dual-define)
;; (fde)

(defun fde ()
  (interactive)

  (defun ee-intro-sourcep ()
    (equal (buffer-name) ".emacs"))
  (defun find-intro-source ()
    (interactive)
    (find-angg ".emacs" (format "find-%s-intro" (ee-intro-bufferp))
  	      (ee-this-line)))
  (message "`fd' now uses ~/.emacs. Undo with `find-intro-dual-define'.")

)


;; «ee-tag-re»  (to ".ee-tag-re")
;; (find-angg ".emacs.unibyte" "ee-tag-re")



;; «eval-print-arrow-color»  (to ".eval-print-arrow-color")
;; Based on: (find-efunction 'ee-eval-last-sexp-1)
;; Use for:  (find-elisp-intro)

(defun epac-fg (color str)
  (propertize str 'face `(:foreground ,color)))

(defun epac-add-arrow (str)
  (format "\n   %s %s\n"
	  (epac-fg "OrangeRed" "-->")
	  (epac-fg "orange1" str)))

(defun epac-M-E ()
  (let* ((result0 (ee-eval (read (ee-last-sexp))))
	 (result1 (epac-add-arrow (ee-S result0))))
    (insert result1)))

' (define-key my-mode-map (kbd "M-a")
    (lambda () (interactive) (end-of-line) (epac-M-E)))





(defun egit   () (interactive) (find-es "git"))
(defun eemacs () (interactive) (find-es "emacs"))
(defun etex   () (interactive) (find-es "tex"))
(defun eidris () (interactive) (find-es "idris"))
(defun eiddoc () (interactive) (find-es "idris" "idris-doc-complete"))
(defun eorg   () (interactive) (find-es "org"))

(defun idt () (interactive) (find-fline "~/IDRIS/Tut.idr"))
(defun idl () (interactive) (find-fline "~/IDRIS/Logic.idr"))
(defun idh () (interactive) (find-fline "~/IDRIS/HAs.idr"))
(defun idp () (interactive) (find-fline "~/IDRIS/Protocats.idr"))






;; «find-three-main-keys-intro»  (to ".find-three-main-keys-intro")
;; Moved to: (find-eev "eev-intro.el" "find-three-main-keys-intro")
;; (find-intro-links "three-main-keys")
;; (find-three-main-keys-intro)



;; «key-chord»  (to ".key-chord")
;; (find-es "emacs" "key-chord")
;;
(defun eek-cmd (str) `(lambda () (interactive) (eek ,str)))
(defalias 'kcm 'key-chord-mode)


;; «eetikz»  (to ".eetikz")
;; See: (find-es "tikz" "eetikz")
;; Usage:
;;   1) run the short-named defuns in
;;        (find-LATEX "2020tikz-test.tex")
;;        (tik)
;;   2) type <f3> in an "% (eetikz-bounded)" in a "%*"-block
;;   3) run `M-x c' and `M-x d' (or `M-x g')
;;
(defun eetikz (s &optional e)
  (interactive "r")
  (ee-write-with-nl s e "" "" "/tmp/ee.tikz")
  (format "eetikz: wrote %s"  "/tmp/ee.tikz"))

(code-bounded 'eetikz-bounded 'eetikz 'ee-delimiter-percent)





;; (find-eev "eev-testblocks.el" "ee-insert-test")
;; (defalias 'ei 'ee-insert-test-idris)
;;
;; (defun ee-insert-test-idris ()
;;   (interactive)
;;   (insert (format "
;; {-
;; * (eepitch-to-buffer \"*idris-repl*\")
;;
;; -}
;; ")))

(defalias 'ee-insert-test-idris2-mode
          'ee-insert-test-idris-mode)

(defun ee-insert-test-idris-mode ()
  (interactive)
  (insert (format "
{-
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
idris2 %s
:?

-}
" (buffer-name))))


;; (find-angg "JULIA/test1.jl")
;;
(defun ee-insert-test-julia-mode ()
  (interactive)
  (insert (format "
#=
# (find-thejulialanguagepage 1 \"Contents\")
# (find-thejulialanguagetext 1 \"Contents\")

* (eepitch-julia)
* (eepitch-kill)
* (eepitch-julia)
include(\"%s\")

=#

" (buffer-name))))

;; (find-angg "AGDA/test1.agda")
;;
(defun ee-insert-test-agda2-mode ()
  (interactive)
  (let* ((fname (buffer-name))
	 (stem (replace-regexp-in-string ".agda" "" fname)))
    (insert (ee-template0 "
{<}-
-- (find-es \"agda\" \"agda-user-manual\")
-- (find-efunctiondescr 'agda2-mode)

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
export LC_ALL=en_GB.UTF-8
agda -v 2 {fname}  | tee /tmp/o

# (find-es \"agda\" \"loading-process\")

stack exec --       agda --compile {fname}
./{stem}
                    agda --compile {fname}
agda --ghc-dont-call-ghc --compile {fname}

agda  --help
stack --help
# agda -i. -i/usr/share/agda-stdlib --interactive {fname}
# :load {fname}
# :?

-{>}

"))))

;; <ee-insert-test-prolog-mode>
;;
(defun ee-insert-test-prolog-mode ()
  (interactive)
  (insert (ee-adjust-red-stars (format "
/*
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
swipl -l %s

*/
" (buffer-name)))))


(seen 19932)



(defun ee-insert-test-LilyPond-mode ()
  (interactive)
  (insert (format "
%%{
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
lilypond %s

%%}

" (buffer-name))))

;; «fennel»  (to ".fennel")
;; (find-es "fennel" "fennel-git")
;; (find-eevfile "eepitch.el" "eepitch-langs")
;; (find-eevfile "eepitch.el" "eepitch-langs" "fennel")
;;
(code-c-d "fennel" "~/usrc/fennel/")
' (defun eepitch-fennel () (interactive) (eepitch '(fennel-repl nil)))

;; (defun ee-insert-test-fennel-mode ()
;;   (interactive)
;;   (let* ((fname (buffer-name))
;; 	 (stem  (replace-regexp-in-string ".fnl$" "" fname)))
;;     (insert (format "
;; (comment \"Test block:
;; * (eepitch-fennel)
;; * (eepitch-kill)
;; * (eepitch-fennel)
;; ,reload test0
;; 
;; \")
;; " stem))))

;; <ee-insert-test-emacs-lisp-mode>
;; See: (find-angg "elisp/emacsconf2021.el")
;;
(defvar ee-eeit-emacs "emacs")

(defun ee-insert-test-emacs-lisp-mode ()
  (interactive)
  (let* ((eevdir ee-eevdir)
	 (filetoload (buffer-file-name))
	 (emacs ee-eeit-emacs))
    (insert (ee-adjust-red-stars (ee-template0 "
;; (add-to-list 'load-path \"{eevdir}\")
;; (require 'eev-load)    ; (find-eev \"eev-load.el\")
;; (eev-mode 1)           ; (find-eev \"eev-mode.el\")
;;
;; (defun o () (interactive) (find-fline \"{filetoload}\"))
;;
;; ;; See: (find-angg \".emacs\" \"super-key\")
;; (global-set-key \"\\M-o\" 'other-window)
;; (global-set-key (kbd \"s-s\") 'toggle-scroll-bar)
;; (global-set-key (kbd \"s-t\") 'tool-bar-mode)
;; (global-set-key (kbd \"s-m\") 'menu-bar-mode)
;; (global-set-key (kbd \"s-f\") 'toggle-frame-fullscreen)
;; (global-set-key (kbd \"s-w\") 'wrap)
;; (defun eejump-16 () (set-frame-font \"Monospace 16\" t))
;;
;; (eek \"s-t  s-m  s-s  M-1 M-1 M-j  s-f\")
;; (ee-use-red-bullets)
;; (ee-use-red-stars)
;; (find-try-sly-links)
;;
;; (require 'package)
;; (add-to-list 'package-archives '(\"melpa\" . \"https://melpa.org/packages/\"))
;; (find-epackage-links 'pdf-tools)
;; (pdf-tools-install)
;;
'(\"This is a test block:
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
~/bigsrc/emacs29/src/emacs \\
      -fg bisque -bg black -Q -l /tmp/o.el &
{emacs} -fg bisque -bg black -Q -l {filetoload} &

** (find-eepitch-select-shell-links)

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# Use this to test package managers:
rm -Rv /tmp/fake-home-dir/
mkdir  /tmp/fake-home-dir/
cd     /tmp/fake-home-dir/
echo 'PS1=\"%d(%n:tmp)\\# \"' \\
     > /tmp/fake-home-dir/.zshrc
echo '(package-initialize)' \
     > /tmp/fake-home-dir/.emacs

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv /tmp/fake-home-dir/
mkdir  /tmp/fake-home-dir/
cd     /tmp/fake-home-dir/
export LUA_INIT=
export HOME=$PWD
export    S=$PWD/snarf
 HOME=$PWD {emacs} -fg bisque -bg black    -l {filetoload} &
#HOME=$PWD {emacs} -fg bisque -bg black -Q -l {filetoload} &

--\")
")))))

;; <ee-insert-test-maxima-mode>
;;
(defun ee-insert-test-maxima-mode ()
  (interactive)
  (insert (ee-adjust-red-stars (format "
/*
* (eepitch-maxima)
* (eepitch-kill)
* (eepitch-maxima)
load(\"%s\");

*/
" (buffer-name)))))






(defun yaxg () (interactive) (find-es "screencasts" "yaxg"))
(defun yaxg () (interactive) (find-es "screencasts" "yaxg" "find-3EE"))

;; «emacs27-adjust-faces»  (to ".emacs27-adjust-faces")
;; (find-es "emacs" "theme-my-emacs24")
;;
(defun emacs27-adjust-faces ()
  (set-face-background 'fringe "grey10")
  (set-face-foreground 'font-lock-builtin-face "LightSteelBlue")
  ; (set-face-foreground 'font-lock-comment-delimiter-face nil)
  (set-face-foreground 'font-lock-comment-face "chocolate1")
  (set-face-foreground 'font-lock-constant-face "Aquamarine")
  ; (set-face-foreground 'font-lock-doc-face nil)
  (set-face-foreground 'font-lock-function-name-face "LightSkyBlue")
  (set-face-foreground 'font-lock-keyword-face "Cyan1")
  ; (set-face-foreground 'font-lock-negation-char-face nil)
  ; (set-face-foreground 'font-lock-preprocessor-face nil)
  ; (set-face-foreground 'font-lock-regexp-grouping-backslash nil)
  ; (set-face-foreground 'font-lock-regexp-grouping-construct nil)
  (set-face-foreground 'font-lock-string-face "LightSalmon")
  (set-face-foreground 'font-lock-type-face "PaleGreen")
  (set-face-foreground 'font-lock-variable-name-face "LightGoldenrod")
  ; (set-face-foreground 'font-lock-warning-face nil)
  (set-face-foreground 'minibuffer-prompt "cyan")
  ; (set-face-foreground 'info-header-xref nil))
  )

;; (emacs27-adjust-faces)
(when (string> emacs-version "27")
  (emacs27-adjust-faces))

(seen 20090)

(defun find-xournalpp (fname) (find-bgprocess `("xournalpp" ,fname)))
(code-brfile 'find-xournalpp  :local 'brxournalppl :dired 'brxournalppd)

(defun find-thunar (dir &rest rest) (find-bgprocess `("thunar" ,dir)))

;; (find-code-brfile 'find-thunar :local 'brthunarl  :dired 'brthunard)
        (code-brfile 'find-thunar :local 'brthunarl  :dired 'brthunard)

(seen 20095)


(defun md () (interactive) (find-fline "~/ORG/archive-md-urls" :end))

(defun find-my-phone () (interactive) (find-es "android" "find-my-phone"))

;; (defun Xscreenshot () (interactive) (find-fline "~/bin/Xscreenshot" "xwd"))

(defun ecb () (interactive) (find-TH "emacsconf2019"))
(defun ecp () (interactive) (find-TH "emacsconf2020"))
(defun ec  () (interactive) (find-es "emacsconf2020"))




;; «find-mpv90-video»  (to ".find-mpv90-video")
;; (find-eev "eev-audiovideo.el" "find-mpv-video")
;;
(defun find-mpv90-video (fname &optional pos &rest rest)
  "Open FNAME with mpv, with a GUI (in fullscreen mode, for video files)."
  (interactive "sFile name: ")
  (let ((ee-mpv-video-options (cons "--video-rotate=90" ee-mpv-video-options)))
    (find-bgprocess (ee-find-mpv-video fname pos))))

(defun find-mpv180-video (fname &optional pos &rest rest)
  "Open FNAME with mpv, with a GUI (in fullscreen mode, for video files)."
  (interactive "sFile name: ")
  (let ((ee-mpv-video-options (cons "--video-rotate=180" ee-mpv-video-options)))
    (find-bgprocess (ee-find-mpv-video fname pos))))

(defun find-mpv270-video (fname &optional pos &rest rest)
  "Open FNAME with mpv, with a GUI (in fullscreen mode, for video files)."
  (interactive "sFile name: ")
  (let ((ee-mpv-video-options (cons "--video-rotate=270" ee-mpv-video-options)))
    (find-bgprocess (ee-find-mpv-video fname pos))))



;; «bsl»  (to ".bsl")
;; (find-es "emacs" "rx")
;; See: https://lists.gnu.org/archive/html/eev/2021-06/msg00010.html
;; (find-elnode "Basic Char Syntax" "\\a")
;; (find-elnode "General Escape Syntax" "\\uXXXX")
;; (find-elnode "General Escape Syntax" "\\x41")
;; (find-elnode "General Escape Syntax" "octal")
;; (find-elnode "Rx Notation")
;; (find-elnode "Rx Constructs" "Capture groups")
;; (find-elnode "Search and Replace")

(setq ee-elisp-bsl-re
      (rx "\\" (or (group-n 1 (any "abtnvfres\\d"))
		   (group-n 2 (regexp "[0-7][0-7][0-7]"))
		   (and (any "x") (group-n 3 hex hex))
		   (and (any "uU") (group-n 4 hex hex hex hex
					    (opt hex hex) (opt hex hex)))
		   )))

(setq ee-elisp-bsl-re
      (rx (or (and "\\" (or (group-n 1 (any "abtnvfres\\d"))
			    (group-n 2 (regexp "[0-7][0-7][0-7]"))
			    (and (any "x") (group-n 3 hex hex))
			    (and (any "uU") (group-n 4 hex hex hex hex
						     (opt hex hex) (opt hex hex)))))
	      (and "#U" (group-n 4 hex hex hex hex)))))

(defun ee-elisp-bsl-convert1 (str)
  (save-match-data
    (string-match ee-elisp-bsl-re str)
    (let ((char  (match-string 1 str))
          (octal (match-string 2 str))
          (hexa  (match-string 3 str))
          (hexb  (match-string 4 str)))
      (cond (char  (match-string 0 str))
	    (octal (format "%c" (string-to-number octal 8)))
	    (hexa  (format "%c" (string-to-number hexa 16)))
	    (hexb  (format "%c" (string-to-number hexb 16)))
	    ))))

(defun ee-elisp-bsl-replace (s e)
  "Replace some backslash sequences in the region.
The sequences \\ooo, \\xhh and \\uhhhh, where the `o's are octal
digits and the `h's are hex digits, are replaced by their
corresponding characters."
  (interactive "r")
  (save-excursion
    (save-restriction
      (narrow-to-region s e)
      (goto-char (point-min))
      (while (re-search-forward ee-elisp-bsl-re nil 'noerror)
	(replace-match (ee-elisp-bsl-convert1 (match-string 0)) 'fixedcase 'literal)
	))))

(defalias 'bsl 'ee-elisp-bsl-replace)

;; Tests:
;; (ee-elisp-bsl-convert1 "\\n")
;; (ee-elisp-bsl-convert1 "\\234")
;; (ee-elisp-bsl-convert1 "\\351")
;; (ee-elisp-bsl-convert1 "_\\351_")
;; (ee-elisp-bsl-convert1 "\\x41")
;; (ee-elisp-bsl-convert1 "\\u2022")
;; (find-einsert '((0 255)))
;;
;; ...and mark the next line and run `M-x bsl' on it:
;; "Foo \n\\\234\u2022\xa2"

;; (find-efunction 'dired-next-line)
;; (find-efunction 'dired-move-to-filename)
;; (find-efunction 'wdired-next-line)
;;
(defun ee-dired-mark-filename ()
  "Mark the filename in the current line in (w)dired."
  (interactive)
  (eek "C-e C-SPC")
  (dired-move-to-filename))

(defalias 'dmf 'ee-dired-mark-filename)

(defun bsl-macro () (interactive)
  (setq last-kbd-macro (kbd "<<dmf>> <<bsl>> <<deact>> <down>")))

;; Use this in wdired after an unzip that creates filenames with "#"s:
;; (setq last-kbd-macro (kbd "<<dmf>> <<bsl>> <<deact>> <down>"))






;; (find-evardescr 'grep-save-buffers)
;; (find-evariable 'grep-save-buffers)
;; (find-efile "progmodes/grep.el" "(defcustom grep-save-buffers")
(setq grep-save-buffers nil)


(defun cnt () (interactive) (find-LATEX "2020-2-CN-template.tex"))

(code-etex-tla "ats" "2020ats")
(code-etex-tla "pyt" "2020pythontex")
(code-etex-tla "dnv" "2020dednat6-video")
(code-etex-tla "qui" "2020quiver")
(code-etex-tla "grt" "2020groth-tops")
(code-etex-tla "grd" "2021groth-tops-defs")
(code-etex-tla "grc" "2021groth-tops-children")
(code-etex-tla "grs" "2021groth-tops-children-slides")
(code-etex-tla "has" "2021haskell")
(code-etex-tla "exc" "2021excuse")
(code-etex-tla "lod21" "2021logicday")
(code-etex-tla "ski" "2021ski")
(code-etex-tla "adn" "2021ArtDecoN")
(code-etex-tla "saptelegram" "2021sobre-aulas-por-telegram")
(code-etex-tla "sapt"        "2021sobre-aulas-por-telegram")
(code-etex-tla "sapt"        "2021sobre-aulas-por-telegram")
(defun saptb () (interactive) (find-TH "2021aulas-por-telegram"))
;;
(code-etex-tla "p2a" "2021planar-HAs-2")
(code-etex-tla "p19" "2019J-ops-defs")

(code-etex-tla "bur" "2021burghardt")
(code-etex-tla "lea" "2021lean-nng")
(code-etex-tla "fit" "2021fitch")
(code-etex-tla "y21" "2021yoneda")
(code-etex-tla "dan" "2021resposta-daniela")
(code-etex-tla "dfc" "2021-deptypes-for-children")
(code-etex-tla "sysf" "2021systemF")

;; (find-books "__cats/__cats.el" "maclane-moerdijk")
;; (find-LATEX "2021sgl.tex")
(code-pdf-page "maclanemoerdijk" "~/books/__cats/maclane_moerdijk__sheaves_in_geometry_and_logic.pdf")
(code-pdf-text "maclanemoerdijk" "~/books/__cats/maclane_moerdijk__sheaves_in_geometry_and_logic.pdf")

(code-c-d "oest" "~/usrc/org-eev-sympy-tests/" :anchor)
(defun oeup () (interactive) (find-oest "oest.e" "push"))
(defun oedl () (interactive) (find-oest "oest.e" "git-pull"))
;; (find-oestfile "")

(defun clear-fbclids ()
  (interactive)
  (push-mark (point-max))
  (fooi-re "[?&]\\(CMP\\|cmpid\\|fbclid\\|fb_comment\\|feature\\|utm\\|__cft__\\|__twitter_impression\\)[!-~]*" ""))

;; (defun magit-fix () (interactive) (find-es "magit" "with-editor-fix"))

(defun magit-fix ()
  (interactive)
  (load    "with-editor.el")
  (load    "with-editor.elc")
  (require 'with-editor))



;; «hydra-r»  (to ".hydra-r")
;; (find-es "emacs" "hydra")
;; «hydra-ei»  (to ".hydra-ei")
;; «ei»  (to ".ei")
;; (find-eev "eev-hydras.el")

;; (defun eev-index-edit ()
;;   "Call `eev-index-edit/body' to edit the index."
;;   (interactive)
;;   (require 'hydra)
;;   ;;
;;   ;; Definition of the hydra:
;;   ;;
;;   (defhydra hydra-eev-index-edit (:color green :hint nil)
;;   "
;; _q_:quit    ^^^^                                    _0_: delthiswindow
;;  werty:  _u_:prev    _i_:insert  _o_:second window  _p_:prev
;; asdfgh:  _j_:next    _k_:kill    _l_:eval
;;          ^ ^         _,_:adj<-   _._:adj->
;; Standard usage: _k__o__p__l__i__0_q
;; Use `_,_'s and `_._'s between the `_i_' and the `_0_' to adjust the `(to ...)'.\n"
;;   ;;
;;   ;; Left column: movement by anchors
;;   ("u" (re-search-backward (ee-tag-re)))
;;   ("j" (re-search-forward  (ee-tag-re)))
;;   ;; Kill/Otherwindow/Prev/evaL/Insert/adj<-/adj->/delthiswindow:
;;   ("k" (eek "C-a C-SPC <down> C-w"))
;;   ("o" (eek "C-x 1 C-x 3 C-x o"))
;;   ("p" (re-search-backward (ee-tag-re)))
;;   ("l" (eek "M-e"))
;;   ("i" (eek "C-a <down> C-y <up>"))
;;   ("," (eev-index-replace "\t(to "   "(to "))
;;   ("." (eev-index-replace   "(to " "\t(to "))
;;   ("0" (eek "C-x 0"))
;;   ;; Other keys:
;;   ("<down>" (eek "<down>"))
;;   ("<up>"   (eek "<up>"))
;;   ("1"      (eek "C-x 1"))
;;   ("2"      (eek "M-2 M-e"))
;;   ("<"      (eek "M-<"))
;;   ("M-<"    (eek "M-<"))
;;   ("q"      nil))
;;   ;;
;;   ;; End of the definition of the hydra.
;;   ;;
;;   ;; Call the hydra:
;;   (hydra-eev-index-edit/body)
;;   )
;; 
;; (defalias 'ei 'eev-index-edit)



;; «ee-mononoki»  (to ".ee-mononoki")
;; (find-es "agda" "mononoki")
(defun ee-mononoki (&optional ht)
  (interactive)
  (set-face-attribute 'default nil
                      :family "mononoki"
                      :height (or ht 150)
                      :weight 'normal
                      :width  'normal))

(defun eejump-17 () (ee-mononoki 150))
(defun eejump-18 () (ee-mononoki 180))


;; «vterm»  (to ".vterm")
;; (find-eev "eepitch.el" "eepitch-vterm")
(defun eepitch-julia  () (interactive) (eepitch-vterm "julia" "julia"))
(defun eepitch-isympy () (interactive) (eepitch-vterm "isympy3" "isympy3"))
(defun eepitch-nodejs () (interactive) (eepitch-vterm "nodejs" "nodejs"))

(defalias 'vtc 'find-vterm-contents)

(defun find-vterm-contents (&rest pos-spec-list) 
  (interactive)
  (find-estring
   (with-current-buffer
       "*vterm*" (buffer-substring (point-min) (point-max)))))


;; «0x0»  (to ".0x0")
;; (find-eev "eev-tlinks.el" "ee-0x0-upload-region")
(require '0x0)

(defalias 'u0 'ee-0x0-upload-region)

;; (defun ee-0x0-upload (b e server-old)
;;   "This is a hack. See the source code."
;;   (let ((server (0x0--choose-server))
;;         (region-contents (buffer-substring-no-properties b e)))
;;     (with-temp-buffer
;;       (insert region-contents)
;;       (let* ((file-name (or (buffer-file-name) (buffer-name) "kill-ring.txt"))
;;              (bounds (0x0--make-bounds))
;;              (size (0x0--bounds-size bounds))
;;              (resp (0x0--send server file-name bounds)))
;;         (0x0--handle-resp server size resp)))))

;; (defun ee-0x0-upload (b e server-old)
;;   "This is a hack. See the source code."
;;   (deact)
;;   (eek "C-x C-x C-x C-x M-x 0x0-dwim RET")
;;   )


;; «subed»  (to ".subed")
;; (find-es "emacs" "subed")
;; (find-es "subtitles" "mpv-geometry")
;; (find-fline "~/.emacs.custom" "subed-mpv-arguments")
;; (find-fline "~/LOGS/2022oct09.emacs" "set subed-auto-find-video to nil")
(setq subed-auto-find-video nil)



;; «gnuplot»  (to ".gnuplot")
;; (find-eev "eev-testblocks.el" "examples")
;; (find-eev "eev-testblocks.el" "examples" "gnuplot")
;; (find-eepitch-intro "3.3. `eepitch-preprocess-line'")
;;
(setq eepitch-preprocess-regexp "^#: ")
(defun eepitch-preprocess-line (line)
  (replace-regexp-in-string eepitch-preprocess-regexp "" line))

;; «slime»  (to ".slime")
(code-c-d "slime" "~/.emacs.d/elpa/slime-20230109.1535/" "slime")
(code-c-d "swank" "~/.emacs.d/elpa/slime-20230109.1535/swank/")
;; (find-slimenode "")
;; (find-slimefile "")
;; (find-swankfile "")

;; «sly»  (to ".sly")
;; (find-es "lisp" "sly")
(code-c-d "sly"   "~/.emacs.d/elpa/sly-20221018.1049/")
(code-c-d "slynk" "~/.emacs.d/elpa/sly-20221018.1049/slynk/")
;; (find-slynkfile "")

;; See: (find-es "lisp" "eepitch-sly-inspect")
(defun eepitch-sly-inspect (str)
  (eepitch-eval-at-target-window '(sly-inspect str)))

;; «quicklisp»  (to ".quicklisp")
(code-c-d "ql"      "~/quicklisp/")
(code-c-d "qlsly"   "~/quicklisp/dists/quicklisp/software/sly-20211230-git/")
(code-c-d "qlslynk" "~/quicklisp/dists/quicklisp/software/sly-20211230-git/slynk/")
;; (find-qlfile "")
;; (find-qlsh "find * | sort")
;; (find-qlslysh "find * | sort")
;; (find-qlslyfile "")
;; (find-qlslynkfile "")



;; «ee-cpb»  (to ".ee-cpb")
;; (find-es "emacs" "ee-cpb")
;; (find-eev "eev-blinks.el" "find-ebuffercontents")
(defvar ee-cpb nil)
(defun ee-cpb0 () (setq ee-cpb (buffer-substring (point-min) (point-max))))
(defun ee-cpb () (interactive) (ee-cpb0) (find-2b nil (find-estring ee-cpb)))
;; (find-epp ee-cpb)



(defun le () (interactive) (find-eev "eev-intro.el" "find-lexical-intro" "3. `get/set'"))
(defun j  () (interactive) (find-fline "~/TH/jacarezinho.blogme"))
(defun vl () (interactive) (find-TH "2021-video-links"))

(code-brfile 'find-pdftools-page    :local 'brpdftoolsl      :dired 'brpdftoolsd)

;; (ee-last-kill-matches "^[!-~]+$")
(defun ee-last-kill-matches (regexp)
  (let ((k (ee-last-kill)))
    (if (and k (string-match regexp k))
	k)))

(defun ee-kill-image-buffers ()
  (interactive)
  (dolist (b (buffer-list))
    (if (with-current-buffer b (eq major-mode 'image-mode))
      (kill-buffer b))))



(seen 20914)


;; (find-fline "~/rcirc/rcirc-20210728.el")
;;(load "~/rcirc/rcirc-20210728.el")

;; (find-es "emacs" "M-x-nasty-delay-bug")
(setq extended-command-suggest-shorter nil)

;; (find-eface-links 'font-latex-subscript-face)
;; (find-evardescr 'font-latex-fontify-script)
;; (find-evariable 'font-latex-fontify-script)
(setq font-latex-fontify-script nil)

(defun o () (interactive) (find-TH "2021-oficina"))
(defun w () (interactive) (find-TH "2021-workshop"))
(defun ow () (interactive) (find-2b '(o) '(w)))

(defun sal () (interactive) (find-blogme3 "sandwiches-all.lua"))

;; (find-es "eev" "quick-load")
(defun eel () (interactive) (find-angg "elisp/emacsconf2021.el"))
(defun ecb () (interactive) (find-TH "emacsconf2021"))
(defun eex () (interactive) (find-eev "eev-intro.el" "find-eev-exercises-intro"))
;; (defun ex () (interactive) (find-eev-exercises-intro))
(code-etex-tla "e21" "2021emacsconf")

(code-etex-tla "al1" "2022agda-logic-1")
(code-etex-tla "dis" "2017distributivity")
(code-etex-tla "pit" "2021pict2e")
(code-etex-tla "dep" "2022dep-vars")
(code-etex-tla "mis" "2022on-the-missing")
(code-etex-tla "mia" "2022on-the-missing-agda")
(code-etex-tla "mib" "2022on-the-missing-b")
(code-etex-tla "mdy" "2022missing-diags-yoneda")
(code-etex-tla "yps" "2022yoneda-pseudocode")
(code-etex-tla "mt1" "2022meteor-test1")
(code-etex-tla "om1" "2022ochs-meteor1")
(defun mt1b () (interactive) (find-LATEX "2022meteor-test1.pre.bib"))
(defun om1b () (interactive) (find-LATEX "2022ochs-meteor1.bib"))
(defun p22 () (interactive) (find-angg "LATEX/2022pict2e.lua"))

;; (find-code-etex-tla "dis" "2017distributivity")

(defun ffll () (interactive) (find-TH "2021-ffll"))



;; «emojis»  (to ".emojis")
;; (find-es "emacs" "emojis")
;; (find-es "emacs" "emoji-heavy-black-heart")
;; (find-2a nil '(emy))

(defun eml () (interactive) (emoji-list))
(defun emt () (interactive) (find-fline "~/bigsrc/emacs28/admin/unidata/emoji-test.txt"))
(defun emy ()
  "My favorite emojis."
  (interactive)
  (find-estring (propertize "
Slightly smiling face:    \N{SLIGHTLY SMILING FACE}
Slightly frowning face:   \N{SLIGHTLY FROWNING FACE}
White frowning face:      \N{WHITE FROWNING FACE}\uFE0F
Face without mouth:       \N{FACE WITHOUT MOUTH}
Neutral face:             \N{NEUTRAL FACE}
Upside-down face:         \N{UPSIDE-DOWN FACE}
Confused face:            \N{CONFUSED FACE}
Flushed face:             \N{FLUSHED FACE}
Grimacing face:           \N{GRIMACING FACE}
Thumbs up sign:           \N{THUMBS UP SIGN}
Heavy black heart:        \N{HEAVY BLACK HEART}\N{VARIATION SELECTOR-16}
Dog face:                 \N{DOG FACE}
Pile of poo:              \N{PILE OF POO}
Japanese ogre:            \N{JAPANESE OGRE}
Thinking face:            \N{THINKING FACE}
Face with stuck-out...:   \N{FACE WITH STUCK-OUT TONGUE}
Grinning face with...:    \N{GRINNING FACE WITH ONE LARGE AND ONE SMALL EYE}
Face with stuck-out...:   \N{FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES}

Crying face:              \N{CRYING FACE}
Disappointed but...:      \N{DISAPPOINTED BUT RELIEVED FACE}
Loudly crying face:       \N{LOUDLY CRYING FACE}
Face screaming in fear:   \N{FACE SCREAMING IN FEAR}
Confounded face:          \N{CONFOUNDED FACE}
Angry face:               \N{ANGRY FACE}
Pouting face:             \N{POUTING FACE}
Serious face with...:     \N{SERIOUS FACE WITH SYMBOLS COVERING MOUTH}
Heavy black heart:        \N{HEAVY BLACK HEART}\N{VARIATION SELECTOR-16}
Orange heart:             \N{ORANGE HEART}
Yellow heart:             \N{YELLOW HEART}
Green heart:              \N{GREEN HEART}
Blue heart:               \N{BLUE HEART}
Purple heart:             \N{PURPLE HEART}
Brown heart:              \N{BROWN HEART}

Person with folded hands: \N{PERSON WITH FOLDED HANDS}

Heavy black heart:        \N{HEAVY BLACK HEART}\N{VARIATION SELECTOR-16}
White frowning face:      \N{WHITE FROWNING FACE}\uFE0F
  ")))



(defun ea () (interactive) (find-eev-exercises-intro "2. An attempt to explain `M-3 M-e'"))
(defun ha () (interactive) (find-fline "~/AGDA/ha.agda"))
(defun ha () (interactive) (find-fline "~/AGDA/Ha.agda"))


;; «emlua»  (to ".emlua")
(code-c-d "emlua" "~/emlua/" :anchor)
;; (find-emluafile "")
;; (find-emlua-links "")


;; «cols»  (to ".cols")
;; (find-es "tex" "firstcol-anothercol")
;;
(defun cols () (interactive) (insert "
\\scalebox{0.6}{\\def\\colwidth{9cm}\\firstcol{
}\\anothercol{
}}
"))


;; «my/version»  (to ".my/version")
;; (find-elnode "Version Info")
;;
(defun my/version ()
  (interactive)
  (let ((commit
         (if emacs-repository-version
             (format " (commit %s)" (substring emacs-repository-version 0 8)) ""))
        (build-time
         (if emacs-build-time
             (format-time-string "Built on %Y-%m-%d" emacs-build-time)
           "Unknown build date")))
    (message (format "Emacs v%s%s. %s." emacs-version commit build-time))))



;; <ee-insert-test-fvwm-generic-mode>
;;
(defun ee-insert-test-fvwm-generic-mode ()
  (interactive)
  (insert (ee-adjust-red-stars (format "
# See: (find-eepitch-intro \"3.3. `eepitch-preprocess-line'\")
# (setq eepitch-preprocess-regexp \"^\")
# (setq eepitch-preprocess-regexp \"^#: \")
#
#: * (eepitch-shell)
#: * (eepitch-kill)
#: * (eepitch-shell)
#: # %s

" (buffer-name)))))

;; <ee-insert-test-nim-mode>
;;
(defun ee-insert-test-nim-mode ()
  (interactive)
  (insert (ee-adjust-red-stars (format "
#[
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
inim --show-Color=0 -s %s

]#
" (buffer-name)))))



;; «derawify»  (to ".derawify")
;; (find-angg "elisp/derawify.el")
(load       "~/elisp/derawify.el")


;; «ee-protected-buffer»  (to ".ee-protected-buffer")
;; (find-enode "Safe File Variables")
;; (find-egrep "grep --color=auto -nH --null -e safe-local *.el */*.el")
;; (find-angg "notes/")
;; (find-angg "notes/.dir-locals.el")
(put   'my/protected        'safe-local-variable 'booleanp)
(put   'ee-protected-buffer 'safe-local-variable 'booleanp)
(defvar my/protected        nil)
(defvar ee-protected-buffer nil)


(seen 21034)


;; «fullscreen»  (to ".fullscreen")
;; (find-es "x" "wmctrl")
(defun fullscreen (&optional arg)
  "(This is very old code)"
  (interactive "P")
  (setq arg (or arg 1))
  (if (> arg 0)
      (find-sh0 "wmctrl -r :ACTIVE: -b add,fullscreen")
    (find-sh0 "wmctrl -r :ACTIVE: -b remove,fullscreen")))

;; «ee-set-fullscreen»  (to ".ee-set-fullscreen")
;; See: (find-es "emacs" "toggle-frame-fullscreen")
;; Tests: (ee-frame-fullscreen-p)
;;        (ee-set-fullscreen t)
;;        (ee-set-fullscreen nil)
;;
(defun ee-frame-fullscreen-p (&optional frame)
  "See `toggle-frame-fullscreen'."
  (interactive)
  (let ((fullscreen (frame-parameter frame 'fullscreen)))
    (memq fullscreen '(fullscreen fullboth))))

(defun ee-set-fullscreen (arg)
  (if arg
      (if (not (ee-frame-fullscreen-p))
	  (toggle-frame-fullscreen))
    (if (ee-frame-fullscreen-p)
	(toggle-frame-fullscreen))))


(seen 21067)





;; «make»  (to ".make")
;;
(defun add-showvar ()
  (interactive)
  (insert "\n%.showvar:\n\t@echo $(value $*) | tr ' ' '\\n'\n"))


(defun yel () (interactive) (find-LATEX "2021YonedaEqs.lagda.tex"))
(defun ad  () (interactive) (find-angg "AGDA/"))
(defun ae  () (interactive) (find-es   "agda"))
(defun ao  () (interactive) (find-angg "ORG/agda.org"))
(defun cab () (interactive) (find-LATEXfile "catsem-ab.bib"))
(defun cub () (interactive) (find-LATEXfile "catsem-u.bib"))

;; gb0: goto .bib (low-level)
;; gb: goto .bib (high-level)
;; Tests: (gb0       "GLT")
;;   (eek "<up> <<gb>>")
;;
(defun gb0 (name)
  (interactive "sName: ")
  (find-LATEX "catsem-ab.bib" (format "bib-%s" name)))

(defun gb ()
  (interactive)
  (gb0 (ee-stuff-around-point "A-Za-z0-9")))

(defalias 'code-ytvideo 'code-video)

(code-etex-tla "his" "2022hissa")

(code-etex-tla "pa2" "2022-plano-de-atividades-C2")
(code-etex-tla "pa3" "2022-plano-de-atividades-C3")

(code-etex-tla "lre"     "2022repl")
(code-etex-tla "ebla"    "2022ebl-abs")
(code-etex-tla "ebl"     "2022ebl")
(code-etex-tla "ebl2022" "2022ebl")
(code-etex-tla "eblr" "2022ebl-relatorio")



;; «qunzip»  (to ".qunzip")
;;
(defun qunzip () (interactive)
  (let* ((fname (ee-dired-file-name))
	 (fname0 (file-name-nondirectory fname)))
  (find-elinks
   `(,(ee-template0 "
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
unzip {fname0}

* (kill-new \"~/2022.1-quadros/\")
* (q1)
")))))

(defun q1 () (interactive)
  (find-2a '(find-fline "/tmp/") '(find-fline "~/2022.2-quadros/")))

(defun q2 () (interactive)
  (find-3a '(find-fline "~/2022.2-quadros/")
	   '(find-fline "~/2022.2-C2/Makefile")
	   '(find-fline "~/2022.2-C3/Makefile")))

;; (q2-makef "20220526_162429-C2-tarde.jpg")
;; (q2-makef "20220518_155937-C3.jpg")

(defun q2-getfname ()
  (file-name-nondirectory (ee-dired-to-fname)))

(defun q2-makef (fname)
  (replace-regexp-in-string
   "^\\([0-9]+\\)\\(_[0-9]+\\)\\(-C[23][-a-z]*+\\)\\(-[0-9]+\\)?.jpg$"
   "#T f \\1\\2\\3\\4 \\1\\3-1\\4" fname))

(defun q2k ()
  (interactive)
  (let ((line (q2-makef (q2-getfname))))
    (kill-new (concat line "\n"))
    (message "Killed: %s" line)))



;; (find-fline "~/eev-wconfig/")
(defun ewb () (interactive) (find-angg "bin/eev-wconfig"))
(defun ewb () (interactive) (find-TH "eev-wconfig"))
(defun ewc () (interactive) (find-sh "eev-wconfig c"))
(defun ewd () (interactive) (find-sh "eev-wconfig d"))
(defun ewl () (interactive) (find-eev "eev-wconfig.el"))
(defun ewr () (interactive) (find-angg "eev-wconfig/README-wconfig.el"))
(defun ewv () (interactive) (find-eevvideosfile "2022-eev-wconfig.vtt"))


;; «ee-insert-test-raku-mode»  (to ".ee-insert-test-raku-mode")
;;
(defun ee-insert-test-raku-mode ()
  (interactive)
  (let ((libname
	 (replace-regexp-in-string
	  "\\.rakumod$" "" (buffer-name))))
    (insert (ee-adjust-red-stars (format "
#`(
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
raku %s

* (eepitch-raku)
* (eepitch-kill)
* (eepitch-raku)
use lib '.'
use %s

)

" (buffer-name) libname)))))


;; «ee-eval-defun-test»  (to ".ee-eval-defun-test")
;; Based on: (find-efunction 'eval-defun)
;; See:     (find-es "emacs" "eval-defun")
(defun ee-eval-defun ()
  "Eval the defun around point - like `eval-defun', but simpler."
  (interactive)
  (save-excursion
    (end-of-defun)
    (beginning-of-defun)
    (let* ((beg  (point))
	   (form (funcall load-read-function (current-buffer)))
	   (end  (point)))
      (eval form))))

(defun ee-eval-defun-test ()
  "Eval the defun around point and \"test\" it."
  (interactive)
  (let ((sexp `(find-2b nil '(,(ee-eval-defun)))))
    (eval sexp)
    (message "%S" sexp)))

(defalias 'eet 'ee-eval-defun-test)



;; «find-einspector»  (to ".find-einspector")
;; (find-es "emacs" "inspector")
;; Test: (find-einspect package-alist)

(defun find-einspector (expr)
  (inspector-inspect-expression expr))

(defun find-einspect (expr)
  (inspector-inspect-expression expr))

(defun find-einspect (o)
  (inspector-inspect o))

(code-etex-tla "wal" "2022chat-walter")




(defun eeitl ()
  (interactive)
  (insert (ee-adjust-red-stars (format "
%% (setq eepitch-preprocess-regexp \"^\")
%% (setq eepitch-preprocess-regexp \"^%%[TL] ?\")
%%
%%L ee_dofile \"~/LUA/Repl1.lua\"
%%L r = EdrxRepl.new()
%%L r:repl()
\\pu
%%T * (eepitch-shell)
%%T * (eepitch-kill)
%%T * (eepitch-shell)
%%T lualatex -record %s

" (buffer-name)
))))


(defun lt (Lazy show)
 (insert (ee-template0 "\n
--  «.{Lazy}-{show}»	(to \"{Lazy}-{show}\")
    -- «{Lazy}-{show}»  (to \".{Lazy}-{show}\")
    -- (to \"{Lazy}-tests-{show}\")
--  «.{Lazy}-tests-{show}»	(to \"{Lazy}-tests-{show}\")
-- «{Lazy}-tests-{show}»  (to \".{Lazy}-tests-{show}\")
-- (to \"{Lazy}-{show}\")
")))

(code-etex-tla "rau" "2022-reuniao-C2-aug")
(code-etex-tla "pei" "2022peirce")

(defun cal () (interactive) (find-es "puro" "cal-2023.2"))


;; «find-calceasyvideo»  (to ".find-calceasyvideo")
;; (find-fline "/sda5/videos/Math/" "Why_is_calculus_so_..._EASY-kuOxDh3egN0.webm")
;; (find-fline "~/TH/mathologer-calculus-easy.blogme")
;; (find-TH "mathologer-calculus-easy" "legendas")
(code-video "calceasy0video" "/sda5/videos/Math/Why_is_calculus_so_..._EASY-kuOxDh3egN0.webm")

(defun find-calceasyvideo (&rest rest)
  (let ((ee-mpv-video-options
         '("--fs" "--osd-level=2"
           "--video-margin-ratio-bottom=0.15"
           "--sub-font-size=35")))
    (apply 'find-calceasy0video rest)))

;; (find-calceasy0video)
;; (find-calceasyvideo)
;; (find-calceasyvideo "17:00")


;; «find-luatb»  (to ".find-luatb")
;; (find-angg "elisp/find-luatb.el")
(load "~/elisp/find-luatb.el")



;; «name0»  (to ".name0")
(defun name0 (s)
  (interactive "sTag: ")
  (insert (format "[NAME0 %s
;; «.%s»	(to \"%s\")
      «%s»  (to \".%s\")
]\n" s s s s s)))



;; «telega»  (to ".telega")
;; (find-es "telega" "tdlib")
;; (find-evardescr 'telega-server-libs-prefix)
;; (find-evariable 'telega-server-libs-prefix)
;; (setq telega-server-libs-prefix "/usr/local")
(setq telega-server-libs-prefix "/home/edrx/usrc/td/tdlib")


;; «switftp»  (to ".switftp")
;; (find-es "android" "ftp")
;; (find-es "tramp" "ftp")
(code-c-d "whatsappimages" "/ftp:ftp@192.168.1.2#2121:/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Images/")
(code-c-d "whatsappvideo"  "/ftp:ftp@192.168.1.2#2121:/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Video/")
(code-c-d "dcimcamera"     "/ftp:ftp@192.168.1.2#2121:/DCIM/Camera/")

(code-c-d "whatsappimages" "/ftp:ftp@192.168.1.2#2121:/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Images/")
(code-c-d "whatsappvideo"  "/ftp:ftp@192.168.1.2#2121:/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp Video/")
(code-c-d "dcimcamera"     "/ftp:ftp@192.168.1.2#2121:/DCIM/Camera/")
;; (find-whatsappimagesfile "")
;; (find-whatsappvideofile "")
;; (find-dcimcamerafile "")
;; (find-fline "/ftp:192.168.1.2#2121:/DCIM/Camera/")
;; (find-fline "/ftp:ftp@192.168.1.2#2121:/DCIM/Camera/")



;; «ee-recompile-SUBTITLES»  (to ".ee-recompile-SUBTITLES")
;; Test: (defalias 'r0 'ee-recompile-SUBTITLES-0)
;;       (defalias 'r  'ee-recompile-SUBTITLES)
;;       (find-SUBSfile "2022-yttranscript.lua")
;;
(defun ee-recompile-SUBTITLES-0 ()
"Recompile the subtitles of a file of the form ~/SUBTITLES/*.lua.
This function creates a 3-window setting and does not run `f8's."
  (interactive)
  (eek "C-x C-s")
  (eek "C-x r SPC b")
  (eepitch-lua51)
  (eepitch-kill)
  (eepitch-lua51)
  (ee-goto-position "\ndofile")
  (find-wset "2co_coo" '(eek "C-x r j b"))
  )

(defun ee-recompile-SUBTITLES-3 ()
"Recompile the subtitles of a file of the form ~/SUBTITLES/*.lua.
This runs `ee-recompile-SUBTITLES-0' runs some `f8's, and goes
back to the lower left window of the 3-window setting."
  (interactive)
  (ee-recompile-SUBTITLES-0)
  (eek "8*<f8> M-o"))

(defun ee-recompile-SUBTITLES-1 ()
"Like `ee-recompile-SUBTITLES-3', but also does a `C-x 1'."
  (interactive)
  (ee-recompile-SUBTITLES-0)
  (eek "8*<f8> M-o C-x 1")
  (recenter))


;; «termux»  (to ".termux")
;; (find-angg ".zshrc" "termux")
(defun eepitch-termux () (interactive)
  (eepitch-comint "termux" "ssh ssh://u0_a037@192.168.0.111:8022"))
(defun eepitch-termux () (interactive)
  (eepitch-comint "termux" "ssh $TERMUXS"))


;; «find-git-shows»  (to ".find-git-shows")
;; (find-es "git" "find-git-shows")
(defun find-git-shows (dir file1 file2)
  (find-2a `(find-sh-at-dir dir ,(format "git show %s" file1))
           `(find-sh-at-dir dir ,(format "git show %s" file2))))

(defun find-git-shows4 (dir prefix1 prefix2 suffix)
  (find-git-shows dir (concat prefix1 suffix) (concat prefix2 suffix)))


;; «lean4»  (to ".lean4")
;; (find-angg ".emacs.papers" "fplean4")
;; (find-es "lean" "install-2024")
;; (find-lean4prefile "")
;; (find-lean4presh "find * | sort")
(code-c-d "lean4pre" "~/.elan/toolchains/leanprover--lean4---stable/src/lean/")

;; (find-es "lean" "lean4-mode-vc")
;; (find-lean4modefile "")
(code-c-d "lean4mode" "~/.emacs.d/elpa/lean4-mode/")

;; (find-es "lean" "lean4-git")
(code-c-d "lean4" "~/bigsrc/lean4/")
;; (find-lean4file "")
;; (find-lean4file ".files")

(defun ee-insert-test-lean4-mode ()
  (interactive)
  (insert (ee-adjust-red-stars (format "
/-
| (find-elan4leanfile \"Lean/\")
| (find-lean4file \"doc/\")
| (find-lean4file \"doc/tour.md\")
| (find-angg \".emacs.papers\" \"fplean4\")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
lean --run %s

-/
" (buffer-name)))))




;; «tudos-tex»  (to ".tudos-tex")
;; (find-angg "LUA/Tudos1.lua")
(code-c-d "tudostex" "/tmp/tudos-tex/")
;; (find-tudostexfile "")
;; (find-tudostexgrep "grep --color=auto -niH --null -e 'dica 7' *")
;; (find-tudostexgrep "grep --color=auto -niH --null -e 'corrigir' *")


;; «caepro2»  (to ".caepro2")
;; (find-angg "LUA/Caepro2.lua" "elisp")
;; Tests: 3T1

(defun ee-caepro2-around-point ()
  (ee-stuff-around-point "A-Za-z0-9"))

(defun ee-caepro2-url (str)
  (interactive (list (ee-caepro2-around-point)))
  (find-sh (format "cd ~/LUA/; lua5.1 Caepro2.lua -url %s" str)))

(defun ee-caepro2-oc (str)
  (interactive (list (ee-caepro2-around-point)))
  (find-sh0 (format "cd ~/LUA/; lua5.1 Caepro2.lua -oc %s" str)))

(defun ee-caepro2-run (str)
  (interactive)
  (setq str (or str (ee-stuff-around-point "A-Za-z0-9")))
  (find-bgprocess (ee-caepro2-oc str)))

(defun ee-caepro2-debug (str)
  (interactive)
  (setq str (or str (ee-caepro2-around-point)))
  (find-estring (ee-caepro2-oc str)))

(defun ee-caepro2-log-abbrev ()
  (format "%s%s" (file-name-sans-extension
                  (file-name-nondirectory
                   (buffer-file-name)))
                 (ee-current-page)))

(defalias 'cau 'ee-caepro2-url)

(defun eejump-9   () (ee-caepro2-run nil))
(defun eejump-99  () (find-estring (ee-caepro2-log-abbrev)))
(defun eejump-999 () (ee-caepro2-debug nil))


;; «caepro3»  (to ".caepro3")
;; (find-angg "LUA/Caepro3.lua" "run_options")
;; (ee-caepro3-get-sexp "2eT1")
;; (ee-caepro3-run-sexp "2eT66")
;; (ee-caepro3-run-sexp "Bort7")
;;
(defun ee-caepro3-around-point ()
  (ee-stuff-around-point "A-Za-z0-9#:"))

(defun ee-caepro3-cmd (arg1 arg2)
  (format "cd ~/LUA/; lua5.1 Caepro3.lua %s %s" arg1 arg2))

(defun ee-caepro3-get-sexp (str)
  (find-sh0 (ee-caepro3-cmd "-sexp" str)))

(defun ee-caepro3-run-sexp (str)
  (interactive (list (ee-caepro3-around-point)))
  (eval (read (ee-caepro3-get-sexp str))))

(defun eejump-9 () (ee-caepro3-run-sexp (ee-caepro3-around-point)))


;; «caepro4»  (to ".caepro4")
;; (find-angg "LUA/Caepro4.lua" "run_options")
;; (ee-caepro4-get-sexp "2eT1")
;; (ee-caepro4-run-sexp "2eT66")
;; (ee-caepro4-run-sexp "Bort7")
;;
(defun ee-caepro4-around-point ()
  (ee-stuff-around-point "-A-Za-z0-9#:"))

(defun ee-caepro4-cmd (arg1 arg2)
  (format "cd ~/LUA/; lua5.1 Caepro4.lua %s %s" arg1 arg2))

(defun ee-caepro4-get-sexp (str)
  (find-sh0 (ee-caepro4-cmd "-sexp" str)))

(defun ee-caepro4-run-sexp (str)
  (interactive (list (ee-caepro4-around-point)))
  (eval (read (ee-caepro4-get-sexp str))))

(defun eejump-9 () (ee-caepro4-run-sexp (ee-caepro4-around-point)))



;; «caepro5»  (to ".caepro5")
;; (find-angg "LUA/Caepro5.lua" "run_options")
;; (ee-caepro5-get-sexp "2eT1")
;; (ee-caepro5-run-sexp "2eT66")
;; (ee-caepro5-run-sexp "Bort7")
;; (ee-caepro5-do t "-sexp" "Bort7")

(defun ee-caepro5-around-point ()
  (ee-stuff-around-point "-A-Za-z0-9#:_"))

(defun ee-caepro5-do (&optional outer opt str)
  (setq opt (or opt "-sexp"))
  (setq str (or str (ee-caepro5-around-point)))
  (let* ((cmd (format "cd ~/LUA/; lua5.1 Caepro5.lua %s %s" opt str))
	 (output (find-sh0 cmd)))
    (cond ((eq outer 'eval)  (eval (read output)))
	  ((eq outer 'estr)  (find-estring output))
	  ((eq outer 'estr2) (find-2a nil `(find-estring ,output)))
	  (t                 output))))

(defun eejump-9  () (ee-caepro5-do 'eval nil nil))
(defun eejump-94 () (ee-caepro5-do 'eval "-asexp" nil))
(defun eejump-92 () (ee-caepro5-do 'eval "-rsexp" nil))
(defun eejump-96 () (ee-caepro5-do 'eval "-gsexp" nil))
(defun eejump-97 () (ee-caepro5-do 'eval "-tsexp" nil))
(defun eejump-99 () (ee-caepro5-do 'estr2 "-test" nil))

(defun ee-insert-ajup (&optional str)
  (interactive)
  (setq str (or str (ee-preceding-tag-flash)))
  (let* ((p (ee-caepro5-do 'eval "-p" str))
	 (ajup (format "%% (ajup %s)\n" p)))
    (eek "C-a")
    (insert ajup)))

(defalias 'iajup 'ee-insert-ajup)

;; (ee-caepro5-do  nil   nil     "2eT1")
;; (ee-caepro5-do  nil   "-test" "2eT1")
;; (ee-caepro5-do  nil   nil     "ERROR")
;; (ee-caepro5-do  nil   "-test" "ERROR")
;; (ee-caepro5-do 'estr  "-test" "2eT1")
;; (ee-caepro5-do 'estr2 "-test" "2eT1")
;; (ee-caepro5-do 'estr2 "-test" "2eT100")
;; (ee-caepro5-do 'estr2 "-test" "Bort7")
;; (ee-caepro5-do 'estr2 "-test" "2023-wsm-quinet_2")
;; (ee-caepro5-do 'eval  "-p"    "2023-wsm-quinet_2")
;; (ee-caepro5-do 'eval  nil     "2eT100")
;; (ee-insert-ajup "2023-wsm-quinet")
;; (ee-insert-ajup "2023-wsm-quinet_2")



;; «comissao1»  (to ".comissao1")
;; (find-angg "LUA/Comissao1.lua" "options")
;; (ee-comissao1-cmd "-sexp" "2023-wsm-quinet")
;; (ee-comissao1-get-sexp "2023-wsm-quinet")
;; (ee-comissao1-get-sexp "2022-etel-subs")
;;
;; (defun ee-comissao1-sec-around-point ()
;;   (ee-stuff-around-point "-A-Za-z0-9_"))
;; 
;; (defun ee-comissao1-cmd (opts &optional sec)
;;   (format "cd ~/LUA/; lua5.1 Comissao1.lua %s %s"
;; 	  opts (or sec (ee-comissao1-sec-around-point))))
;; 
;; (defun ee-comissao1-run (opts &optional sec)
;;   (find-sh0 (ee-comissao1-cmd opts sec)))
;; 
;; (defun ee-comissao1-run-eval (opts &optional sec)
;;   (eval (read (find-sh0 (ee-comissao1-cmd opts sec)))))
;; 
;; (defun eejump-99  () (ee-comissao1-run-eval "-pagesexp ajup"))
;; (defun eejump-999 () (ee-comissao1-run-eval "-pagesexp ajut"))
;; (defun eejump-91  () (ee-comissao1-run-eval "-texsection"))



;; «logs-pdfizados»  (to ".logs-pdfizados")
;; (find-es "ead" "logs-pdfizados-linode")
;; (find-angg "LUA/Caepro2.lua" "mletter_tables-cp")
;; (setq last-kbd-macro (kbd "M-w M-99 M-j C-e SPC C-y C-a C-SPC <down> M-w M-1 M-j RET C-y 2*M-K"))
(code-c-d "logspdfizados" "~/logs-pdfizados/")
;; (find-logspdfizadosfile "")
;; (find-logspdfizadosgrep "grep --color=auto -nH --null -e apaga *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -nH --null -e somas *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -nH --null -e amb *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -nH --null -e ' amb' *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -nH --null -e ' amb' 2*L*.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e socorr *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e ajud *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e ajudem *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e prova *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e 'trabalho em vídeo' *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e conceitual *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e daigoro *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e nomes *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e amigo *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e 'por favor reveja' *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e submetendo-a *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e desenhos *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e gritlet *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e wiki *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e 'Low Poly' *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e numerozinhos *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e thomas *.txt")
;; (find-logspdfizadosgrep "grep --color=auto -niH --null -e lean *.txt")
;; (find-logspdfizadosfile "2cL1e.txt" "que nao estao entendendo nada")
;; (find-logspdfizadosgrep "grep --color=auto -nH --null -e negativ *T.txt")
;; (find-logspdfizadosgrep "grep --color=auto -nH --null -e 'áreas negativas não existem' *T.txt")
;; (find-logspdfizadosgrep "grep --color=auto -nH --null -e 'antig' *.txt")
;; 2cL1e84 várias pessoas disseram que não estão entendendo nada
;; 2eT229 lembre de nunca apagar
;; 2fT63 "áreas negativas não existem"


;; «caepro-arounds»  (to ".caepro-arounds")
;;   «find-arounds»  (to ".find-arounds")
;; (find-angg "LUA/LogsPdfizados1.lua")
;; (find-angg "LUA/LogsPdfizados1.lua" "find-arounds")
;;
;; (find-arounds "[Cc]hutar")
;; (find-arounds "[Tt]homas")
;; (find-arounds "[Cc]ruz")
;; (find-arounds "[Cc]ontexto")
;; (find-arounds "tentativas")
;; (find-arounds "2021-1-C2-somas-1-dicas")
;; (find-arounds "Daigoro")
;; (find-arounds "incomplet")
;; (find-arounds "Freya")
;; (find-arounds "tipo area")
;; (find-arounds "Tipos")
;; (find-arounds "visual")
;; (find-arounds "usar o %+ C")
;; (find-arounds "vista")
;; (find-arounds "amigo")
;; (find-arounds "mundo")
;; (find-arounds "melhor pessoa do mundo")
;; (find-arounds "[Ss]implifica")
;; (find-arounds "riscar a questao inteira")
;; (find-arounds "muitas pessoas fizeram provas fantasticas")
;; (find-arounds "todos enlouquecendo sozinhos")
;; (find-arounds "questoes que muita gente errou")
;; (find-arounds "bem trabalhoso dar uma prova FORMAL")
;; (find-arounds "assistentes de provas")
;; (find-arounds "quem estiver vindo nas aulas")
;; (find-arounds "os sinais de igual")
;; (find-arounds "prefiro nao responder perguntas sobre metodos")
;; (find-arounds "CARACA, QUE VERGONHA")
;; (find-arounds "pouca gente vai acabar sendo reprovada")
;; (find-arounds "eu poria na prova se tivesse VS")
;; (find-arounds "MUITISSIMO bem vindas")
;; (find-arounds "dar nomes pra formulas")
;; (find-arounds "bem escrita pode incluir")
;; (find-arounds "pontos de R%^3 apontando")
;; 3cL2m6 (find-arounds "desenha ladrilhos nele")
;; 
;; (find-arounds "ocorr")
;; (find-arounds "somas%-1%-dicas")
;; (find-arounds "nxsIK0tPWAI")
;; (find-arounds "jud")
;; (find-arounds "linhas auxiliares fininhas")
;; (find-arounds "caso em que o portugues ajuda muito")
;; (find-arounds "Eu tou aqui pra ajudar voces a aprenderem rapido")
;; (find-arounds "\"y\" no eixo y")
;; (find-arounds "100%% errado e eu nao consigo te ajudar")
;; (find-arounds "Voce vai ter que treinar sozinha")
;; (find-arounds "transformar o \"perdido\" em duvidas mais concretas")
;; (find-arounds "Mas como isso irá me ajudar")
;; (find-arounds "boa hipotese")
;; (find-arounds "boa hipotese! Eu posso te ajudar a descobrir como testar")
;; (find-arounds "isso vai ajudar nas discussoes")
;; (find-arounds "omiti de proposito")
;; (find-arounds "calcule essas areas de cabeca")
;; (find-arounds "calculadora pecam ajuda O MAIS RAPIDO")
;; (find-arounds "meme com multiplas")
;; (find-arounds "relembrar um monte de ideias de GA")
;; (find-arounds "Minecraft")
;; (find-arounds "video sobre Minecraft")
;; (find-arounds "vídeo sobre o Minecraft")
;; (find-arounds "entao nao tenho como te ajudar")
;; (find-arounds "de um jeito que as pessoas entendam")
;; (find-arounds "discutir os seus diagramas de sinais")
;; (find-arounds "faltando tudo")
;; (find-arounds "TENHO QUE aceitar")
;; (find-arounds "armadilha")
;; (find-arounds "explicacoes em portugues")
;; (find-arounds "Maxima")
;; (find-arounds "Lean")
;; (find-arounds "esperto")
;; (find-arounds "anima")
;; (find-arounds "escada")
;; (find-arounds "ustificativa")
;; (find-arounds "parametrizadas")
;; (find-arounds "iferenciais")
;; (find-arounds "inversa")
;; (find-arounds "nsino")
;; (find-arounds "ponente")
;; (find-arounds "iranda")
;; (find-arounds "ivian")
;; (find-arounds "perd")
;; (find-arounds "Lean")
;; (find-arounds "egenerad")
;; (find-arounds "Low Poly")
;; (find-arounds "[Cc]ruz")
;; (find-arounds "catast")
;; (find-arounds "Dirichlet")
;; (find-arounds "tortos")
;; (find-arounds "pedia")
;; (find-arounds "centenas")
;; (find-arounds "plano tangente")
;; (find-arounds "caso geral")
;; (find-arounds "pril 2021")
;; (find-arounds "gradiente")
;; (find-arounds "quadr")
;; (find-arounds "de sinais")

(defun find-arounds (pat &rest rest)
  (let* ((fmt "lua5.1 ~/LUA/LogsPdfizados1.lua -a '%s'"))
    (apply 'find-sh (format fmt pat) rest)))

;; (ee-logsp-parse "2dL2e31 1631 foo")
;; (ee-logsp-visit "2dL2e31 1631 foo")
;;
(defun ee-logsp-parse (str)
  (string-match "^\\([A-Za-z0-9]*[A-Za-z]\\)\\([0-9]*\\) \\([0-9]*\\)" str)
  (let* ((stem (match-string 1 str))
         (page (match-string 2 str))
         (line (match-string 3 str))
	 (fname (format "~/logs-pdfizados/%s.txt" stem))
         (linen (string-to-number line)))
    (list stem page line fname linen)))

(defun ee-logsp-visit (str)
  (seq-let (stem page line fname linen)
      (ee-logsp-parse str)
    (find-fline fname linen)))

(defun eejump-90 () (ee-logsp-visit (buffer-substring (ee-bol) (ee-eol))))


(code-etex-tla "epy" "2022emacsconf-py")
(code-etex-tla "ekl" "2022emacsconf-kla")
(code-etex-tla "sul" "2022sula")
(code-etex-tla "twd" "2022tikzwd-1")
(code-etex-tla "tw2" "2022tikzwd-2")
;; (code-etex-tla "tir" "2022tikz-repl")

;; (find-code-etex-tla "aju" "2022-2-C2-C3-ajuda")
(code-etex-tla "aju" "2022-2-C2-C3-ajuda")
(code-etex-tla "art" "2022-arthur")

(defun ajut (&optional page &rest rest)
  (interactive)
  (apply 'find-pdf-text8 "~/LATEX/2022-2-C2-C3-ajuda.pdf" page rest))

(defun te  () (interactive) (find-es "tikz"))
(defun tl  () (interactive) (find-fline "~/LUA/tikz1.lua"))
(defun tel () (interactive) (find-fline "~/LUA/tikz1.el"))
(defun tr  () (interactive) (find-fline "~/LUA/Repl2.lua"))
(defun pt  () (interactive) (find-fline "~/LATEX/2022pgf-test.tex"))
(defun tb  () (interactive) (find-TH "eev-tikz"))
(defun tea () (interactive) (find-angg ".emacs.videos" "2022tikz" "a) [tik]"))
(defun ts  () (interactive) (find-angg "SUBTITLES/2022-eev-tikz.lua"))

(defun os  () (interactive) (find-angg "SUBTITLES/2021-org-for-non-users.lua"))

(defun f  () (interactive) (find-ebuffer "#fennel@irc.libera.chat"))
(defun fe () (interactive) (find-es "fennel"))
(defun re () (interactive) (find-es "racket"))

(defun ki  () (interactive) (find-kla-intro))
(defun rsi () (interactive) (find-rstdoc-intro))
(defun kle () (interactive) (find-eev "eev-kla.el"))
(defun rse () (interactive) (find-eev "eev-rstdoc.el"))
(defun tes () (interactive) (find-fline "~/elisp/test.el"))
(defun ke  () (interactive) (find-es "emacsconf2022"))
(defun ee  () (interactive) (find-es "emacs"))
(defun le  () (interactive) (find-es "lisp"))
(defun me  () (interactive) (find-es "maxima"))
(defun ev  () (interactive) (find-fline "~/TH/eev-videos.blogme"))
(defun es  () (interactive) (find-TH "eev-sly"))

(defun ge () (interactive) (find-es "tex" "geometry"))
(defun rp () (interactive) (find-angg "elisp/rcd-paps.el"))
(defun lo () (interactive) (find-TH "eev-for-longtime-emacs-users"))
(defun jl () (interactive) (find-telegachat "@rcdrun"))

(defun sqe () (interactive) (find-es "squeak"))
(defun sqb () (interactive) (find-TH "eev-squeak"))

(defun mc2 () (interactive) (find-LATEX "2022-C2-projeto-de-monitoria.tex"))

(code-etex-tla "mc1"   "2022missing-changes-1")
(code-etex-tla "mc3"   "2023-C3-projeto-de-monitoria")
(code-etex-tla "mc3"   "2024-C3-projeto-de-monitoria")
(code-etex-tla "c22r"  "2022-reclamacoes")
(code-etex-tla "cae"   "2023-caepro")
(code-etex-tla "caer"  "2023-caepro-reclamacoes")
(code-etex-tla "caed"  "2023-caepro-didatica")
(code-etex-tla "caev"  "2023-caepro-VR")
(code-etex-tla "caepl" "2023-caepro-plano")
(code-etex-tla "caeh"  "2023-caepro-hist")
(code-etex-tla "np"    "2023-caepro-nplcs")
(code-etex-tla "nplcs" "2023-caepro-nplcs")

;; (c22rp)
;; CaepIssoMuda (caep)
;;              (caerp)
;;              (caedp)
;;              (caevp)
;; CaepPlano    (caeplp)
;; CaepDiff2    (caehp)

(defun caeb () (interactive) (find-TH "2023-caepro"))

(defalias 'av 'eev-avadj-mode)
(defun did () (interactive) (find-angg "ORG/didatica.org"))
(defun ic  () (interactive) (find-angg "ORG/indice-caepro.org"))

(defun a1 () (interactive) (find-angg "LUA/Ast1.lua"))
(defun a2 () (interactive) (find-angg "LUA/Ast2.lua"))
(defun a3 () (interactive) (find-angg "LUA/Ast3.lua"))
(defun c3 () (interactive) (find-angg "LUA/Caepro3.lua"))
(defun c4 () (interactive) (find-angg "LUA/Caepro4.lua"))
(defun c5 () (interactive) (find-angg "LUA/Caepro5.lua"))
(defun g2 () (interactive) (find-angg "LUA/Gram2.lua"))
(defun g3 () (interactive) (find-angg "LUA/Gram3.lua"))

(defun e1 () (interactive) (find-angg "LUA/ELpeg1.lua"))
(defun e2 () (interactive) (find-angg "LUA/ELpeg2.lua"))
(defun ec () (interactive) (find-angg "LUA/ELpeg-cme1.lua"))
(defun el () (interactive) (find-angg "LUA/ELpeg-lambda1.lua"))
(defun s1 () (interactive) (find-angg "LUA/Subst1.lua"))
(defun s2 () (interactive) (find-angg "LUA/Show2.lua"))
(defun p2 () (interactive) (find-angg "LUA/Pict2e2.lua"))
(defun ps1 () (interactive) (find-angg "LUA/PictShow1.lua"))
(defun es1 () (interactive) (find-angg "LUA/Estatistica1.lua"))

(code-etex-tla "ends"          "2023ends-and-coends")
(code-etex-tla "ere"           "2023emacsconf-repls")
(code-etex-tla "emacsconf2023" "2023emacsconf-repls")
(code-etex-tla "loe"           "2023loeliger")
(code-etex-tla "loeeg"         "2024eev-git")
(code-etex-tla "visc"          "2024visualizing-captures")
(code-etex-tla "pae"           "2024panic-at-equalities")

;; (find-angg "LUA/Caepro1.lua" "ee-caepro-run")
;; (defun eejump-9  () (ee-caepro-run nil))
;; (defun eejump-99 () (ee-caepro-debug nil))

(code-c-d "SUBS" "~/SUBTITLES/" :anchor)
;; (find-SUBSfile "")

;; (find-eevgit "eevgitlib1.sh")
(code-c-d "eevgit" "$S/http/anggtwu.net/GIT/" :anchor)
(code-c-d "eevgit"                   "~/GIT/" :anchor)

(code-etex-tla "rad"  "2024-rad2023")
(code-etex-tla "vent" "2024-ventilador")
(code-etex-tla "pts" "2024pts")


' (require 'find-lgrep-links)  ; (find-angg "elisp/find-lgrep-links.el")


;; (find-angg "elisp/advogados.el")



;;
;; Local Variables:
;; coding:               utf-8-unix
;; End: