branch: externals/eev commit 939c4c47d597de8889dfaac77e2df81864369d2e Author: Eduardo Ochs <eduardoo...@gmail.com> Commit: Eduardo Ochs <eduardoo...@gmail.com>
Added `find-wgeteevsubtitles-links'. --- ChangeLog | 12 + VERSION | 4 +- eev-kla.el | 9 +- eev-tlinks.el | 86 ++++- eev-videolinks.el | 4 +- eev-wconfig.el | 949 +++++++++++++++++++++++++++++++++++++++--------------- 6 files changed, 789 insertions(+), 275 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6da1738cf2..e23eb03d21 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2022-05-01 Eduardo Ochs <eduardoo...@gmail.com> + + * eev-tlinks.el (find-wgeteevsubtitles-links) + (ee-wgeteevsubtitles-cmds): new functions. + (ee-1stclassvideos-dlsubs): new function. + (ee-find-1stclassvideo-links): use `ee-1stclassvideos-dlsubs'. + + * eev-videolinks.el (ee-1stclassvideos-info): added `:subs ".vtt"' + to some of the entries. + + * eev-wconfig.el: many changes. + 2022-04-19 Eduardo Ochs <eduardoo...@gmail.com> * eev-videolinks.el (ee-1stclassvideos-info): added diff --git a/VERSION b/VERSION index d58e87356b..6142d0d337 100644 --- a/VERSION +++ b/VERSION @@ -1,2 +1,2 @@ -Tue Apr 19 21:12:46 GMT 2022 -Tue Apr 19 18:12:46 -03 2022 +Sun May 1 06:56:03 GMT 2022 +Sun May 1 03:56:03 -03 2022 diff --git a/eev-kla.el b/eev-kla.el index 2308f21cfb..c9be423c4d 100644 --- a/eev-kla.el +++ b/eev-kla.el @@ -1,6 +1,6 @@ ;;; eev-kla.el -- kill link to anchor and friends. -*- lexical-binding: nil; -*- -;; Copyright (C) 2012-2021 Free Software Foundation, Inc. +;; Copyright (C) 2022 Free Software Foundation, Inc. ;; ;; This file is part of GNU eev. ;; @@ -24,13 +24,8 @@ ;; ;; Latest version: <http://angg.twu.net/eev-current/eev-kla.el> ;; htmlized: <http://angg.twu.net/eev-current/eev-kla.el.html> -;; See also: <http://angg.twu.net/eev-current/eev-readme.el.html> -;; <http://angg.twu.net/eev-intros/find-eev-intro.html> -;; <http://angg.twu.net/eev-intros/find-psne-intro.html> -;; <http://angg.twu.net/eev-intros/find-prepared-intro.html> +;; See also: <http://angg.twu.net/eev-intros/find-eev-intro.html> ;; (find-eev-intro) -;; (find-psne-intro) -;; (find-prepared-intro) ;; «.intro» (to "intro") ;; «.test» (to "test") diff --git a/eev-tlinks.el b/eev-tlinks.el index 546120080d..3c8e3d4d48 100644 --- a/eev-tlinks.el +++ b/eev-tlinks.el @@ -19,7 +19,7 @@ ;; ;; Author: Eduardo Ochs <eduardoo...@gmail.com> ;; Maintainer: Eduardo Ochs <eduardoo...@gmail.com> -;; Version: 20220413 +;; Version: 20220501 ;; Keywords: e-scripts ;; ;; Latest version: <http://angg.twu.net/eev-current/eev-tlinks.el> @@ -97,6 +97,7 @@ ;; «.hardcoded-paths» (to "hardcoded-paths") ;; «.find-eev-video-links» (to "find-eev-video-links") ;; «.find-eevshortvideo-links» (to "find-eevshortvideo-links") +;; «.find-wgeteevsubtitles-links» (to "find-wgeteevsubtitles-links") ;; ;; «.find-latex-links» (to "find-latex-links") ;; «.find-lua-links» (to "find-lua-links") @@ -1911,6 +1912,62 @@ and: (find-video-links-intro \\\"7. `find-eev-video'\\\") +;; «find-wgeteevsubtitles-links» (to ".find-wgeteevsubtitles-links") +;; Skel: (find-find-links-links-new "wgeteevsubtitles" "stem exts" "cmds") +;; Tests: (find-wgeteevsubtitles-links "emacsconf2021" ".vtt") +;; (find-estring (ee-wgeteevsubtitles-cmds "emacsconf2021" ".vtt .srt")) +;; See: (find-wgetnode "Download Options" "-nc" "--no-clobber") +;; (find-wgetnode "Download Options" "-N" "--timestamping") +;; (find-wgetnode "Time-Stamping") +;; +(defun find-wgeteevsubtitles-links (&optional stem exts &rest pos-spec-list) +"Visit a temporary buffer containing a script for downloading subtitles. +The script downloads an eev video and it subtitles. For example, +if STEM is \"emacsconf2021\" and EXTS is \".vtt .srt\" then the +main part of the script will be:\n + mkdir -p $S/http/angg.twu.net/eev-videos/ + cd $S/http/angg.twu.net/eev-videos/ + wget -nc http://angg.twu.net/eev-videos/emacsconf2021.mp4 + wget -N http://angg.twu.net/eev-videos/emacsconf2021.vtt + wget -N http://angg.twu.net/eev-videos/emacsconf2021.srt\n +The subtitles are downloaded again if the ones in +http://angg.twu.net/ are newer than the local copy." + (interactive) + (setq stem (or stem "{stem}")) + (setq exts (or exts "{exts}")) + (let* ((cmds (ee-wgeteevsubtitles-cmds stem exts))) + (apply + 'find-elinks + `((find-wgeteevsubtitles-links ,stem ,exts ,@pos-spec-list) + ;; Convention: the first sexp always regenerates the buffer. + (find-efunction 'find-wgeteevsubtitles-links) + "" + ,(ee-template0 "\ + (eepitch-shell2) + (eepitch-kill) + (eepitch-shell2) +{cmds} +# (find-fline \"$S/http/angg.twu.net/eev-videos/\" \"{stem}.mp4\") +# (find-video \"$S/http/angg.twu.net/eev-videos/{stem}.mp4\") +") + ) + pos-spec-list))) + +(defun ee-wgeteevsubtitles-cmds (stem exts) + "An internal function used by `find-wgeteevsubtitles-links'." + (let* ((dir "$S/http/angg.twu.net/eev-videos/") + (url- (concat "http://angg.twu.net/eev-videos/" stem)) + (f (lambda (ext) (format "wget -N %s%s\n" url- ext))) + (wgets (mapconcat f (split-string exts)))) + (ee-template0 "\ +mkdir -p {dir} +cd {dir} +wget -nc {url-}.mp4 +{wgets}\ +"))) + + + @@ -2947,7 +3004,8 @@ This function is used by `ee-0x0-upload-region'." (comment (ee-1stclassvideos-field c :comment)) (lang (ee-1stclassvideos-field c :lang)) (mp4stem (ee-1stclassvideos-mp4stem c)) - (hash (ee-1stclassvideos-hash c))) + (hash (ee-1stclassvideos-hash c)) + (dlsubs (ee-1stclassvideos-dlsubs c))) (ee-template0 "\ ;; Title: {title} ;; MP4: {mp4} @@ -2966,6 +3024,7 @@ This function is used by `ee-0x0-upload-region'." ;; http://angg.twu.net/.emacs.videos.html#{c} ;; (find-angg \".emacs.videos\" \"{c}\") ;; (find-angg-es-links) +{dlsubs}\ ;; See: ;; (find-video-links-intro \"9. First-class videos\") @@ -2994,6 +3053,26 @@ For more info on this particular video, run: (find-eev-video \"{mp4stem}\" \"{hash}\" time)) "))) +;; Tests: (ee-1stclassvideos-dlsubs "2022pict2elua") +;; (find-1stclassvideo-links "2022pict2elua") +;; (ee-1stclassvideos-dlsubs "2021workshop6") +;; (find-1stclassvideo-links "2021workshop6") +;; +(defun ee-1stclassvideos-dlsubs (c) + "An internal function used by `find-1stclassvideo-links'." + (let ((exts (ee-1stclassvideos-field c :subs))) + (if (eq exts nil) + "" + (let ((mp4stem (ee-1stclassvideos-mp4stem c))) + (ee-template0 "\ +;; +;; Download subtitles: +;; (find-wgeteevsubtitles-links \"{mp4stem}\" \"{exts}\") +") + )))) + + + ;; «find-1stclassvideoindex» (to ".find-1stclassvideoindex") ;; «find-1stclassvideodef» (to ".find-1stclassvideodef") @@ -3187,9 +3266,10 @@ pip3 install {pkg} (eepitch-python) import youtube_transcript_downloader url = \"http://www.youtube.com/watch?v={hash}\" +f = \"find-{c}video\" tr = youtube_transcript_downloader.get_transcript(url) trits0 = tr.items() -trits1 = '\\n'.join(('% (find-{c}video \"' + key + '\" \"' + text + '\")' for key, text in trits0)) +trits1 = '\\n'.join(('% (' + f + ' \"' + key + '\" \"' + text + '\")' for key, text in trits0)) print(trits1) ") diff --git a/eev-videolinks.el b/eev-videolinks.el index f19735f004..497be53dc1 100644 --- a/eev-videolinks.el +++ b/eev-videolinks.el @@ -19,7 +19,7 @@ ;; ;; Author: Eduardo Ochs <eduardoo...@gmail.com> ;; Maintainer: Eduardo Ochs <eduardoo...@gmail.com> -;; Version: 20220419 +;; Version: 20220501 ;; Keywords: e-scripts ;; ;; Latest version: <http://angg.twu.net/eev-current/eev-videolinks.el> @@ -618,6 +618,7 @@ For more info on this particular video, run: :page "http://angg.twu.net/emacsconf2021.html" :date "2021nov21" :length "6:04" + :subs ".vtt" :comment "START BY THIS VIDEO!!!") ;; ;; «eev2021b» (to ".eev2021b") @@ -885,6 +886,7 @@ For more info on this particular video, run: :page "http://angg.twu.net/pict2e-lua.html" :date "2022apr18" :length "8:13" + :subs ".vtt" :comment "A very good demo of test blocks.") ;; )) diff --git a/eev-wconfig.el b/eev-wconfig.el index f2549636df..414a924d1e 100644 --- a/eev-wconfig.el +++ b/eev-wconfig.el @@ -19,7 +19,7 @@ ;; ;; Author: Eduardo Ochs <eduardoo...@gmail.com> ;; Maintainer: Eduardo Ochs <eduardoo...@gmail.com> -;; Version: 20220416 +;; Version: 20220501 ;; Keywords: e-scripts ;; ;; Latest version: <http://angg.twu.net/eev-current/eev-wconfig.el> @@ -27,72 +27,141 @@ ;; See also: <http://angg.twu.net/eev-current/eev-readme.el.html> ;; <http://angg.twu.net/eev-intros/find-eev-intro.html> ;; <http://angg.twu.net/eev-intros/find-psne-intro.html> -;; <http://angg.twu.net/eev-intros/find-prepared-intro.html> ;; (find-eev-intro) ;; (find-psne-intro) -;; (find-prepared-intro) ;;; Comment: -;; This file is not loaded by default. To use it, run: +;; «intro» (to ".intro") +;; +;; 1. Introduction +;; =============== +;; Some parts of eev call external programs: +;; +;; (find-eev-quick-intro "3.1. Non-elisp hyperlinks") +;; (find-eev-quick-intro "3.1. Non-elisp hyperlinks" "firefox") +;; (find-eev-quick-intro "3.1. Non-elisp hyperlinks" "chrome") +;; (find-eev-quick-intro "6.2. Other targets") +;; (find-eev-quick-intro "6.2. Other targets" "python") +;; (find-psne-intro "1. Local copies of files from the internet") +;; (find-psne-intro "1. Local copies of files from the internet" "wget") +;; (find-video-links-intro "1. Introduction") +;; (find-video-links-intro "1. Introduction" "[Video links:]") +;; (find-audiovideo-intro "4.3. A demo") +;; (find-audiovideo-intro "4.3. A demo" "mpv") +;; (find-pdf-like-intro "3. Hyperlinks to PDF files") +;; (find-pdf-like-intro "3. Hyperlinks to PDF files" "xpdf") +;; (find-pdf-like-intro "3. Hyperlinks to PDF files" "pdftotext") +;; +;; On *NIX systems the installation of these programs is easy, and no +;; configuration is needed - if "firefox", "google-chrome", "python3", +;; "wget", "xpdf", "pdftotext", and "mpv" are in the path then eev +;; simply calls them with the right arguments, and (usually) +;; everything works. +;; +;; On M$ Windows things are much harder: 1) eev needs to know the full +;; paths of the ".exe"s of these programs, 2) wget and pdftotext are +;; hard to install, 3) it is better to use a browser to open PDFs, 4) +;; I don't have access to a machine with Windows, 5) I have very +;; little access to people who use Windows and who can be convinced to +;; test this... +;; +;; This file is an attempt to solve this problem both "without magic" +;; and "with very little magic". Remember that: +;; +;; "Any sufficiently advanced technology +;; is indistinguishable from magic" +;; +;; Here I will use the term "magic" as a shorthand for "black box". +;; A black box that is hard to open, and hard to look inside, is an +;; "advanced technology that is indistinguishable from magic". +;; +;; In dec/2021 I recorded a video, called "Org for Non-Users", +;; +;; http://angg.twu.net/2021-org-for-non-users.html +;; (find-1stclassvideo-links "2021orgfornonusers") +;; (find-1stclassvideoindex "2021orgfornonusers") +;; +;; in which I explained why I always found Org so hard to learn. Many +;; things in Org are implemented in ways that I don't understand, and +;; practically every time that I try to learn more features of Org I +;; start to ask questions like "hey, how is this implemented?", and I +;; get stuck trying to answer these "non-user" questions instead of +;; simply learning how to use the feature "as a user"... +;; +;; In the language of black boxes what happens when I try to learn Org +;; is this. I try to learn a new feature; I see lots of black boxes; I +;; try to open these black boxes, and fail miserably; I get frustrated +;; and exhausted; I postpone learning that feature to another day. +;; +;; I have the same relationship with `M-x customize'. +;; +;; The most "user-friendly" way to configure Emacs is with +;; `customize'. Try: +;; +;; (eek "M-x customize") +;; (customize-group 'processes) +;; (customize-group 'shell) +;; (customize-variable 'explicit-bash-args) +;; (customize-face 'eev-glyph-face-red) +;; +;; Over the years I have experimented with several alternatives to +;; customize that "use less magic". This page, ;; -;; (require 'eev-wconfig) -;; (find-wconfig-links) +;; http://angg.twu.net/eev-customize.html ;; -;; Or: +;; from april/2022, describe some of my experiments. ;; -;; (load (buffer-file-name)) -;; (find-wconfig-links) -;; (find-wconfig-wget-links) -;; (find-wconfig-shell-links) -;; (find-wconfig-pdf-links) -;; (find-wconfig-lua-links) -;; (find-wconfig-mpv-links) -;; -;; This is another attempt - based on ideas that I had in april/2022 - -;; to make eev easy to configure on M$ Windows. This attempt is mostly -;; targeted to "non-users", and it follows many of the principles that -;; I explained in these two videos, -;; -;; Title: Org for Non-Users (2021) -;; Page: http://angg.twu.net/2021-org-for-non-users.html -;; Play: (find-2021orgfornonusersvideo "0:00") -;; Info: (find-1stclassvideo-links "2021orgfornonusers") -;; Index: (find-1stclassvideoindex "2021orgfornonusers") -;; -;; Title: Why eev has a weird elisp tutorial and how to use it -;; Page: http://angg.twu.net/find-elisp-intro.html -;; Play: (find-2022findelispintrovideo "0:00") -;; Info: (find-1stclassvideo-links "2022findelispintro") -;; Index: (find-1stclassvideoindex "2022findelispintro") -;; -;; and in this page: +;; I started to work on eev-wconfig.el a few days after making that +;; page. Eev-wconfig.el uses all the ideas there, plus a few new ones. ;; -;; http://angg.twu.net/eev-customize.html +;; Eev-wconfig can be used both "with no magic" and "with some magic". +;; Both ways create temporary buffers that have parts that perform +;; configuration steps and parts with elisp hyperlinks "that open the +;; (black) boxes" and explain what the configuration steps do. +;; +;; +;; «usage» (to ".usage") +;; +;; 2. Usage +;; ======== +;; This file is not loaded by default. To use it, run: +;; +;; (require 'eev-wconfig) +;; (find-wconfig-links) ;; -;; More precisely, this is targeted to people who like to "open the -;; lid" to see how things look inside, and who don't mind if at first -;; they understand only a bit of what they see; and who are still -;; using mostly M$ Windows, but who are trying to use GNU/Linux more. -;; I believe that these people will find this approach much more -;; interesting and fun than my previous attempts. +;; The `(find-wconfig-links)' will create a temporary buffer with +;; instructions. ;; -;; At this moment (2022apr16) I am testing this with a friend with -;; whom I interact mostly via Telegram and IRC. The docs are very -;; incomplete! +;; I am working on a video about this. I will add more instructions +;; after finishing the video. + ;; Index: -;; «.find-wconfig-links» (to "find-wconfig-links") -;; «.find-wconfig-wget-links» (to "find-wconfig-wget-links") -;; «.find-wconfig-shell-links» (to "find-wconfig-shell-links") -;; «.find-wconfig-pdf-links» (to "find-wconfig-pdf-links") -;; «.find-wconfig-lua-links» (to "find-wconfig-lua-links") -;; «.find-wconfig-mpv-links» (to "find-wconfig-mpv-links") +;; «.intro» (to "intro") +;; «.usage» (to "usage") +;; «.find-wconfig-links» (to "find-wconfig-links") +;; «.find-wconfig-browser-links» (to "find-wconfig-browser-links") +;; «.find-wconfig-wget-links» (to "find-wconfig-wget-links") +;; «.find-wconfig-shell-links» (to "find-wconfig-shell-links") +;; «.find-wconfig-lua-links» (to "find-wconfig-lua-links") +;; «.find-wconfig-mpv-links» (to "find-wconfig-mpv-links") +;; «.find-wconfig-magic-links» (to "find-wconfig-magic-links") +;; «.ee-wconfig-run-magic» (to "ee-wconfig-run-magic") +;; «.find-wconfig-undo-links» (to "find-wconfig-undo-links") + +;;; __ __ __ _ +;;; \ \ / /__ ___ _ __ / _(_) __ _ +;;; \ \ /\ / / __/ _ \| '_ \| |_| |/ _` | +;;; \ V V / (_| (_) | | | | _| | (_| | +;;; \_/\_/ \___\___/|_| |_|_| |_|\__, | +;;; |___/ +;; ;; «find-wconfig-links» (to ".find-wconfig-links") ;; Skel: (find-find-links-links-new "wconfig" "" "") ;; Test: (find-wconfig-links) @@ -100,21 +169,117 @@ (defun find-wconfig-links (&rest pos-spec-list) "Visit a temporary buffer containing hyperlinks for wconfig." (interactive) - (apply - 'find-elinks-elisp - `((find-wconfig-links ,@pos-spec-list) - ;; Convention: the first sexp always regenerates the buffer. - (find-efunction 'find-wconfig-links) - "" - ,(ee-template0 "\ + (let ((ee-buffer-name (or ee-buffer-name "*(find-wconfig-links)*"))) + (apply + 'find-elinks-elisp + `((find-wconfig-links ,@pos-spec-list) + ;; Convention: the first sexp always regenerates the buffer. + (find-efunction 'find-wconfig-links) + "" + ,(ee-template0 "\ +;; See: (find-eev \"eev-wconfig.el\" \"intro\") + + +;; To configure eev on Windows \"without magic\", follow +;; the instructions in each of the five wconfigs belows: + +(find-wconfig-browser-links) (find-wconfig-wget-links) (find-wconfig-shell-links) -(find-wconfig-pdf-links) (find-wconfig-lua-links) (find-wconfig-mpv-links) + + +;; To configure eev on Windows \"with some magic\", +;; follow the instructions in: + +(find-wconfig-magic-links) + ") - ) - pos-spec-list)) + ) + pos-spec-list))) + + + + +;;; ____ +;;; | __ ) _ __ _____ _____ ___ _ __ +;;; | _ \| '__/ _ \ \ /\ / / __|/ _ \ '__| +;;; | |_) | | | (_) \ V V /\__ \ __/ | +;;; |____/|_| \___/ \_/\_/ |___/\___|_| +;;; +;; «find-wconfig-browser-links» (to ".find-wconfig-browser-links") +;; Skel: (find-find-links-links-new "wconfig-browser" "" "") +;; Test: (find-wconfig-browser-links) +;; (defun edt () (interactive) (eval-defun nil) (find-wconfig-browser-links)) +;; +(defun find-wconfig-browser-links (&rest pos-spec-list) +"Visit a temporary buffer containing a script for configuring the browser." + (interactive) + (let ((ee-buffer-name (or ee-buffer-name "*(find-wconfig-browser-links)*"))) + (apply + 'find-elinks-elisp + `((find-wconfig-browser-links ,@pos-spec-list) + ;; Convention: the first sexp always regenerates the buffer. + (find-efunction 'find-wconfig-browser-links) + "" + ,(ee-template0 "\ + +;; 0. The variable +;; =============== +;; See: (find-elisp-intro \"5. Variables\") +;; The current value of the variable `ee-googlechrome-program' is: +(setq ee-googlechrome-program + \"{ee-googlechrome-program}\") + + +;; 1. Configure Chrome +;; =================== +;; Replace the string below by the full path of chrome.exe +;; and then execute the sexp below with `M-e'. +;; Note that you NEED to replace all the `\\'s in it by `/'s. +;; +(setq ee-googlechrome-program + \"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe\") + + +;; 2. Test +;; ======= +;; Try: (find-googlechrome \"https://www.lua.org/\") + + +;; 3. Update this page +;; =================== +;; See: (find-links-intro \"5. The first line regenerates the buffer\") +;; This page is generated by a template. Run the sexp in the +;; first line to regenerate this page and to make the first and +;; the last `setq's display the current value of the +;; variable `ee-googlechrome-program'. + + +;; 4. Save your configuration +;; ========================== +;; The \"init file\" is explained here: (find-enode \"Init File\") +;; Hint: `M-5 M-5 M-j' runs: (find-fline \"~/.emacs\") +;; See: (eek \"M-j\") +;; Try: (eek \"M-5 M-5 M-j\") +;; +;; Copy the updated version of the block below - +;; including the three commented lines at the top - +;; to your init file. + +;; See: (find-eev \"eev-load.el\" \"autoloads\") +;; (find-eev \"eev-wconfig.el\" \"intro\") +;; (find-wconfig-browser-links) +(require 'eev-load) +(require 'eev-wconfig) +(setq ee-googlechrome-program + \"{ee-googlechrome-program}\") + +") + ) + pos-spec-list))) + @@ -133,84 +298,154 @@ (defun find-wconfig-wget-links (&rest pos-spec-list) "Visit a temporary buffer containing a script for configuring wget on Windows." (interactive) - (apply - 'find-elinks-elisp - `((find-wconfig-wget-links ,@pos-spec-list) - ;; Convention: the first sexp always regenerates the buffer. - (find-efunction 'find-wconfig-wget-links) - "" - ,(ee-template0 "\ + (let ((ee-buffer-name (or ee-buffer-name "*(find-wconfig-wget-links)*"))) + (apply + 'find-elinks-elisp + `((find-wconfig-wget-links ,@pos-spec-list) + ;; Convention: the first sexp always regenerates the buffer. + (find-efunction 'find-wconfig-wget-links) + "" + ,(ee-template0 "\ +;; Note: only run this after configuring the browser! +;; See: (find-wconfig-browser-links) + ;; 1. Download wget.exe ;; ==================== -;; Run the sexps below to download a wget for Windows and put it -;; in ~/bin/wget.exe. For more info on that wget.exe, see: -;; http://angg.twu.net/2021-oficina/ -;; http://angg.twu.net/2021-oficina/README +;; Run each of the uncommented sexps below with `M-e'. +;; Note that some of the sexps are longer than one line. +;; See: (find-eev-quick-intro \"2. Evaluating Lisp\") +;; (find-eev-quick-intro \"2. Evaluating Lisp\" \"M-0 M-e\") ;; +;; The sexps below will download a wget.exe from: +;; http://angg.twu.net/eev-wconfig/ +;; And put it in: +;; (find-fline \"~/eev-wconfig/\") + (require 'eww) (defun ee-download-with-eww (url dir) (url-retrieve url #'eww-download-callback (list url dir))) -;; -(mkdir \"~/bin/\" t) -(delete-file \"~/bin/wget.exe\") -(ee-download-with-eww \"http://angg.twu.net/2021-oficina/wget.exe\" \"~/bin/\") -;; -;; Tests: -;; (find-fline \"~/bin/\") -;; (find-fline \"~/bin/\" \"wget.exe\") -;; (find-callprocess \"~/bin/wget.exe --help\") -;; and: + +(mkdir \"~/eev-wconfig/\" t) +(delete-file \"~/eev-wconfig/wget.exe\") +(ee-download-with-eww \"http://angg.twu.net/eev-wconfig/wget.exe\" + \"~/eev-wconfig/\") + + +;; 2. Use wget.exe to download some other files +;; ============================================ +;; See: (find-eev-quick-intro \"6. Controlling shell-like programs\") +;; (find-eev-quick-intro \"6.1. The main key: <F8>\") +;; Run the eepitch block below with `<f8>'s. (eepitch-eshell) (eepitch-kill) (eepitch-eshell) -rm --help -ls --help +mkdir -p ~/eev-wconfig/ +rm -fv ~/eev-wconfig/README-wconfig.el +rm -fv ~/eev-wconfig/pdftotext.exe +rm -fv ~/eev-wconfig/lua52.exe +rm -fv ~/eev-wconfig/lua52.dll +rm -fv ~/eev-wconfig/lua53.exe +rm -fv ~/eev-wconfig/lua53.dll +rm -fv ~/eev-wconfig/lua54.exe +rm -fv ~/eev-wconfig/lua54.dll +cd ~/eev-wconfig/ +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/README-wconfig.el +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/pdftotext.exe +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/lua52.exe +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/lua52.dll +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/lua53.exe +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/lua53.dll +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/lua54.exe +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/lua54.dll + +# (find-callprocess0 '(\"~/eev-wconfig/wget.exe\" \"--help\")) +# (find-callprocess0 '(\"~/eev-wconfig/pdftotext.exe\" \"--help\")) +# (find-callprocess0 '(\"~/eev-wconfig/lua52.exe\" \"-v\")) +# (find-callprocess0 '(\"~/eev-wconfig/lua53.exe\" \"-v\")) +# (find-callprocess0 '(\"~/eev-wconfig/lua54.exe\" \"-v\")) + +mkdir -p ~/eev-wconfig/ +rm -fv ~/eev-wconfig/Coetzee99.pdf +rm -fv ~/eev-wconfig/2022dragABC.mp4 +cd ~/eev-wconfig/ +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/Coetzee99.pdf +~/eev-wconfig/wget.exe http://angg.twu.net/eev-wconfig/2022dragABC.mp4 + + + + +;; 3. Make `find-wget' use ~/eev-wconfig/wget.exe +;; ============================================== +;; Run this sexp with `M-e': + +(setq ee-wget-program \"~/eev-wconfig/wget.exe\") + +;; Then run the tests in the second sexp below: +;; (find-eev \"eev-plinks.el\" \"find-wget\") +;; (find-eev \"eev-plinks.el\" \"find-wget\" \";; Tests:\") +;; Some of the tests point to \"anchors\". +;; The concept of \"anchor\" is explained here: +;; (find-eev-quick-intro \"8. Anchors\") -ls ~/bin/ -~/bin/wget.exe --version -~/bin/wget.exe --help -cd ~/bin/ -rm -fv README -~/bin/wget.exe http://angg.twu.net/2021-oficina/README -ls -lF README -ls -lF ~/bin/README +;; 4. Use the browser as a PDF viewer +;; ================================== +;; Run this sexp with `M-e': -;; 2. Configure `find-wget' -;; ======================== -;; Run this: -;; -(setq ee-wget-program \"~/bin/wget.exe\") -;; -;; To test it, run the tests in the sections \"Tests:\" here: -;; (find-eev \"eev-plinks.el\" \"find-wget\") -;; (find-eev \"eev-plinks.el\" \"find-wget\" \"Tests:\") -;; The concept of \"anchor\" is explained here: -;; (find-eev-quick-intro \"8. Anchors\") +(defalias 'find-pdf-page 'find-googlechrome-page) +;; Tests: +;; (find-googlechrome \"~/eev-wconfig/Coetzee99.pdf\") +;; (find-pdf-page \"~/eev-wconfig/Coetzee99.pdf\") +;; (find-pdf-page \"~/eev-wconfig/Coetzee99.pdf\" 3) +;; For the technical details, see: +;; (find-efunctiondescr 'find-pdf-page) +;; (find-eev \"eev-pdflike.el\" \"find-googlechrome-page\") +;; (find-eev \"eev-pdflike.el\" \"change-default-viewer\") -;; 3. Save the settings in your ~/.emacs -;; ===================================== -;; If all the tests above worked, put the two lines below -;; in your ~/.emacs: +;; 5. Use ~/eev-wconfig/pdftotext.exe to view PDFs as text +;; ======================================================= +;; Run this sexp with `M-e': -;; See: (find-wconfig-wget-links) -(setq ee-wget-program \"~/bin/wget.exe\") +(setq ee-pdftotext-program \"~/eev-wconfig/pdftotext.exe\") + +;; Tests: +;; (find-pdf-text \"~/eev-wconfig/Coetzee99.pdf\") +;; (find-pdf-text \"~/eev-wconfig/Coetzee99.pdf\" 3) +;; For the technical details, see: +;; (find-eev \"eev-pdflike.el\" \"find-pdftotext-text\") -;; Random notes -;; ============ -;; The two sexps below undoes the configurations above: -;; (setq ee-wget-program \"wget\") +;; 6. Test if the browser can play videos +;; ====================================== +;; Try this: +;; (find-googlechrome \"~/eev-wconfig/2022dragABC.mp4\") +;; The browser doesn't support \"time offsets\" - see: +;; (find-audiovideo-intro \"1. Time offsets\") +;; We will need to install mpv for that. + + + + +;; 7. Save these configs in your init file +;; ======================================= +;; This is similar to: (find-wconfig-browser-links 2 \"4. Save\") +;; Save the block below - including the comment - to your ~/.emacs: + +;; See: (find-wconfig-wget-links) +(setq ee-wget-program \"~/eev-wconfig/wget.exe\") +(setq ee-pdftotext-program \"~/eev-wconfig/pdftotext.exe\") +(defalias 'find-pdf-page 'find-googlechrome-page) + ") - ) - pos-spec-list)) + ) + pos-spec-list))) @@ -230,32 +465,27 @@ ls -lF ~/bin/README (defun find-wconfig-shell-links (&rest pos-spec-list) "Visit a temporary buffer containing a script for configuring eshell on Windows." (interactive) - (apply - 'find-elinks-elisp - `((find-wconfig-shell-links ,@pos-spec-list) - ;; Convention: the first sexp always regenerates the buffer. - (find-efunction 'find-wconfig-shell-links) - "" - ,(ee-template0 "\ + (let ((ee-buffer-name (or ee-buffer-name "*(find-wconfig-shell-links)*"))) + (apply + 'find-elinks-elisp + `((find-wconfig-shell-links ,@pos-spec-list) + ;; Convention: the first sexp always regenerates the buffer. + (find-efunction 'find-wconfig-shell-links) + "" + ,(ee-template0 "\ ;; Note: only run this after configuring wget! ;; See: (find-wconfig-wget-links) -;; (find-windows-beginner-intro \"5.5. Shell Mode\") -;; (find-eev-quick-intro \"6. Controlling shell-like programs\") -;; (find-eepitch-intro \"1.2. Two targets\") -;; (find-node \"(eshell)Top\") -;; (find-node \"(eshell)Command Index\") - - ;; 1. Make Eshell use wget.exe ;; =========================== -;; Run this to configure Eshell to use ~/bin/wget.exe: -;; -;; (require 'eshell) -;; (require 'em-alias) -;; (eshell/alias \"wget\" \"~/bin/wget.exe $*\") -;; +;; Run the sexps below to configure Eshell to use ~/eev-wconfig/wget.exe: + +(require 'eshell) +(require 'em-alias) +(eshell/alias \"wget\") +(eshell/alias \"wget\" \"~/eev-wconfig/wget.exe $*\") + ;; The block above only need to be run once. ;; For the technical details, see: ;; @@ -275,7 +505,7 @@ ls -lF ~/bin/README (eepitch-kill) (eepitch-eshell) which wget -~/bin/wget.exe --version +~/eev-wconfig/wget.exe --version wget --version @@ -293,108 +523,40 @@ wget --version - (eepitch-eshell) - (eepitch-kill) - (eepitch-eshell) -which wget - - (eepitch-shell) - (eepitch-kill) - (eepitch-shell) -which wget - - -;; 3. Save this config in your ~/.emacs -;; ==================================== -;; If the two eepitch blocks above behaved in the same way, -;; then put this block of four lines in your ~/.emacs: - -;; See: (find-wconfig-shell-links) -(defun eepitch-shell () (interactive) (eepitch-eshell)) -(defun eepitch-shell2 () (interactive) (eepitch-eshell2)) -(defun eepitch-shell3 () (interactive) (eepitch-eshell3)) - - - -;; 4. Note for *nix users testing this -;; =================================== -;; The configuration above can be reverted with: -;; -(defun eepitch-shell () (interactive) (eepitch '(shell))) -(defun eepitch-shell2 () (interactive) (eepitch '(shell \"*shell 2*\"))) -(defun eepitch-shell2 () (interactive) (eepitch '(shell \"*shell 3*\"))) - -") - ) - pos-spec-list)) - - - -;;; ____ _ __ -;;; | _ \ __| |/ _| -;;; | |_) / _` | |_ -;;; | __/ (_| | _| -;;; |_| \__,_|_| -;;; -;; «find-wconfig-pdf-links» (to ".find-wconfig-pdf-links") -;; Skel: (find-find-links-links-new "wconfig-pdf" "" "") -;; Test: (find-wconfig-pdf-links) -;; (defun edt () (interactive) (eval-defun nil) (find-wconfig-pdf-links)) -;; -(defun find-wconfig-pdf-links (&rest pos-spec-list) -"Visit a temporary buffer containing hyperlinks for wconfig-pdf." - (interactive) - (apply - 'find-elinks-elisp - `((find-wconfig-pdf-links ,@pos-spec-list) - ;; Convention: the first sexp always regenerates the buffer. - (find-efunction 'find-wconfig-pdf-links) - "" - ,(ee-template0 "\ -;; Note: only run this after configuring -;; the pdf viewer, wget, and Eshell! See: -;; (find-newbrowser-links nil nil nil \"3. Configure `find-pdf-page'\") -;; (find-wconfig-wget-links) -;; (find-wconfig-shell-links) - +;; 3. Configure the `echo' of eshell +;; ================================= +;; See: (find-windows-beginner-intro \"5.6.1. Echo in Eshell\") +(defun ee-find-psne-echo-options () \"-N\") -;; 1. Download pdftotext and a PDF file -;; ==================================== -;; Run: - (eepitch-eshell) - (eepitch-kill) - (eepitch-eshell) -cd ~/bin/ -rm -fv ~/bin/pdftotext.exe -wget http://angg.twu.net/2021-oficina/pdftotext.exe -rm -fv ~/Coetzee99.pdf -cd -wget https://tannerlectures.utah.edu/_resources/documents/a-to-z/c/Coetzee99.pdf +;; 4. Check if `M-x brep' and psne-ing work +;; ======================================== +;; See: (find-psne-intro) +;; and run the test in section 3: +;; (find-psne-intro \"3. The new way: `M-x brep'\") +;; Also, check if in the temporary buffer generated by this sexp: +;; (find-psne-links \"https://www.lua.org/index.html\") +;; you get an \"echo -N\" or just an \"echo\". +;; You should get \"echo -N\". -# Tests: -~/bin/pdftotext.exe --help -# -# (find-callprocess \"~/bin/pdftotext.exe --help\") -;; 2. Configure pdftotext -;; ====================== -;; Run this: -(setq ee-pdftotext-program \"~/bin/pdftotext.exe\") -;; -;; And then run these tests: -(find-pdf-page \"~/Coetzee99.pdf\") -(find-pdf-page \"~/Coetzee99.pdf\" 3) -(find-pdf-text \"~/Coetzee99.pdf\") -(find-pdf-text \"~/Coetzee99.pdf\" 3) +;; 5. Save some configs in your init file +;; ====================================== +;; This is similar to: (find-wconfig-browser-links 2 \"4. Save\") +;; Save the block below - including the comments - to your ~/.emacs: +;; See: (find-wconfig-shell-links) +(defun eepitch-shell () (interactive) (eepitch-eshell)) +(defun eepitch-shell2 () (interactive) (eepitch-eshell2)) +(defun eepitch-shell3 () (interactive) (eepitch-eshell3)) +(defun ee-find-psne-echo-options () \"-N\") ") - ) - pos-spec-list)) + ) + pos-spec-list))) @@ -414,49 +576,85 @@ wget https://tannerlectures.utah.edu/_resources/documents/a-to-z/c/Coetzee99.pdf (defun find-wconfig-lua-links (&rest pos-spec-list) "Visit a temporary buffer containing hyperlinks for wconfig-lua." (interactive) - (apply - 'find-elinks-elisp - `((find-wconfig-lua-links ,@pos-spec-list) - ;; Convention: the first sexp always regenerates the buffer. - (find-efunction 'find-wconfig-lua-links) - "" - ,(ee-template0 "\ - - (eepitch-eshell) - (eepitch-kill) - (eepitch-eshell) -rm -fv ~/bin/lua52.exe -wget http://angg.twu.net/2021-oficina/lua52.exe -rm -fv ~/bin/lua52.dll -wget http://angg.twu.net/2021-oficina/lua52.dll + (let ((ee-buffer-name (or ee-buffer-name "*(find-wconfig-lua-links)*"))) + (apply + 'find-elinks-elisp + `((find-wconfig-lua-links ,@pos-spec-list) + ;; Convention: the first sexp always regenerates the buffer. + (find-efunction 'find-wconfig-lua-links) + "" + ,(ee-template0 "\ +;; Note: only run this after downloading Lua! +;; See: (find-wconfig-wget-links 2 \"2. Use wget.exe to download\") + + +;; 1. Test if we can run Lua from Eshell +;; ===================================== +;; The option `-i' means \"run in interactive mode\". (eepitch-eshell) (eepitch-kill) (eepitch-eshell) -~/bin/lua5.2 -v -~/bin/lua5.2 -i +~/eev-wconfig/lua52.exe -v +~/eev-wconfig/lua52.exe -i print(2+3) os.exit() -;; See: (find-eev-quick-intro \"6.2. Other targets\") +;; 2. Configure eepitch +;; ==================== +;; See: (find-eev-quick-intro \"6.2. Other targets\") ;; Redefine `eepitch-lua51' and `eepitch-lua52' to make -;; them (both) use ~/bin/lua52.exe. +;; them (both) use ~/eev-wconfig/lua52.exe. (defun eepitch-lua51 () (interactive) - (eepitch-comint \"lua52.exe\" \"~/bin/lua52.exe -i\")) + (eepitch-comint \"lua52.exe\" \"~/eev-wconfig/lua52.exe -i\")) (defun eepitch-lua52 () (interactive) - (eepitch-comint \"lua52.exe\" \"~/bin/lua52.exe -i\")) + (eepitch-comint \"lua52.exe\" \"~/eev-wconfig/lua52.exe -i\")) +(defun eepitch-lua53 () (interactive) + (eepitch-comint \"lua53.exe\" \"~/eev-wconfig/lua53.exe -i\")) +(defun eepitch-lua54 () (interactive) + (eepitch-comint \"lua54.exe\" \"~/eev-wconfig/lua54.exe -i\")) +;; Test: + + (eepitch-lua51) + (eepitch-kill) + (eepitch-lua51) +print(2+3) +for k,v in pairs(_G) do print(k) end -") - ) - pos-spec-list)) +;; 3. Save some configs in your init file +;; ====================================== +;; This is similar to: (find-wconfig-browser-links 2 \"4. Save\") +;; Save the block below - including the comments - to your ~/.emacs: +;; See: (find-wconfig-lua-links) +(defun eepitch-lua51 () (interactive) + (eepitch-comint \"lua52.exe\" \"~/eev-wconfig/lua52.exe -i\")) +(defun eepitch-lua52 () (interactive) + (eepitch-comint \"lua52.exe\" \"~/eev-wconfig/lua52.exe -i\")) +(defun eepitch-lua53 () (interactive) + (eepitch-comint \"lua53.exe\" \"~/eev-wconfig/lua53.exe -i\")) +(defun eepitch-lua54 () (interactive) + (eepitch-comint \"lua54.exe\" \"~/eev-wconfig/lua54.exe -i\")) +") + ) + pos-spec-list))) + + + +;;; __ __ +;;; | \/ |_ ____ __ +;;; | |\/| | '_ \ \ / / +;;; | | | | |_) \ V / +;;; |_| |_| .__/ \_/ +;;; |_| +;; ;; «find-wconfig-mpv-links» (to ".find-wconfig-mpv-links") ;; Skel: (find-find-links-links-new "wconfig-mpv" "" "") ;; Test: (find-wconfig-mpv-links) @@ -465,22 +663,249 @@ wget http://angg.twu.net/2021-oficina/lua52.dll (defun find-wconfig-mpv-links (&rest pos-spec-list) "Visit a temporary buffer containing hyperlinks for wconfig-mpv." (interactive) - (apply - 'find-elinks-elisp - `((find-wconfig-mpv-links ,@pos-spec-list) - ;; Convention: the first sexp always regenerates the buffer. - (find-efunction 'find-wconfig-mpv-links) - "" - ,(ee-template0 "\ + (let ((ee-buffer-name (or ee-buffer-name "*(find-wconfig-mpv-links)*"))) + (apply + 'find-elinks-elisp + `((find-wconfig-mpv-links ,@pos-spec-list) + ;; Convention: the first sexp always regenerates the buffer. + (find-efunction 'find-wconfig-mpv-links) + "" + ,(ee-template0 "\ +;; This configuration step is similar to: +;; (find-wconfig-browser-links) + +;; The current value of the variable `ee-mpv-program' is: +(setq ee-mpv-program + \"{ee-mpv-program}\") + + +;; 1. Configure the path +;; ===================== +;; Make sure that mpv is installed. +;; See: https://en.wikipedia.org/wiki/Mpv_(media_player) +;; https://mpv.io/ +;; https://mpv.io/installation/ +;; +;; Replace the string below by the full path of mpv.exe - +;; note that you NEED to replace all the \\s in it by /s: + +(setq ee-mpv-program + \"c:/Users/danie/OneDrive/Documentos/mpv/mpv.eve\") + + +;; 2. Test +;; ======= +;; This test uses a short video that was downloaded by: +;; (find-wconfig-wget-links \"2. Use wget.exe to download\") +;; Check that the file exists: +;; (find-fline \"~/eev-wconfig/\" \"2022dragABC.mp4\") +;; Try to play it with mpv: +;; (find-mpv-video \"~/eev-wconfig/2022dragABC.mp4\" +;; (find-video \"~/eev-wconfig/2022dragABC.mp4\" + + +;; 3. Saving... + +(setq ee-mpv-program + \"{ee-mpv-program}\") + + +") + ) + pos-spec-list))) + + + +;;; __ __ _ +;;; | \/ | __ _ __ _(_) ___ +;;; | |\/| |/ _` |/ _` | |/ __| +;;; | | | | (_| | (_| | | (__ +;;; |_| |_|\__,_|\__, |_|\___| +;;; |___/ +;; +;; «find-wconfig-magic-links» (to ".find-wconfig-magic-links") +;; Skel: (find-find-links-links-new "wconfig-magic" "" "") +;; Test: (find-wconfig-magic-links) +;; (defun edt () (interactive) (eval-defun nil) (find-wconfig-magic-links)) +;; +(defun find-wconfig-magic-links (&rest pos-spec-list) +"Visit a temporary buffer containing hyperlinks for wconfig-magic." + (interactive) + (let ((ee-buffer-name (or ee-buffer-name "*(find-wconfig-magic-links)*"))) + (apply + 'find-elinks-elisp + `((find-wconfig-magic-links ,@pos-spec-list) + ;; Convention: the first sexp always regenerates the buffer. + (find-efunction 'find-wconfig-magic-links) + "" + ,(ee-template0 "\ +;; You are not expected to understand this! +;; See: https://thenewstack.io/not-expected-understand-explainer/ + + +;; 1. Configure chrome and mpv +;; =========================== +;; See: (find-wconfig-browser-links \"1. Configure Chrome\") +;; (find-wconfig-browser-links \"3. Update this page\") +;; (find-wconfig-mpv-links) +;; The current values of `ee-googlechrome-program' +;; and `ee-mpv-program' are: +;; +(setq ee-googlechrome-program + \"{ee-googlechrome-program}\") +(setq ee-mpv-program + \"{ee-mpv-program}\") + +;; Set them to full paths, like: +(setq ee-googlechrome-program + \"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe\") +(setq ee-mpv-program + \"c:/Users/danie/OneDrive/Documentos/mpv/mpv.eve\") + + + +;; 2. Things that you need to run once +;; =================================== +;; See: (find-wconfig-wget-links) +;; (find-wconfig-shell-links) + + + +;; 3. Magic +;; ======== +;; Running `(ee-wconfig-run-magic)' +;; runs the three blocks of code below. +;; See: (find-efunction 'ee-wconfig-run-magic) +;; (find-estring-elisp 'ee-wconfig-magic-code) + +{ee-wconfig-magic-code} + + + +;; 4. Save your configuration +;; ========================== +;; See: (find-wconfig-browser-links \"4. Save your configuration\") + +;; See: (find-wconfig-magic-links) +;; (find-wconfig-magic-links 2 \"1. Configure chrome and mpv\") +;; (find-wconfig-magic-links 2 \"3. Magic\") +;; (find-eev \"eev-load.el\" \"autoloads\") +;; (find-eev \"eev-wconfig.el\" \"intro\") +;; +(require 'eev-load) +(require 'eev-wconfig) +(setq ee-googlechrome-program + \"{ee-googlechrome-program}\") +(setq ee-mpv-program + \"{ee-mpv-program}\") +(ee-wconfig-run-magic) + + +") + ) + pos-spec-list))) + + + + +;; «ee-wconfig-run-magic» (to ".ee-wconfig-run-magic") +;; Test: (find-estring-elisp ee-wconfig-magic-code) +(defun ee-wconfig-run-magic () + "This function simply runs `(eval ee-wconfig-magic-code)'. +See the variable `ee-wconfig-magic-code'." + (interactive) + (eval ee-wconfig-magic-code)) + +(defvar ee-wconfig-magic-code "\ +;; See: (find-wconfig-wget-links) +(setq ee-wget-program \"~/eev-wconfig/wget.exe\") +(setq ee-pdftotext-program \"~/eev-wconfig/pdftotext.exe\") +(defalias 'find-pdf-page 'find-googlechrome-page) + +;; See: (find-wconfig-shell-links) +(defun eepitch-shell () (interactive) (eepitch-eshell)) +(defun eepitch-shell2 () (interactive) (eepitch-eshell2)) +(defun eepitch-shell3 () (interactive) (eepitch-eshell3)) +(defun ee-find-psne-echo-options () \"-N\") + +;; See: (find-wconfig-lua-links) +(defun eepitch-lua51 () (interactive) + (eepitch-comint \"lua52.exe\" \"~/bin/lua52.exe -i\")) +(defun eepitch-lua52 () (interactive) + (eepitch-comint \"lua52.exe\" \"~/bin/lua52.exe -i\")) +(defun eepitch-lua53 () (interactive) + (eepitch-comint \"lua53.exe\" \"~/bin/lua53.exe -i\")) +(defun eepitch-lua54 () (interactive) + (eepitch-comint \"lua54.exe\" \"~/bin/lua54.exe -i\")) +") -;; (find-video-links-intro \"6. Configuring Mpv\") -(setenv \"MPVDIR\" \"c:/Users/danie/OneDrive/Documentos/mpv\") -(setq ee-mpv-program \"$MPVDIR/mpv.exe\") + + +;;; _ _ _ +;;; | | | |_ __ __| | ___ +;;; | | | | '_ \ / _` |/ _ \ +;;; | |_| | | | | (_| | (_) | +;;; \___/|_| |_|\__,_|\___/ +;;; +;; «find-wconfig-undo-links» (to ".find-wconfig-undo-links") +;; Skel: (find-find-links-links-new "wconfig-undo" "" "") +;; Test: (find-wconfig-undo-links) +;; (defun edt () (interactive) (eval-defun nil) (find-wconfig-undo-links)) +;; +(defun find-wconfig-undo-links (&rest pos-spec-list) +"Visit a temporary buffer containing hyperlinks for wconfig-undo." + (interactive) + (let ((ee-buffer-name (or ee-buffer-name "*(find-wconfig-undo-links)*"))) + (apply + 'find-elinks-elisp + `((find-wconfig-undo-links ,@pos-spec-list) + ;; Convention: the first sexp always regenerates the buffer. + (find-efunction 'find-wconfig-undo-links) + "" + ,ee-wconfig-undo-links + ) + pos-spec-list))) + +(defvar ee-wconfig-undo-links "\ +;; You are not expected to understand this! +;; See: https://thenewstack.io/not-expected-understand-explainer/ +;; The progn below contains some direty tricks for testing this +;; on a machine running Debian GNU/Linux. + +(progn + +(setq ee-googlechrome-program \"google-chrome\") + +;; (find-angg \"bin/eev-wconfig\") +(find-sh0 \"eev-wconfig d\") +(find-sh0 \"eev-wconfig w\") +;; (find-sh0 \"eev-wconfig c\") + +(setq ee-wget-program \"wget\") +(defalias 'find-pdf-page 'find-xpdf-page) +(setq ee-pdftotext-program \"pdftotext\") + +(require 'eshell) +(require 'em-alias) +(eshell/alias \"wget\") +(defun eepitch-shell () (interactive) (eepitch '(shell))) +(defun eepitch-shell2 () (interactive) (eepitch '(shell \"*shell 2*\"))) +(defun eepitch-shell2 () (interactive) (eepitch '(shell \"*shell 3*\"))) +(defun ee-find-psne-echo-options () \"\") + +(setq ee-mpv-program \"mpv\") + +(defun eepitch-lua51 () (interactive) (eepitch-comint \"lua51\" \"lua5.1\")) +(defun eepitch-lua52 () (interactive) (eepitch-comint \"lua52\" \"lua5.2\")) +(defun eepitch-lua53 () (interactive) (eepitch-comint \"lua53\" \"lua5.3\")) +(defun eepitch-lua54 () (interactive) (eepitch-comint \"lua54\" \"lua5.4\")) + +) ") - ) - pos-spec-list)) + +