emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/eev 3253d24ab1: Added (find-2024luasovideo) and (find-e


From: ELPA Syncer
Subject: [elpa] externals/eev 3253d24ab1: Added (find-2024luasovideo) and (find-eewraptest-links).
Date: Sun, 21 Jan 2024 00:57:55 -0500 (EST)

branch: externals/eev
commit 3253d24ab1eb21fa0935c02b017414b6431808f1
Author: Eduardo Ochs <eduardoochs@gmail.com>
Commit: Eduardo Ochs <eduardoochs@gmail.com>

    Added (find-2024luasovideo) and (find-eewraptest-links).
---
 ChangeLog         |  27 +++++
 VERSION           |   4 +-
 eepitch.el        |   2 +
 eev-blinks.el     |   4 +-
 eev-intro.el      | 334 +++++++++++++++++++++++++++++++++++++++++-------------
 eev-tlinks.el     |  77 ++++++++-----
 eev-videolinks.el |  27 ++++-
 eev-wrap.el       | 170 +++++++++++++++++++--------
 8 files changed, 492 insertions(+), 153 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 99be5329f8..d03f31551b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,30 @@
+2024-01-21  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-intro.el (find-wrap-intro): rewrote the section "6. All
+       wrapping functions".
+
+2024-01-20  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-wrap.el (ee-wrap-eewrap): small changes.
+       (find-eewraptest-links): new function.
+
+       * eev-blinks.el (find-eaproposf, find-eaproposv): make
+       interactive.
+
+2024-01-17  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-tlinks.el (ee-copy-rest0): added support for "skip"s that
+       are lists made of a number of lines and a string to search for.
+       (ee-search-forward-before): new function.
+
+       * eev-intro.el (find-dot-emacs-intro): new intro.
+
+2024-01-16  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-videolinks.el (ee-1stclassvideos-info): added an entry for
+       "2024luaso".
+       (find-2024gitvideo): new function.
+
 2024-01-15  Eduardo Ochs  <eduardoochs@gmail.com>
 
        * eev.el: bumped the version.
diff --git a/VERSION b/VERSION
index aad5199bde..81d296e318 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Tue Jan 16 00:45:32 GMT 2024
-Mon Jan 15 21:45:32 -03 2024
+Sun Jan 21 04:10:47 GMT 2024
+Sun Jan 21 01:10:47 -03 2024
diff --git a/eepitch.el b/eepitch.el
index 86310efa60..d69700cc91 100644
--- a/eepitch.el
+++ b/eepitch.el
@@ -600,6 +600,8 @@ See: (find-eepitch-intro)"
 ;;      (find-wrap-intro)
 ;;      (find-eev "eev-mode.el" "eev-mode-map-set" "M-T" "eewrap-eepitch")
 ;;      (find-eepitch-bullet-links)
+;; Skel: (find-eewrap-links "T" "eepitch" "str")
+;; Test: (find-eewraptest-links "eepitch" "shell")
 
 (defun eewrap-eepitch () (interactive)
   "Convert the current into an eepitch block (three lines long)."
diff --git a/eev-blinks.el b/eev-blinks.el
index 618af9e4a0..1636f0d646 100644
--- a/eev-blinks.el
+++ b/eev-blinks.el
@@ -21,7 +21,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20240114
+;; Version:    20240120
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-blinks.el>
@@ -1696,6 +1696,7 @@ Hint: install the Debian package \"unicode-data\".")
 
 (defun find-eaproposf (regexp &rest rest)
   "Go to a temporary buffer listing all functions whose names match REGEXP."
+  (interactive "sApropos function (regexp): ")
   (apply 'find-elinks-elisp
         `(,(ee-template0 "\
 ;; (find-eaproposf {(ee-S regexp)})
@@ -1707,6 +1708,7 @@ Hint: install the Debian package \"unicode-data\".")
 
 (defun find-eaproposv (regexp &rest rest)
   "Go to a temporary buffer listing all variables whose names match REGEXP."
+  (interactive "sApropos variable (regexp): ")
   (apply 'find-elinks-elisp
         `(,(ee-template0 "\
 ;; (find-eaproposv {(ee-S regexp)})
diff --git a/eev-intro.el b/eev-intro.el
index 899d492935..d8516c2071 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20240114
+;; Version:    20240121
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-intro.el>
@@ -101,6 +101,7 @@
 ;; «.find-rstdoc-intro»                        (to "find-rstdoc-intro")
 ;; «.find-show2-intro»                 (to "find-show2-intro")
 ;; «.find-lua-tutorial-intro»          (to "find-lua-tutorial-intro")
+;; «.find-dot-emacs-intro»             (to "find-dot-emacs-intro")
 
 ;; Videos:
 ;; «.find-three-main-keys-intro»       (to "find-three-main-keys-intro")
@@ -2830,57 +2831,58 @@ recommended reading order. These are the basic ones:
   11. (find-psne-intro)
   12. (find-rcirc-intro)
   13. (find-elisp-intro)
-  14. (find-lexical-intro)
-  15. (find-multiwindow-intro)
-  16. (find-eev-install-intro)
+  14. (find-dot-emacs-intro)
+  15. (find-lexical-intro)
+  16. (find-multiwindow-intro)
+  17. (find-eev-install-intro)
 
 These are things that I am using in workshops:
 
-  17. (find-windows-beginner-intro)
-  18. (find-eev-exercises-intro)
+  18. (find-windows-beginner-intro)
+  19. (find-eev-exercises-intro)
 
 These ones explain ideas, conventions, and usage patterns:
 
-  19. (find-escripts-intro)
-  20. (find-links-conv-intro)
+  20. (find-escripts-intro)
+  21. (find-links-conv-intro)
 
 These are older and more technical versions of sections of the
 eev-quick-intro:
 
-  21. (find-eval-intro)
-  22. (find-links-intro)
-  23. (find-brxxx-intro)
-  24. (find-wrap-intro)
-  25. (find-eejump-intro)
-  26. (find-anchors-intro)
-  27. (find-code-c-d-intro)
+  22. (find-eval-intro)
+  23. (find-links-intro)
+  24. (find-brxxx-intro)
+  25. (find-wrap-intro)
+  26. (find-eejump-intro)
+  27. (find-anchors-intro)
+  28. (find-code-c-d-intro)
 
 These are etcs:
 
-  28. (find-templates-intro)
-  29. (find-org-intro)
-  30. (find-git-intro)
+  29. (find-templates-intro)
+  30. (find-org-intro)
+  31. (find-git-intro)
 
 These ones explain advanced features that require extra setup:
 
-  31. (find-kla-intro)
-  32. (find-kl-here-intro)
-  33. (find-edit-index-intro)
-  34. (find-rstdoc-intro)
-  35. (find-show2-intro)
-  36. (find-lua-tutorial-intro)
-  37. (find-prepared-intro)
-  38. (find-bounded-intro)
-  39. (find-channels-intro)
+  32. (find-kla-intro)
+  33. (find-kl-here-intro)
+  34. (find-edit-index-intro)
+  35. (find-rstdoc-intro)
+  36. (find-show2-intro)
+  37. (find-lua-tutorial-intro)
+  38. (find-prepared-intro)
+  39. (find-bounded-intro)
+  40. (find-channels-intro)
 
 This one was used in a video:
 
-  40. (find-three-main-keys-intro)
+  41. (find-three-main-keys-intro)
 
 These ones are obsolete:
 
-  41. (find-emacs-intro)
-  42. (find-defun-intro)
+  42. (find-emacs-intro)
+  43. (find-defun-intro)
 
 For an index of the videos, run:
 
@@ -7207,64 +7209,105 @@ Try <M-M> here:
 
 6. All wrapping functions
 =========================
-Below is a list of all wrapping functions, with tests and
-hyperlinks:
+Try this:
 
-  (eek \"2*<down> M-A <down> ;;; Test eewrap-anchor\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-anchor\")
-;; <anchor>
+  (find-eaproposf \"eewrap\")
 
-  (eek \"2*<down> M-C <down> ;;; Test eewrap-code-c-d\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-code-c-d\")
-foo /tmp/foobar/
+It will show a temporary buffer with hyperlinks like this one,
 
-  (eek \"2*<down> M-D <down> ;;; Test eewrap-debian\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-debian\")
-bash
+  (find-efunction 'eewrap-find-fline)
 
-  (eek \"2*<down> M-F <down> ;;; Test eewrap-find-fline\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-find-fline\")
-/tmp/foobar/
+that points to the definition of `eewrap-find-fline'. Each
+definition of an `eewrap-*' function is preceded by a header that
+contains two lines like these ones:
 
-  (eek \"2*<down> M-J <down> ;;; Test eewrap-eejump\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-eejump\")
-422 (find-eev-intro \"find-wrap-intro\")
+  ;; Skel: (find-eewrap-links \"F\" \"find-fline\" \"fname\")
+  ;; Test: (find-eewraptest-links \"find-fline\" \"/tmp/foo\")
 
-  (eek \"2*<down> M-J <down> ;;; Test eewrap-eejump\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-eejump\")
-42
+The `find-eewraptest-links' goes to a temporary buffer that
+contains a test like this one,
 
-  (eek \"2*<down> M-M <down> ;;; Test eewrap-man\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-man\")
-1 tac
+  ;; (eek \"<down> <<eewrap-find-fline>>\")
+  /tmp/foo
 
-  (eek \"2*<down> M-P <down> ;;; Test eewrap-pdflike\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-pdflike\")
-foopdf $S/http/foo.org/bar.pdf
+that demonstrates a typical use of that `eewrap-*' function.
+Here are all the tests copied to a single place:
 
-  (eek \"2*<down> M-R <down> ;;; Test eewrap-rm/mkdir/cd\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-rm/mkdir/cd\")
-/tmp/foo/
+  ;; M-A:  (find-efunction 'eewrap-anchor)
+  ;; Test: (find-eewraptest-links \"anchor\" \"# <foo>\")
+  ;;       (eek \"<down> <<eewrap-anchor>>\")
+  # <foo>
 
-  (eek \"2*<down> M-S <down> ;;; Test eewrap-sh\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-sh\")
-seq 1 20
+  ;; M-C:  (find-efunction 'eewrap-code-c-d)
+  ;; Test: (find-eewraptest-links \"code-c-d\" \"CCC /DIR/\")
+  ;;       (eek \"<down> <<eewrap-code-c-d>>\")
+  CCC /DIR/
 
-  (eek \"2*<down> M-T <down> ;;; Test eewrap-eepitch\")
-   Source:  (find-eev \"eepitch.el\"  \"eewrap-eepitch\")
-python
+  ;; M-D:  (find-efunction 'eewrap-debian)
+  ;; Test: (find-eewraptest-links \"debian\" \"bash\")
+  ;;       (eek \"<down> <<eewrap-debian>>\")
+  bash
+
+  ;; M-J:    (find-efunction 'eewrap-eejump)
+  ;; Test 1: (find-eewraptest-links \"eejump\" \"42   (find-fline 
\\\"~/TODO\\\")\")
+  ;;         (eek \"<down> <<eewrap-eejump>>\")
+  42   (find-fline \"~/TODO\")
+
+  ;; M-J:    (find-efunction 'eewrap-eejump)
+  ;; Test 2: (find-eewraptest-links \"eejump\" \"todo (find-fline 
\\\"~/TODO\\\")\")
+  ;;         (eek \"<down> <<eewrap-eejump>>\")
+  todo (find-fline \"~/TODO\")
+
+  ;; M-F:  (find-efunction 'eewrap-find-fline)
+  ;; Test: (find-eewraptest-links \"find-fline\" \"/tmp/foo\")
+  ;;       (eek \"<down> <<eewrap-find-fline>>\")
+  /tmp/foo
+
+  ;; M-M:  (find-efunction 'eewrap-man)
+  ;; Test: (find-eewraptest-links \"man\" \"1 tac\")
+  ;;       (eek \"<down> <<eewrap-man>>\")
+  1 tac
 
-  (eek \"2*<down> M-V <down> ;;; Test eewrap-audiovideo\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-audiovideo\")
-slimetutorial /tmp/slime-tutorial.mp4
+  ;; M-P:  (find-efunction 'eewrap-pdflike)
+  ;; Test: (find-eewraptest-links \"pdflike\" \"o /tmp/o.pdf\")
+  ;;       (eek \"<down> <<eewrap-pdflike>>\")
+  o /tmp/o.pdf
 
-  (eek \"2*<down> M-Z <down> ;;; Test eewrap-zsh\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-zsh\")
-echo $SHELL
+  ;; M-R:  (find-efunction 'eewrap-rm/mkdir/cd)
+  ;; Test: (find-eewraptest-links \"rm/mkdir/cd\" \"/tmp/foo/\")
+  ;;       (eek \"<down> <<eewrap-rm/mkdir/cd>>\")
+  /tmp/foo/
+
+  ;; M-S:  (find-efunction 'eewrap-sh)
+  ;; Test: (find-eewraptest-links \"sh\" \"dict smop\")
+  ;;       (eek \"<down> <<eewrap-sh>>\")
+  dict smop
+
+  ;; M-T:  (find-efunction 'eewrap-eepitch)
+  ;; Test: (find-eewraptest-links \"eepitch\" \"shell\")
+  ;;       (eek \"<down> <<eewrap-eepitch>>\")
+  shell
+
+  ;; M-V:  (find-efunction 'eewrap-audiovideo)
+  ;; Test: (find-eewraptest-links \"audiovideo\" \"ovideo /tmp/o.mp4\")
+  ;;       (eek \"<down> <<eewrap-audiovideo>>\")
+  ovideo /tmp/o.mp4
+
+  ;; M-Z:  (find-efunction 'eewrap-zsh)
+  ;; Test: (find-eewraptest-links \"zsh\" \"echo $SHELL\")
+  ;;       (eek \"<down> <<eewrap-zsh>>\")
+  echo $SHELL
+
+  ;; M-#:  (find-efunction 'eewrap-two-eepitches)
+  ;; Test: (find-eewraptest-links \"two-eepitches\" \"shell python\")
+  ;;       (eek \"<down> <<eewrap-two-eepitches>>\")
+  shell python
+
+The bindings for `M-Z' and `M-#' are not active by default. See:
+
+  (find-eev \"eev-mode.el\" \"eev-mode-map-set\" \"M-Z\" \"eewrap-zsh\")
+  (find-eev \"eev-mode.el\" \"eev-mode-map-set\" \"M-#\" 
\"eewrap-two-eepitches\")
 
-  (eek \"2*<down> <<eewrap-eewrap>> <down> ;;; Test eewrap-eewrap\")
-   Source:  (find-eev \"eev-wrap.el\" \"eewrap-eewrap\")
-U user-defined a b c
 
 
 
@@ -15435,6 +15478,11 @@ It is meant as both a tutorial and a sandbox.
          (find-1stclassvideolsubs \"eev2022kla\")
          (find-eev2022klavideo \"0:00\")
 
+Update:
+ Read this first:
+ (find-kl-here-intro)
+
+
 
 
 1. Introduction
@@ -17299,10 +17347,16 @@ This buffer is _temporary_ and _editable_.
 It is meant as both a tutorial and a sandbox.
 
 
-This is a work in progress that
-is in a very early stage!
+This intro is a work in progress -
+that is in a very early stage!!!
+At this moment it only covers the material
+that is in this video:
+  Page:  http://anggtwu.net/find-luaso-links.html
+  Play:  (find-2024luasovideo \"00:00\")
+  LSubs: (find-2024luasolsubs \"00:00\")
+  Info:  (find-1stclassvideodef \"2024luaso\")
 
-This intro
+Note that this intro
 
   (find-show2-intro)
 
@@ -17312,6 +17366,8 @@ who would like to learn Lua can learn the basics...
 
 
 
+
+
 1. Installation
 ===============
 Run the instructions in this section:
@@ -17443,7 +17499,7 @@ all strings from templates. Here's how to test it:
   wget http://anggtwu.net/LUA/Dang1.lua
   wget http://anggtwu.net/LUA/CLua1.lua
 
- Make `find-clua' and LUA_{<}INIT,PATH{>} point to /tmp/CLua1/:
+ Make `find-clua' and LUA_{INIT,PATH} point to /tmp/CLua1/:
  (code-c-d \"clua\"    \"/tmp/CLua1/\" :anchor)
  (setenv \"LUA_INIT\" \"@/tmp/CLua1/lua50init.lua\")
  (setenv \"LUA_PATH\"  \"/tmp/CLua1/?.lua;;\")
@@ -17510,6 +17566,125 @@ I need to clean it up and explain how to use it...
 
 
 
+;;;                                    
+;;;       ___ _ __ ___   __ _  ___ ___ 
+;;;      / _ \ '_ ` _ \ / _` |/ __/ __|
+;;;  _  |  __/ | | | | | (_| | (__\__ \
+;;; (_)  \___|_| |_| |_|\__,_|\___|___/
+;;;                                    
+;; «find-dot-emacs-intro»  (to ".find-dot-emacs-intro")
+;; Skel: (find-intro-links "dot-emacs")
+;; Test: (find-dot-emacs-intro)
+
+(defun find-dot-emacs-intro (&rest pos-spec-list) (interactive)
+  (let ((ee-buffer-name "*(find-dot-emacs-intro)*"))
+    (apply 'find-eintro "\
+\(Re)generate: (find-dot-emacs-intro)
+Source code:  (find-efunction 'find-dot-emacs-intro)
+More intros:  (find-eev-quick-intro)
+              (find-eev-intro)
+              (find-eepitch-intro)
+This buffer is _temporary_ and _editable_.
+It is meant as both a tutorial and a sandbox.
+
+
+
+Note:
+THIS IS A VERY EARLY DRAFT!
+THIS IS A MESS!!!
+
+
+
+0. Pre-requisites
+=================
+This intro supposes that you know:
+  1. how to do cut and paste in Emacs,
+  2. how and why to put messy notes at the end of your ~/TODO, 
+  3. several ways to go to ~/TODO, 
+  4. a bit of elisp.
+
+Here you will learn how (and why) to put messy notes _in elisp_
+at the end of your ~/.emacs. Note that this is a style that many
+people
+
+
+1. Cutting and pasting
+======================
+Make sure that you understand the basics of cutting and pasting,
+from:
+  (find-eev-quick-intro \"5.2. Cutting and pasting\")
+  (find-emacs-keys-intro \"3. Cutting & pasting\")
+
+Emacs also has ways to put things in the kill ring directly. Try:
+
+  (kill-new \"foo\")
+
+and try to understand what this does, and how to use it to paste
+two lines to your ~/TODO:
+
+;;-- (ee-copy-rest '(0 \";;--snip--\") '(find-fline \"~/TODO\"))
+FOO
+BAR
+;;--snip--
+
+Hint:
+  (find-eev-quick-intro \"7.5. `find-latex-links'\")
+  (find-efunctiondescr 'ee-copy-rest)
+  (find-efunctiondescr 'ee-copy-rest0)
+
+
+
+2. Lisp with hyperlinks in comments
+===================================
+
+
+  (find-eev-quick-intro \"7.1. `eejump'\")
+  (find-eev-quick-intro \"7.1. `eejump'\" \"~/TODO\")
+  (find-enode \"Major Modes\")
+
+
+
+3. emacs-lisp-mode
+==================
+# (find-evardescr 'auto-mode-alist)
+# (find-evariable 'auto-mode-alist)
+# (find-eppp auto-mode-alist)
+# (find-hvariable 'auto-mode-alist)
+
+# (find-elnode \"Index\" \"* auto-mode-alist:\")
+
+
+second scratch, like ~/TODO
+M-15j
+stops at the first error
+add links in comments
+rewrite ee-copy-rest
+major mode: emacs-lisp
+
+
+;;-- (ee-copy-rest '(0 \";;--snip--\") '(find-fline \"~/.emacs\"))
+;; See: (find-eev \"eev-load.el\")
+;;      (find-eev-install-intro \"_Activating_\")
+(require 'eev-load)
+(eev-mode 1)
+;;
+;; See: (find-kl-here-intro)
+;;      (find-eev \"eev-kl-here.el\")
+(require 'eev-kl-here)
+;;--snip--
+
+auto-mode-alist
+
+
+
+" pos-spec-list)))
+
+;; (find-dot-emacs-intro)
+
+
+
+
+
 
 ;;;  _   _                                     _         _
 ;;; | |_| |__  _ __ ___  ___   _ __ ___   __ _(_)_ __   | | _____ _   _ ___
@@ -18756,6 +18931,9 @@ And here are (elisp hyper)links to them with 
descriptions:
 
 
 
+
+
+
 (provide 'eev-intro)
 
 
diff --git a/eev-tlinks.el b/eev-tlinks.el
index 63a427e7f5..0113cdf3a0 100644
--- a/eev-tlinks.el
+++ b/eev-tlinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20240113
+;; Version:    20240117
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-tlinks.el>
@@ -268,15 +268,39 @@
     (eval code)
     msg))
 
+(defun ee-search-forward-before (str)
+  "An internal function used by `ee-copy-rest0'."
+  (save-excursion
+    (search-forward str)
+    (search-backward str)
+    (point)))
+
 (defun ee-copy-rest0 (skip code)
   "Copy the rest of this buffer to the kill ring and execute CODE.
 The rest of this buffer is everything from the beginning of the next line -
-optionally moving down SKIP lines - to the end of the buffer."
-  (ee-copy-rest00 skip '(point-max) code))
-
-(defun ee-copy-rest  (skip code)
+optionally moving down SKIP lines - to the end of the buffer.
+
+If SKIP is a list like (2 \"--snip--snip--\") then use another
+notion of \"the rest of this buffer\": it will be everything from
+2 lines from here downwards to the first occurrence of the string
+\"--snip--snip--\" after the point."
+  (if (numberp skip)
+      (ee-copy-rest00 skip '(point-max) code)
+    (let* ((nlines  (nth 0 skip))
+          (str     (nth 1 skip))
+          (gotoend `(ee-search-forward-before ,str)))
+      (ee-copy-rest00 nlines gotoend code))))
+
+(defun ee-copy-rest (skip code)
   "Copy the rest of this buffer to the kill ring and execute CODE.
-See: (find-eev \"eev-tlinks.el\" \"ee-copy-rest\")"
+The rest of this buffer is everything from the beginning of the next line -
+optionally moving down SKIP lines - to the end of the buffer.
+See: (find-eev \"eev-tlinks.el\" \"ee-copy-rest\")
+
+If SKIP is a list like (2 \"--snip--snip--\") then use another
+notion of \"the rest of this buffer\": it will be everything from
+2 lines from here downwards to the first occurrence of the string
+\"--snip--snip--\" after the point."
   (ee-copy-rest0 skip `(find-2a nil ',code)))
 
 
@@ -4963,10 +4987,10 @@ dofile \"{dir0}lua50init.lua\"
 
 
 ;; «find-luaso-links»  (to ".find-luaso-links")
-;; Skel: (find-find-links-links-new "luaso" "fname funname" "fname0 fname00 
stem dir")
+;; Skel: (find-find-links-links-new "luaso" "fname funname" "fnameshort 
fnameangg fnamebase dir edir")
 ;; Test: (find-luaso-links "/tmp/dummy2.c" "foo")
-;;  See: (find-angg "CLUA/foo.c")
-;;       (find-angg "LUA/CLua1.lua")
+;;  See: (find-angg "LUA/CLua1.lua")
+;;       (find-angg "CLUA/foo.c")
 ;;       (find-es "lua5" "CLua1.lua")
 ;;
 (defun find-luaso-links (&optional fname funname &rest pos-spec-list)
@@ -4974,10 +4998,11 @@ dofile \"{dir0}lua50init.lua\"
   (interactive)
   (setq fname (or fname "{fname}"))
   (setq funname (or funname "{funname}"))
-  (let* ((fname0  (ee-shorten-file-name fname))
-         (fname00 (ee-replace-prefix "~/" "" fname0))
-         (stem    (file-name-base fname))
-         (dir     (file-name-directory fname)))
+  (let* ((fnameshort (ee-shorten-file-name fname))
+         (fnameangg  (ee-replace-prefix "~/" "" fnameshort))
+         (fnamebase  (file-name-base fname))
+         (dir        (or (file-name-directory fname) ""))
+         (edir       (ee-expand dir)))
     (apply
      'find-elinks
      `((find-luaso-links ,fname ,funname ,@pos-spec-list)
@@ -4986,21 +5011,22 @@ dofile \"{dir0}lua50init.lua\"
        ""
        ,(ee-template0 "\
 // (c-mode)
+// See: (find-lua-tutorial-intro \"3. The C API\")
 // All lines with \"angg\" are angg-isms!
-//   (kill-new \"  {fname00}\")
+//   (kill-new \"  {fnameangg}\")
 //   (find-blogme3 \"anggmake.lua\" \"anggtranslate\")
 //   (find-blogme3 \"anggmake.lua\" \"anggtranslate\" \"LUA/\")
 // (ee-copy-rest 2 '(find-fline \"{fname}\"))
 
 
 // This file:
-//   http://anggtwu.net/{fname00}.html
-//   http://anggtwu.net/{fname00}
-//          (find-angg \"{fname00}\")
+//   http://anggtwu.net/{fnameangg}.html
+//   http://anggtwu.net/{fnameangg}
+//          (find-angg \"{fnameangg}\")
 //    Skel: (find-luaso-links \"{fname}\" \"{funname}\")
 //  Author: Eduardo Ochs <eduardoochs@gmail.com>
 //
-// (defun e () (interactive) (find-angg \"{fname00}\"))
+// (defun e () (interactive) (find-angg \"{fnameangg}\"))
 
 #include \"lauxlib.h\"
 #include <stdio.h>
@@ -5011,14 +5037,14 @@ static int my_{funname}(lua_State* L) {<}
   return 2;
 {>}
 
-static const struct luaL_reg {stem}_lib[] = {<}
+static const struct luaL_reg {fnamebase}_lib[] = {<}
   {<}\"{funname}\", my_{funname}{>},
   {<}NULL,  NULL{>}
 {>};
 
-LUALIB_API int luaopen_{stem}(lua_State *L) {<}
+LUALIB_API int luaopen_{fnamebase}(lua_State *L) {<}
   lua_pushvalue(L, LUA_GLOBALSINDEX);
-  luaL_openlib(L, NULL, {stem}_lib, 0);
+  luaL_openlib(L, NULL, {fnamebase}_lib, 0);
   return 0;
 {>}
 
@@ -5034,15 +5060,14 @@ LUADIR=/opt/local/include/lua5.1
 CFLAGS=\"-g -Wall -shared\"
 LUADIR=/usr/include/lua5.1
 
-echo gcc $CFLAGS -I$LUADIR -o {stem}.so {stem}.c
-     gcc $CFLAGS -I$LUADIR -o {stem}.so {stem}.c
-ls -lAF {stem}*
+echo gcc $CFLAGS -I$LUADIR -o {fnamebase}.so {fnamebase}.c
+     gcc $CFLAGS -I$LUADIR -o {fnamebase}.so {fnamebase}.c
+ls -lAF {fnamebase}*
 
  (eepitch-lua51)
  (eepitch-kill)
  (eepitch-lua51)
-Path.prependtocpath \"{dir}?.so\"
-require \"{stem}\"
+package.loadlib(\"{edir}{fnamebase}.so\", \"luaopen_{fnamebase}\")()
 print({funname}(42))
 
 */\
diff --git a/eev-videolinks.el b/eev-videolinks.el
index a99705bbbb..a089176fbf 100644
--- a/eev-videolinks.el
+++ b/eev-videolinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20240106
+;; Version:    20240116
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-videolinks.el>
@@ -74,6 +74,7 @@
 ;;   «.find-eev2023replsvideo»         (to "find-eev2023replsvideo")
 ;;   «.find-eev2023replsbvideo»                (to "find-eev2023replsbvideo")
 ;;   «.find-2024gitvideo»              (to "find-2024gitvideo")
+;;   «.find-2024luasovideo»            (to "find-2024luasovideo")
 ;; «.more-info»                                (to "more-info")
 ;; «.ee-1stclassvideos-info»           (to "ee-1stclassvideos-info")
 ;;   «.eev2019»                                (to "eev2019")
@@ -110,6 +111,7 @@
 ;;   «.eev2023repls»                   (to "eev2023repls")
 ;;   «.eev2023replsb»                  (to "eev2023replsb")
 ;;   «.2024git»                                (to "2024git")
+;;   «.2024luaso»                      (to "2024luaso")
 ;; «.ee-1stclassvideos-field»          (to "ee-1stclassvideos-field")
 ;; «.second-class-videos»              (to "second-class-videos")
 ;;   «.code-eevvideo»                  (to "code-eevvideo")
@@ -700,6 +702,16 @@ For more info on this particular video, run:
   (interactive)
   (find-1stclassvideo-video "2024git" time))
 
+;; «find-2024luasovideo»  (to ".find-2024luasovideo")
+;; Info: (find-1stclassvideo-links "2024luaso")
+;; Play: (find-2024luasovideo "0:00")
+(defun find-2024luasovideo (&optional time &rest rest)
+  "Play one of the first-class videos of eev starting at TIME.
+For more info on this particular video, run:
+  (find-1stclassvideo-links \"2024luaso\")"
+  (interactive)
+  (find-1stclassvideo-video "2024luaso" time))
+
 
 
 
@@ -1181,6 +1193,19 @@ For more info on this particular video, run:
      :length  "33:25"
      :subs    ".vtt"
      :comment "A video about (find-git-intro). Very accessible.")
+    ;;
+    ;; «2024luaso»  (to ".2024luaso")
+    ;; Play: (find-2024luasovideo "0:00")
+    ;; Index: (find-1stclassvideoindex "2024luaso")
+    ("2024luaso"
+     :title "Two ways of creating \".so\"s for Lua, one very fast, both using 
Emacs and eev"
+     :mp4   "http://anggtwu.net/eev-videos/2024-find-luaso-links.mp4";
+     :yt    "http://www.youtube.com/watch?v=zUW-6atPvUQ";
+     :page  "http://anggtwu.net/find-luaso-links.html";
+     :date    "2024jan16"
+     :length  "14:16"
+     :subs    ".vtt"
+     :comment "See: (find-lua-tutorial-intro)")
     ))
 
 
diff --git a/eev-wrap.el b/eev-wrap.el
index bbeda93257..240ba8d523 100644
--- a/eev-wrap.el
+++ b/eev-wrap.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20230127
+;; Version:    20240120
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-wrap.el>
@@ -40,7 +40,23 @@
 ;; «.ee-template0»             (to "ee-template0")
 ;; «.ee-S»                     (to "ee-S")
 ;; «.ee-this-line-wrapn»       (to "ee-this-line-wrapn")
+;; «.eewrap-anchor»            (to "eewrap-anchor")
+;; «.eewrap-escript-block»     (to "eewrap-escript-block")
+;; «.eewrap-code-c-d»          (to "eewrap-code-c-d")
+;; «.eewrap-debian»            (to "eewrap-debian")
+;; «.eewrap-find-fline»                (to "eewrap-find-fline")
+;; «.eewrap-eejump»            (to "eewrap-eejump")
+;; «.eewrap-man»               (to "eewrap-man")
+;; «.eewrap-pdflike»           (to "eewrap-pdflike")
+;; «.eewrap-rm/mkdir/cd»       (to "eewrap-rm/mkdir/cd")
+;; «.eewrap-sh»                        (to "eewrap-sh")
+;; «.eepitch»                  (to "eepitch")
+;; «.eewrap-audiovideo»                (to "eewrap-audiovideo")
+;; «.eewrap-zsh»               (to "eewrap-zsh")
+;; «.eewrap-two-eepitches»     (to "eewrap-two-eepitches")
+;; «.ee-wrap-eewrap»           (to "ee-wrap-eewrap")
 ;; «.find-eewrap-links»                (to "find-eewrap-links")
+;; «.find-eewraptest-links»    (to "find-eewraptest-links")
 
 
 (require 'eev-template0)      ; (find-eev "eev-template0.el")
@@ -160,9 +176,11 @@ have to run an \"undo\"."
 ;;; | |  | |_____/ ___ \ _  | (_| | | | | (__| | | | (_) | |   
 ;;; |_|  |_|    /_/   \_(_)  \__,_|_| |_|\___|_| |_|\___/|_|   
 ;;;                                                            
-;; See: (find-eev-quick-intro "8.3. Creating index/section anchor pairs")
-;;      (find-anchors-intro "Creating index/section anchor pairs")
-;; (define-key eev-mode-map "\M-A" 'eewrap-anchor)
+;; «eewrap-anchor»  (to ".eewrap-anchor")
+;; See:  (find-eev-quick-intro "8.3. Creating index/section anchor pairs")
+;;       (find-anchors-intro "Creating index/section anchor pairs")
+;; Skel: (find-eewrap-links "A" "anchor" "prefix anchor")
+;; Test: (find-eewraptest-links "anchor" "# <foo>")
 
 (defun  eewrap-anchor () (interactive)
   (ee-this-line-wrapn 1 'ee-wrap-anchor))
@@ -186,8 +204,12 @@ have to run an \"undo\"."
 ;;; | |  | |_____| |_) |  |  __/\__ \ (__| |  | | |_) | |_  | |_) | |   < 
 ;;; |_|  |_|     |_.__(_)  \___||___/\___|_|  |_| .__/ \__| |_.__/|_|_|\_\
 ;;;                                             |_|                       
-;;
-;; See: (find-eev-quick-intro "8.4. Creating e-script blocks")
+;; «eewrap-escript-block»  (to ".eewrap-escript-block")
+;; See:   (find-eev-quick-intro "8.4. Creating e-script blocks")
+;; Skel:  (find-eewrap-links "B" "escript-block" "anchor title")
+;; Tests: (find-eewraptest-links "escript-block" "ANCHOR")
+;;        (find-eewraptest-links "escript-block" "ANCHOR Some title")
+
 ;; (define-key eev-mode-map "\M-B" 'eewrap-escript-block)
 
 (defun  eewrap-escript-block () (interactive)
@@ -217,8 +239,10 @@ have to run an \"undo\"."
 ;;; | |  | |_____| |___ _  | (_| (_) | (_| |  __/_____| (_|_____| (_| |
 ;;; |_|  |_|      \____(_)  \___\___/ \__,_|\___|      \___|     \__,_|
 ;;;                                                                    
-;; See: (find-code-c-d-intro)
-;; (define-key eev-mode-map "\M-C" 'eewrap-code-c-d)
+;; «eewrap-code-c-d»  (to ".eewrap-code-c-d")
+;; See:  (find-eev-quick-intro "`M-C'")
+;; Skel: (find-eewrap-links "C" "code-c-d" "c d")
+;; Test: (find-eewraptest-links "code-c-d" "CCC /DIR/")
 
 (defun  eewrap-code-c-d () (interactive)
   (ee-this-line-wrapn 2 'ee-wrap-code-c-d))
@@ -235,7 +259,10 @@ have to run an \"undo\"."
 ;;; | |  | |_____| |_| |_  | (_| |  __/ |_) | | (_| | | | |
 ;;; |_|  |_|     |____/(_)  \__,_|\___|_.__/|_|\__,_|_| |_|
 ;;;                                                        
-;; (define-key eev-mode-map "\M-D" 'eewrap-debian)
+;; «eewrap-debian»  (to ".eewrap-debian")
+;; See:  (find-wrap-intro "M-D")
+;; Skel: (find-eewrap-links "D" "debian" "stem")
+;; Test: (find-eewraptest-links "debian" "bash")
 
 (defun  eewrap-debian () (interactive)
   (ee-this-line-wrapn 1 'ee-wrap-debian))
@@ -252,8 +279,10 @@ have to run an \"undo\"."
 ;;; | |  | |_____|  _| _  |  _| | |  __/
 ;;; |_|  |_|     |_|  (_) |_| |_|_|\___|
 ;;;                                     
+;; «eewrap-find-fline»  (to ".eewrap-find-fline")
 ;; See: (find-wrap-intro "<M-F>")
-;; (define-key eev-mode-map "\M-F" 'eewrap-find-fline)
+;; Skel: (find-eewrap-links "F" "find-fline" "fname")
+;; Test: (find-eewraptest-links "find-fline" "/tmp/foo")
 
 (defun  eewrap-find-fline () (interactive)
   (ee-this-line-wrapn 1 'ee-wrap-find-fline))
@@ -269,10 +298,13 @@ have to run an \"undo\"."
 ;;; |_|  |_|      \___/(_)  \___|\___|/ |\__,_|_| |_| |_| .__/ 
 ;;;                                 |__/                |_|    
 ;;
+;; «eewrap-eejump»  (to ".eewrap-eejump")
 ;; See: (find-eev-quick-intro "7.1. `eejump'")
 ;;      (find-eev-quick-intro "7.1. `eejump'" "meta-uppercase-j")
 ;; Old: (find-eejump-intro "Producing `eejump-nnn's and `eejump-nnn*'s")
-;; (define-key eev-mode-map "\M-J" 'eewrap-eejump)
+;; Skel:  (find-eewrap-links "J" "eejump" "n sexp")
+;; Tests: (find-eewraptest-links "eejump" "42   (find-fline \"~/TODO\")")
+;;        (find-eewraptest-links "eejump" "todo (find-fline \"~/TODO\")")
 
 (defun  eewrap-eejump () (interactive)
   (ee-this-line-wrapn 2 'ee-wrap-eejump))
@@ -283,13 +315,6 @@ have to run an \"undo\"."
         (ee-template0 "(defun eejump-{n}* () (find-efunction 'eejump-{n}*))")
       (ee-template0   "(defun eejump-{n} () {sexp})"))
     (ee-template0     "(defun {n} () (interactive) {sexp})")))
-;;
-;; Old:
-;; (defun ee-wrap-eejump (n sexp)
-;;   "An internal function used by `eewrap-eejump'."
-;;   (if (equal sexp "")
-;;       (ee-template0 "(defun eejump-{n}* () (find-efunction 'eejump-{n}*))")
-;;     (ee-template0   "(defun eejump-{n} () {sexp})")))
 
 
 
@@ -299,8 +324,10 @@ have to run an \"undo\"."
 ;;; | |  | |_____| |  | |_  | | | | | | (_| | | | |
 ;;; |_|  |_|     |_|  |_(_) |_| |_| |_|\__,_|_| |_|
 ;;;                                                
-;; See: (find-wrap-intro "<M-M>")
-;; (define-key eev-mode-map "\M-M" 'eewrap-man)
+;; «eewrap-man»  (to ".eewrap-man")
+;; See:  (find-wrap-intro "<M-M>")
+;; Skel: (find-eewrap-links "M" "man" "str")
+;; Test: (find-eewraptest-links "man" "1 tac")
 
 (defun  eewrap-man () (interactive)
   (ee-this-line-wrapn 1 'ee-wrap-man))
@@ -317,8 +344,11 @@ have to run an \"undo\"."
 ;;; |_|  |_|     |_|   (_) | .__/ \__,_|_| |_|_|_|\_\___|
 ;;;                        |_|                           
 ;;
-;; See: (find-pdf-like-intro)
-;; (define-key eev-mode-map "\M-P" 'eewrap-pdflike)
+;; «eewrap-pdflike»  (to ".eewrap-pdflike")
+;; See:  (find-pdf-like-intro)
+;;       (find-pdf-like-intro "`M-P'")
+;; Skel: (find-eewrap-links "P" "pdflike" "stem fname")
+;; Test: (find-eewraptest-links "pdflike" "o /tmp/o.pdf")
 
 (defun  eewrap-pdflike () (interactive)
   (ee-this-line-wrapn 2 'ee-wrap-pdflike))
@@ -367,7 +397,10 @@ have to run an \"undo\"."
 ;;; | |  | |_____|  _ < _  | |  | | | | | |/ /| | | | | |   < (_| | | |   
 ;;; |_|  |_|     |_| \_(_) |_|  |_| |_| |_/_/ |_| |_| |_|_|\_\__,_|_|_|   
 ;;;                                                                       
-;; (define-key eev-mode-map "\M-R" 'eewrap-rm/mkdir/cd)
+;; «eewrap-rm/mkdir/cd»  (to ".eewrap-rm/mkdir/cd")
+;; See:  (find-escripts-intro "`M-R'")
+;; Skel: (find-eewrap-links "R" "rm/mkdir/cd" "dir")
+;; Test: (find-eewraptest-links "rm/mkdir/cd" "/tmp/foo/")
 
 (defun  eewrap-rm/mkdir/cd () (interactive)
   (ee-this-line-wrapn 1 'ee-wrap-rm/mkdir/cd))
@@ -386,8 +419,10 @@ cd     {dir}"))
 ;;; | |  | |_____|__) |  |  _| | | | | (_| |_____\__ \ | | |
 ;;; |_|  |_|    |____(_) |_| |_|_| |_|\__,_|     |___/_| |_|
 ;;;                                                         
+;; «eewrap-sh»  (to ".eewrap-sh")
 ;; See: (find-wrap-intro "<M-S>")
-;; (define-key eev-mode-map "\M-S" 'eewrap-sh)
+;; Skel: (find-eewrap-links "R" "sh" "str")
+;; Test: (find-eewraptest-links "sh" "dict smop")
 
 (defun  eewrap-sh () (interactive)
   (ee-this-line-wrapn 1 'ee-wrap-sh))
@@ -408,8 +443,9 @@ cd     {dir}"))
 ;;; | |  | |_____| | _  |  __/  __/ |_) | | || (__| | | |
 ;;; |_|  |_|     |_|(_)  \___|\___| .__/|_|\__\___|_| |_|
 ;;;                               |_|                    
-;; (define-key eev-mode-map "\M-T" 'eewrap-eepitch)
-;; (find-eev "eepitch.el" "eepitch-wrap")
+;;
+;; «eepitch»  (to ".eepitch")
+;; Moved to: (find-eev "eepitch.el" "eewrap-eepitch")
 
 
 
@@ -419,8 +455,10 @@ cd     {dir}"))
 ;;; | |  | |_____\ V / _  | (_| | |_| | (_| | | (_) \ V /| | (_| |  __/ (_) |
 ;;; |_|  |_|      \_/ (_)  \__,_|\__,_|\__,_|_|\___/ \_/ |_|\__,_|\___|\___/ 
 ;;;                                                                          
+;; «eewrap-audiovideo»  (to ".eewrap-audiovideo")
 ;; See: (find-audiovideo-intro)
-;; (define-key eev-mode-map "\M-V" 'eewrap-audiovideo)
+;; Skel: (find-eewrap-links "V" "audiovideo" "stem fname")
+;; Test: (find-eewraptest-links "audiovideo" "ovideo /tmp/o.mp4")
 
 (defun  eewrap-audiovideo () (interactive)
   (ee-this-line-wrapn 2 'ee-wrap-audiovideo))
@@ -430,12 +468,12 @@ cd     {dir}"))
 ;; (find-fline {(ee-S (file-name-directory fname))})
 ;; (find-audio \"{fname}\")
 ;; (find-video \"{fname}\")
-\(code-audio \"{stem}\" \"{fname}\")
-\(code-video \"{stem}\" \"{fname}\")
-;; \(find-{stem})
-;; \(find-{stem} \"0:00\")
-;; \(find-{stem} t)
-;; \(eev-avadj-mode 1)
+(code-audio \"{stem}\" \"{fname}\")
+(code-video \"{stem}\" \"{fname}\")
+;; (find-{stem})
+;; (find-{stem} \"0:00\")
+;; (find-{stem} t)
+;; (eev-avadj-mode 1)
 "))
 
 
@@ -446,7 +484,10 @@ cd     {dir}"))
 ;;; | |  | |_____/ /_ _  |  _| | | | | (_| |_____/ /\__ \ | | |
 ;;; |_|  |_|    /____(_) |_| |_|_| |_|\__,_|    /___|___/_| |_|
 ;;;                                                            
+;; «eewrap-zsh»  (to ".eewrap-zsh")
 ;; (define-key eev-mode-map "\M-Z" 'eewrap-zsh)
+;; Skel: (find-eewrap-links "Z" "zsh" "str")
+;; Test: (find-eewraptest-links "zsh" "echo $SHELL")
 
 (defun  eewrap-zsh () (interactive)
   (ee-this-line-wrapn 1 'ee-wrap-zsh))
@@ -462,10 +503,12 @@ cd     {dir}"))
 ;;; | |  | |_____|_      _|_   / __/  |  __/  __/ |_) | | || (__| | | |  
__/\__ \
 ;;; |_|  |_|       |_||_| (_) |_____|  \___|\___| .__/|_|\__\___|_| 
|_|\___||___/
 ;;;                                             |_|                            
  
-;; See: (find-multiwindow-intro "Several eepitch targets")
-;; (find-eewrap-links "#" "two-eepitches" "b c")
-;; M-#: two-eepitches
-;; (define-key eev-mode-map "\M-#" 'eewrap-two-eepitches)
+;;
+;; «eewrap-two-eepitches»  (to ".eewrap-two-eepitches")
+;; See: (find-multiwindow-intro "4. Several eepitch targets")
+;;      (find-multiwindow-intro "7. Eepitch blocks for two targets")
+;; Skel: (find-eewrap-links "#" "two-eepitches" "b c")
+;; Test: (find-eewraptest-links "two-eepitches" "shell python")
 
 (defun  eewrap-two-eepitches () (interactive)
   (ee-this-line-wrapn 2 'ee-wrap-two-eepitches))
@@ -490,22 +533,35 @@ cd     {dir}"))
 ;;;  \___|\___| \_/\_/ |_|  \__,_| .__/  |_____|
 ;;;                              |_|            
 ;;
-;; See: (find-eev "eev-tlinks.el" "find-find-links-links")
+;; «ee-wrap-eewrap»  (to ".ee-wrap-eewrap")
+;; See: (find-eev "eev-tlinks.el" "find-find-links-links-new")
 ;;      (find-wrap-intro "eewrap-eewrap")
 ;; This is somewhat similar to `find-find-links-links',
 ;; but it is MUCH more primitive - consider it a demo!
 
 (defun  eewrap-eewrap () (interactive)
+  "Obsolete! Superseded by `find-eewrap-links'!"
   (ee-this-line-wrapn 3 'ee-wrap-eewrap))
+
 (defun ee-wrap-eewrap (C stem args)
+  "An internal function used by `find-eewrap-links'."
   (let ((n (length (ee-split args))))
     (ee-template0 "
+;; (find-efunction 'eewrap-{stem})
+
 ;; M-{C}: {stem}
-\(define-key eev-mode-map \"\\M-{C}\" 'eewrap-{stem})
+;; (find-eev \"eev-mode.el\" \"eev-mode-map-set\")
+;; (find-eev \"eev-mode.el\" \"eev-mode-map-set\" \"M-{C}\")
+;; (find-eev \"eev-mode.el\" \"eev-mode-map-set\" \"M-{C}\" \"eewrap-{stem}\")
+;; (define-key eev-mode-map \"\\M-{C}\" 'eewrap-{stem})
+
+;; <eewrap-{stem}>
+;; Skel: (find-eewrap-links \"{C}\" \"{stem}\" \"{args}\")
+;; Test: (find-eewraptest-links \"{stem}\" \"{args}\")
 
-\(defun  eewrap-{stem} () (interactive)
+(defun  eewrap-{stem} () (interactive)
   (ee-this-line-wrapn {n} 'ee-wrap-{stem}))
-\(defun ee-wrap-{stem} ({args})
+(defun ee-wrap-{stem} ({args})
   \"An internal function used by `eewrap-{stem}'.\"
   (ee-template0 \"\\
 {<}(ee-HS `(find-{stem} ,{args})){>}\"))\n")))
@@ -513,15 +569,17 @@ cd     {dir}"))
 
 ;; «find-eewrap-links» (to ".find-eewrap-links")
 ;; A more standard way to create `eewrap-*' functions.
-;; (find-find-links-links "<none>" "eewrap" "C stem args")
+;; Skel: (find-find-links-links-new "eewrap" "C stem args" "n")
+;; Test: (find-eewrap-links)
 ;;
 (defun find-eewrap-links (&optional C stem args &rest pos-spec-list)
-"Visit a temporary buffer containing hyperlinks for foo."
+  "Visit a temporary buffer containing hyperlinks for eewrap."
   (interactive)
   (setq C    (or C    "{C}"))
   (setq stem (or stem "{stem}"))
   (setq args (or args "{args}"))
-  (apply 'find-elinks-elisp
+  (apply
+   'find-elinks-elisp
    `((find-eewrap-links ,C ,stem ,args ,@pos-spec-list)
      ;; Convention: the first sexp always regenerates the buffer.
      (find-efunction 'find-eewrap-links)
@@ -529,8 +587,30 @@ cd     {dir}"))
      )
    pos-spec-list))
 
-;; Test: (find-eewrap-links)
 
+;; «find-eewraptest-links»  (to ".find-eewraptest-links")
+;; Skel:  (find-find-links-links-new "eewraptest" "stem line" "")
+;; Tests: (find-eewraptest-links "eejump" "42   (find-fline \"~/TODO\")")
+;;        (find-eewraptest-links "eejump" "todo (find-fline \"~/TODO\")")
+;;
+(defun find-eewraptest-links (&optional stem line &rest pos-spec-list)
+"Visit a temporary buffer containing hyperlinks for eewraptest."
+  (interactive)
+  (setq stem (or stem "{stem}"))
+  (setq line (or line "{line}"))
+  (apply
+   'find-elinks-elisp
+   `((find-eewraptest-links ,stem ,line ,@pos-spec-list)
+     ;; Convention: the first sexp always regenerates the buffer.
+     (find-efunction 'find-eewraptest-links)
+     ""
+     ,(ee-template0 "\
+;; (eek \"2*<down> <<eewrap-{stem}>>\")
+;; (find-efunction 'eewrap-{stem})
+{line}
+")
+     )
+   pos-spec-list))
 
 
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]