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

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

[elpa] externals/eev bd72cc1 4/4: Merge remote-tracking branch 'eev/UTF-


From: Stefan Monnier
Subject: [elpa] externals/eev bd72cc1 4/4: Merge remote-tracking branch 'eev/UTF-8' into externals/eev
Date: Fri, 17 May 2019 18:27:28 -0400 (EDT)

branch: externals/eev
commit bd72cc102ff9e234bfcddccb9ace4c62da44088f
Merge: ca979de 74b3d79
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    Merge remote-tracking branch 'eev/UTF-8' into externals/eev
---
 ChangeLog       |  46 ++++++
 VERSION         |   4 +-
 eev-beginner.el |   4 +-
 eev-edit.el     |  28 +++-
 eev-elinks.el   |  23 ++-
 eev-intro.el    | 350 ++++++++++++++++++++++++++++++++++++----
 eev-mode.el     |   3 +-
 eev-rcirc.el    |  50 ++++--
 eev-tlinks.el   | 486 +-------------------------------------------------------
 eev-wrap.el     |   2 +-
 eev.el          |   4 +-
 11 files changed, 460 insertions(+), 540 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index f549a0e..b4302a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,52 @@
+2019-05-17  Eduardo Ochs  <address@hidden>
+
+       * eev-elinks.el (find-here-links-3): new function.
+       (find-here-links-beginner): small changes.
+
+       * eev-intro.el: small changes.
+
+2019-05-16  Eduardo Ochs  <address@hidden>
+
+       * eev-tlinks.el (find-dhmake-links): deleted.
+       (find-newhost-links): deleted.
+
+2019-05-15  Eduardo Ochs  <address@hidden>
+
+       * eev-elinks.el (find-ekey-links): added some spaces in the
+       output.
+
+2019-05-11  Eduardo Ochs  <address@hidden>
+
+       * eev-rcirc.el (find-freenode-links): added some text.
+
+2019-04-25  Eduardo Ochs  <address@hidden>
+
+       * eev-intro.el (find-emacs-keys-intro): point to
+       (find-refining-intro).
+
+       * eev-elinks.el (find-here-links-beginner): new function.
+
+2019-04-24  Eduardo Ochs  <address@hidden>
+
+       * eev-mode.el (eev-mode-map-set): new keybinding: `M-h M-w' for
+       `ee-copy-this-line-to-kill-ring'.
+
+       * eev-edit.el (ee-copy-this-line-to-kill-ring): new function.
+
+       * eev-intro.el (find-refining-intro): new function.
+
+2019-04-15  Eduardo Ochs  <address@hidden>
+
+       * eev-rcirc.el (eepitch-freenode): new function.
+
 2019-04-14  Eduardo Ochs  <address@hidden>
 
+       * eev-intro.el (find-eev-install-intro): small changes.
+
+       * eev.el: small changes.
+
        * eev-intro.el (find-rcirc-intro): rewrote completely.
+       (find-escripts-intro): small changes.
 
        * eev-rcirc.el: rewrote all comments and some docstrings.
        (ee-irc-channel-around-point): commented out.
diff --git a/VERSION b/VERSION
index 63f9b9a..1ea0fe5 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Sun Apr 14 17:08:11 GMT 2019
-Sun Apr 14 14:08:11 -03 2019
+Fri May 17 07:17:49 GMT 2019
+Fri May 17 04:17:49 -03 2019
diff --git a/eev-beginner.el b/eev-beginner.el
index fd2d32c..ae0430d 100644
--- a/eev-beginner.el
+++ b/eev-beginner.el
@@ -53,8 +53,8 @@
 ;;
 ;; When, or if, you are no longer a beginner, you may want to load eev
 ;; by just adding a "(require 'eev-load)" to your ".emacs". This loads
-;; all the main modules but not turn on eev-mode on by default, and
-;; does not open the tutorial. See:
+;; all the main modules but does not turn on eev-mode on by default,
+;; and does not open the tutorial. See:
 ;;
 ;;    (find-eev-intro "1. `eev-mode'")
 ;;    (find-eev "eev-load.el")
diff --git a/eev-edit.el b/eev-edit.el
index 9b81436..e91eeef 100644
--- a/eev-edit.el
+++ b/eev-edit.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019mar02
+;; Version:    2019apr25
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-edit.el>
@@ -31,6 +31,7 @@
 ;;; Commentary:
 
 ;; See:
+;;   (find-refining-intro "2. Refining hyperlinks")
 ;;   (find-eval-intro "9. Producing and refining hyperlinks")
 ;;   (find-escripts-intro "5.7. Refining hyperlinks")
 ;;   (find-escripts-intro "5.8. Pointing to anchors")
@@ -42,6 +43,7 @@
 
 ;; «.ee-duplicate-this-line»           (to "ee-duplicate-this-line")
 ;; «.ee-yank-pos-spec»                 (to "ee-yank-pos-spec")
+;; «.ee-copy-this-line-to-kill-ring»   (to "ee-copy-this-line-to-kill-ring")
 ;; «.ee-shrink-hyperlink-at-eol»       (to "ee-shrink-hyperlink-at-eol")
 ;; «.ee-flip-psne-ness»                        (to "ee-flip-psne-ness")
 ;; «.eewrap-vldi-list-line»            (to "eewrap-vldi-list-line")
@@ -110,6 +112,30 @@ and you copy that hyperlink to a more permanent place."
 
 
 
+;;;   ____                        _   _     _           _ _            
+;;;  / ___|___  _ __  _   _      | |_| |__ (_)___      | (_)_ __   ___ 
+;;; | |   / _ \| '_ \| | | |_____| __| '_ \| / __|_____| | | '_ \ / _ \
+;;; | |__| (_) | |_) | |_| |_____| |_| | | | \__ \_____| | | | | |  __/
+;;;  \____\___/| .__/ \__, |      \__|_| |_|_|___/     |_|_|_| |_|\___|
+;;;            |_|    |___/                                            
+;;
+;; «ee-copy-this-line-to-kill-ring» (to ".ee-copy-this-line-to-kill-ring")
+;; (define-key eev-mode-map "\M-h\M-w" 'ee-copy-this-line-to-kill-ring)
+
+(defun ee-copy-this-line-to-kill-ring ()
+  "Copy the current line to the kill ring and highlight (\"flash\") it."
+  (interactive)
+  (let* ((start (ee-bol))
+        (end   (save-excursion (next-line) (ee-bol)))
+        (str   (buffer-substring start end))
+        (msg   "Copied the current line to the kill ring - use C-y to paste"))
+    (eeflash+ start end eeflash-copy)
+    (kill-new str)
+    (message msg)))
+
+
+
+
 ;;;      _          _       _    
 ;;;  ___| |__  _ __(_)_ __ | | __
 ;;; / __| '_ \| '__| | '_ \| |/ /
diff --git a/eev-elinks.el b/eev-elinks.el
index 3fdca83..e330221 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019apr01
+;; Version:    2019may17
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-elinks.el>
@@ -372,8 +372,8 @@ See: (find-eev \"eev-elinks.el\" \"find-ekey-links\")"
           `((find-ekey-links ,key ,@pos-spec-list)
             ;; Convention: the first sexp always regenerates the buffer.
             (find-ekey-links          ,key)
-            (eek ,(format "M-h M-k %s" longkey))
-            (eek ,(format "M-h M-k %s" longkey+))
+            (eek ,(format "M-h M-k  %s" longkey))
+            (eek ,(format "M-h M-k  %s" longkey+))
             (find-efunctiondescr ',f)
             ""
             (find-elongkey-links      ,longkey)
@@ -1273,6 +1273,23 @@ This needs a temporary directory; see: 
(find-prepared-intro)"
 
 
 
+;; This is a hack for beginners that is explained in a tutorial. See:
+;; (find-refining-intro "4. A tip for beginners")
+;; (find-refining-intro "4. A tip for beginners" "find-here-links-beginner")
+;;
+(defun find-here-links-3 ()
+  "A variant of `find-here-links' that creates a three-window setting."
+  (interactive "P")
+  (find-wset "13_o2_o_coo" nil '(find-here-links) '(eejump-1)))
+
+(defun find-here-links-beginner (&optional arg)
+  "A variant of `find-here-links' that may create a three-window setting."
+  (interactive "P")
+  (if arg (find-here-links-3) (find-here-links)))
+
+
+
+
 
 
 
diff --git a/eev-intro.el b/eev-intro.el
index 007601b..34ffd52 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019apr14
+;; Version:    2019may17
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-intro.el>
@@ -62,6 +62,7 @@
 ;; «.find-emacs-keys-intro»    (to "find-emacs-keys-intro")
 ;; «.find-eev-install-intro»   (to "find-eev-install-intro")
 ;; «.find-eev-intro»           (to "find-eev-intro")
+;; «.find-refining-intro»      (to "find-refining-intro")
 ;;
 ;; «.find-eval-intro»          (to "find-eval-intro")
 ;; «.find-links-conv-intro»    (to "find-links-conv-intro")
@@ -529,8 +530,7 @@ A way to go quickly to \"~/TODO\" is explained in section 
7.1.
 A way to \"refine\" hyperlinks to make them more precise is
 explained here:
 
-  (find-eval-intro \"9. Producing and refining hyperlinks\")
-
+  (find-refining-intro \"2. Refining hyperlinks\")
 
 
 
@@ -813,6 +813,7 @@ The pattern is:
 `defun' is explained here:
 
   (find-elnode \"Defining Functions\" \"(defun foo () 5)\")
+  (find-eval-intro \"10. More on functions\")
 
 As a special case, a plain `M-j' without a prefix argument runs a
 special function, `find-eejumps', that shows a help text followed
@@ -1662,6 +1663,8 @@ The keys for creating \"hyperlinks to here\" and refining 
them are:
   M-h M-h   - `find-here-links'. See: (find-eev-quick-intro \"`M-h M-h'\")
   M-h M-2   - `ee-duplicate-this-line'. See: (find-eval-intro \"M-h M-2\")
   M-h M-y   - `ee-yank-pos-spec'. See: (find-eval-intro \"M-h M-y\")
+            See also: (find-refining-intro \"2. Refining hyperlinks\")
+                      (find-refining-intro \"4. A tip for beginners\")
 
 
 2. Key sequences and how to abort them
@@ -1693,6 +1696,7 @@ the \"point\" and the \"mark\":
 
   (find-enode \"Point\")
   (find-enode \"Mark\")
+  (find-enode \"Shift Selection\")
 
 You can do cut, copy and paste by using the icons in the toolbar
 or by using the menu bar (the relevant options are under
@@ -1706,6 +1710,7 @@ or by using the menu bar (the relevant options are under
 
 See: (find-enode \"Tool Bars\")
      (find-enode \"Menu Bar\")
+     (find-emacs-keys-intro \"3. Cutting & pasting\")
 
 
 
@@ -1980,15 +1985,16 @@ be byte-compilable, 2) be compatible with lexical 
binding, and 3)
 have all the autoloads. My reasons for not complying - or for not
 complying NOW - are explained in the subsections below.
 
-I will try to submit eev to MELPA in the next few days - in
-mid-april 2019. I have the feeling that the issues blocking it
-from going into ELPA will take a few years to be solved.
-
 Btw: except for Stefan's e-mails ***100%*** the feedback that I
 received about eev in the last three years came from beginners.
 I am not willing to make changes that will make eev
 beginner-UNfriendly.
 
+UPDATE: in 2019apr14 eev became a part of ELPA even despite its
+quirks!!! Its ELPA page is here:
+
+  http://elpa.gnu.org/packages/eev.html
+
 
 
 
@@ -2159,39 +2165,40 @@ These ones explain ideas, conventions, and usage 
patterns:
 
    4. (find-escripts-intro)
    5. (find-links-conv-intro)
+   6. (find-refining-intro)
 
 These are older and more technical versions of sections of the
 eev-quick-intro:
 
-   6. (find-eval-intro)
-   7. (find-links-intro)
-   8. (find-brxxx-intro)
-   9. (find-eepitch-intro)
-  10. (find-wrap-intro)
-  11. (find-eejump-intro)
-  12. (find-anchors-intro)
-  13. (find-code-c-d-intro)
-  14. (find-pdf-like-intro)
-  15. (find-psne-intro)
+   7. (find-eval-intro)
+   8. (find-links-intro)
+   9. (find-brxxx-intro)
+  10. (find-eepitch-intro)
+  11. (find-wrap-intro)
+  12. (find-eejump-intro)
+  13. (find-anchors-intro)
+  14. (find-code-c-d-intro)
+  15. (find-pdf-like-intro)
+  16. (find-psne-intro)
 
 These are etcs:
 
-  16. (find-multiwindow-intro)
-  17. (find-audiovideo-intro)
-  18. (find-rcirc-intro)
-  19. (find-templates-intro)
-  20. (find-videos-intro)
+  17. (find-multiwindow-intro)
+  18. (find-audiovideo-intro)
+  19. (find-rcirc-intro)
+  20. (find-templates-intro)
+  21. (find-videos-intro)
 
 These ones explain advanced features that require extra setup:
 
-  21. (find-prepared-intro)
-  22. (find-bounded-intro)
-  23. (find-channels-intro)
+  22. (find-prepared-intro)
+  23. (find-bounded-intro)
+  24. (find-channels-intro)
 
 These ones are obsolete:
 
-  24. (find-emacs-intro)
-  25. (find-defun-intro)
+  25. (find-emacs-intro)
+  26. (find-defun-intro)
 
 Item 20 is an index of the (old) video tutorials, with scripts
 for downloading local copies of them and links to important
@@ -2268,6 +2275,287 @@ For the full lists of keybindings, see:
 
 
 
+;;;            __ _       _             
+;;;  _ __ ___ / _(_)_ __ (_)_ __   __ _ 
+;;; | '__/ _ \ |_| | '_ \| | '_ \ / _` |
+;;; | | |  __/  _| | | | | | | | | (_| |
+;;; |_|  \___|_| |_|_| |_|_|_| |_|\__, |
+;;;                               |___/ 
+;;
+;; «find-refining-intro» (to ".find-refining-intro")
+;; (find-intro-links "refining")
+
+(defun find-refining-intro (&rest pos-spec-list) (interactive)
+  (let ((ee-buffer-name "*(find-refining-intro)*"))
+    (apply 'find-eintro "\
+\(Re)generate: (find-refining-intro)
+Source code:  (find-efunction 'find-refining-intro)
+More intros:  (find-eev-quick-intro)
+              (find-eval-intro)
+This buffer is _temporary_ and _editable_.
+Is is meant as both a tutorial and a sandbox.
+
+
+(find-eval-intro \"9. Producing and refining hyperlinks\")
+(find-emacs-keys-intro \"and refining them\")
+(find-eval-intro \"6. Refining hyperlinks\")
+
+
+
+
+1. Pos-spec-lists
+=================
+Most hyperlinks functions defined by eev can be \"refined\" by
+the addition of extra arguments. These extra arguments are called
+a \"pos-spec\" (or a \"pos-spec-list\") and they specify a
+position in the target buffer. The first argument means a certain
+line number, when it is a number, or the first occurrence of a
+certain string, when it is a string. Try:
+
+  (find-enode \"Command Index\")
+  (find-enode \"Command Index\" \"eval-last-sexp\")
+
+Further arguments mean either \"move down n lines\" or \"search
+for the next occurrence of a string\", depending on whether they
+are numbers or strings. Try:
+
+  (find-sh \"seq 2095 2115\")
+  (find-sh \"seq 2095 2115\" \"2100\")
+  (find-sh \"seq 2095 2115\" \"2100\" \"9\")
+  (find-sh \"seq 2095 2115\" \"2100\" 2)
+
+In most cases an empty pos-spec-list, like this,
+
+  (find-sh \"seq 2095 2115\")
+
+means: \"if the target buffer already exists then just open it\"
+- so that following that hyperlink would jump to the current
+position of the point in that buffer.
+
+Pos-spec-lists are usually interpreted by the function
+`ee-goto-position'. The first argument is interpreted in a
+special way, according to its type:
+
+    string -> jump to the first occurrence of
+              that string in the buffer
+    number -> jump to the n-th line
+
+and the other arguments are interpreted (recursively) by
+`ee-goto-rest':
+
+    string -> jump to the next occurence of that string
+    number -> move down n lines
+    list   -> evaluate the list
+
+Here is an example in which one of the arguments is a list.
+Suggestion: execute it with `M-2 M-e'.
+
+  (find-sh \"seq 2095 2115\" \"2100\" \"9\" '(eek \"!!!\"))
+
+There are some variants of `ee-goto-position' in which the first
+argument is interpreted in a different way, but we will not
+discuss them here. See:
+
+  (find-efunction 'ee-goto-anchor)
+  (find-eev \"eev-pdflike.el\" \"ee-goto-position-page\")
+
+If you want to add support for more complex pos-spec-lists, just
+replace `ee-goto-rest' with your own extended version.
+
+
+
+
+2. Refining hyperlinks
+======================
+To _refine_ a hyperlink means to add items to its pos-spec-list
+to make it point to a more precise location. For example, in the
+links below the first one points to an \"intro\", the second
+points to a section in it, and the third points to an important
+idea in that section:
+
+  (find-escripts-intro)
+  (find-escripts-intro \"5. Tools for writing e-scripts\")
+  (find-escripts-intro \"5. Tools for writing e-scripts\" \"alternate\")
+
+The paragraph where the word \"alternate\" is talks about how to
+alternate between a \"task\" and \"taking notes\" without losing
+focus on the \"task\". Eev has some keys sequences for doing
+that:
+
+  M-h M-h   - `find-here-links'. See: (find-eev-quick-intro \"`M-h M-h'\")
+  M-h M-2   - `ee-duplicate-this-line'
+  M-h M-y   - `ee-yank-pos-spec'
+  M-h M-w   - `ee-copy-this-line-to-kill-ring'
+
+Let me explain them starting by the two middle ones. This sexp
+
+  (kill-new \"Tools for\")
+
+puts the string \"Tools for\" on the top of the kill ring; we can
+use it to simulate what happens when the user marks a region
+containing that string and runs `M-w'. See:
+
+  (find-enode \"Kill Ring\")
+  (find-emacs-keys-intro \"3. Cutting & pasting\")
+
+Try the first two sexps below:
+
+  (kill-new \"Tools for\")
+  (eek \"<down>  M-h M-2  M-h M-y\")
+  (find-escripts-intro)
+
+The `eek' duplicates the line with \"(find-escripts-intro)\" and
+then runs `M-h M-y' (`ee-yank-pos-spec') on it; `M-h M-y' is
+based on `C-y' (`yank'),
+
+  (find-enode \"Yanking\")
+
+but `M-h M-y' \"yanks\" the text at the end of the sexp, in
+quotes, as an new argument.
+
+
+
+
+3. Three buffers
+================
+One very common usage pattern involves three buffers:
+
+  1. a buffer where we are storing our notes (the \"notes
+     buffer\").
+
+  2. a buffer with something interesting that we want to create a
+     link to (the \"target buffer\"),
+
+  3. a temporary buffer with editable hyperlinks, usually created
+     by `find-here-links' (the \"elinks buffer\").
+
+Usually beginners use the file \"~/TODO\" - that can be accessed
+with `M-1 M-j' - for all the e-script notes that they create;
+learning to keep notes in several files is a skill that comes
+later.
+
+Let's take a concrete example. We found something interesting in
+section 4 of `(find-escripts-intro)', and we want to keep a link
+to that; we decided to use the string \"snip, snip\" to refine
+the hyperlink -
+
+  (find-escripts-intro)
+  (find-escripts-intro \"4. How to read an e-script\")
+  (find-escripts-intro \"snip, snip\")
+
+and we want to produce the refined hyperlink - using the keys
+from the previous section -, copy it to our notes buffer, and go
+back to the target buffer. The keys to switch buffers are shown
+below,
+
+   ________           ________           ________           ________
+  |        |         :        :         |        |         |        |
+  | target | M-h M-h : elinks : M-1 M-j | notes  | M-K M-K | target |
+  | buffer | ------> : buffer : ------> | buffer | ------> | buffer |
+  |________|         :________:         |________|         |________|
+
+but there are also some things that we need to do inside each one
+of these buffers:
+
+  a. In the target buffer: mark the string \"snip, snip\" and
+     copy it to the kill ring with `M-w' (`kill-ring-save');
+
+  b. In the elinks buffer: go to the line with the hyperlink that
+     points to the target buffer - `(find-escripts-intro)' -,
+     refine it with `M-h M-2 M-h M-y', copy its line to the kill
+     ring with `M-h M-w' (`ee-copy-this-line-to-kill-ring');
+
+  c. In the notes buffer: insert the refined hyperlink with
+     `C-y' (`yank').
+
+Note: `M-h M-w' (`ee-copy-this-line-to-kill-ring') is a key
+sequence intended for beginners. I prefer to use something like
+`C-a shift-<down> M-w'.
+
+
+
+
+4. A tip for beginners
+======================
+Some people find the instructions above hard to follow because
+they force them to remember lots of things that are off-screen.
+If you run the second sexp below,
+
+  (define-key eev-mode-map \"\\M-h\\M-h\" 'find-here-links)
+  (define-key eev-mode-map \"\\M-h\\M-h\" 'find-here-links-beginner)
+
+it will rebind the key sequence `M-h M-h' to a variant of
+`find-here-links' for beginners that creates this window
+configuration when invoked as `M-3 M-h M-h':
+
+   _____________________
+  |          |          |
+  |          |  elinks  |
+  |          |  buffer  |
+  |  target  |__________|
+  |  buffer  |          |
+  |          |  notes   |
+  |          |  buffer  |
+  |__________|__________|
+
+You can then try to run the instructions in the last section with
+all the three buffers visible, switching from one buffer to
+another by clicking on their windows. Note that the order is:
+
+   _____________________
+  |          |          |
+  |         ==> elinks  |
+  |          |  buffer  |
+  |  target  |____||____|
+  |  buffer  |    \\/    |
+  |          |  notes   |
+  |         <== buffer  |
+  |__________|__________|
+
+and note also that, in the terminology of
+
+  (find-escripts-intro \"alternate\" \"task\" \"notes\")
+
+the left side is \"task\" and the right side is \"notes\".
+
+To rebind `M-h M-h' to its original function, run this:
+
+  (define-key eev-mode-map \"\\M-h\\M-h\" 'find-here-links)
+
+or restart Emacs.
+
+The big figure below shows all the keys sequences:
+
+   _______________________________________
+  |                 |                     |
+  |                 |       elinks        |
+  |   target    `M-h M-h'   buffer:       |
+  |   buffer:   ::::::::>   `M-h M-y      |
+  |   `M-w'         |        M-h M-w'     |
+  |                 |                     |
+  |                 |        ::`M-1 M-j'  |
+  |                 |_______ :: __________|
+  |                 |        \\/           |
+  |                 |                     |
+  |             `M-K M-K'   notes         |
+  |             <::::::::   buffer:       |
+  |                 |       `C-y'         |
+  |                 |                     |
+  |_________________|_____________________|
+
+
+
+
+
+
+
+
+
+" pos-spec-list)))
+
+;; (find-refining-intro)
+
+
 
 
 ;;;                  _ 
@@ -6402,8 +6690,8 @@ discussion of free software projects happen), called
 
 
 
-1. The example the I use in workshops
-=====================================
+1. The example that I use in workshops
+======================================
 Let's start with an example. In
 
   (setq rcirc-default-nick \"hakuryo\")
@@ -8504,7 +8792,7 @@ reviewed in the subsections below.
 
   # (find-fline \"/tmp/lua-intro.e\")
   # (find-anchor \"/tmp/lua-intro.e\" \"intro:types\")
-  # (defun eejump-11 () (find-fline \"/tmp/lua-intro.e\"))
+  # (defun eejump-71 () (find-fline \"/tmp/lua-intro.e\"))
 
   --snip, snip--
 
@@ -8708,7 +8996,7 @@ about downloading and using an eev-based Lua tutorial. 
Let's
 think of each of these blocks as a _task_.
 
 The task \"install Lua5.1\" is performed in one way if we're
-doing it for the first time, and in a different was if we're
+doing it for the first time, and in a different way if we're
 doing it for the n-th time with some memory of what we did in the
 previous times and of what we found important and what not.
 Performing a task like this consists of several steps, that can
diff --git a/eev-mode.el b/eev-mode.el
index 76a6dc2..a7dc1a5 100644
--- a/eev-mode.el
+++ b/eev-mode.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019mar02
+;; Version:    2019apr24
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-mode.el>
@@ -144,6 +144,7 @@ and: (find-eval-intro \"`M-k'\")"
   ;; Source: (find-eev "eev-edit.el")
   (define-key eev-mode-map "\M-h\M-2" 'ee-duplicate-this-line)
   (define-key eev-mode-map "\M-h\M-y" 'ee-yank-pos-spec)
+  (define-key eev-mode-map "\M-h\M-w" 'ee-copy-this-line-to-kill-ring)
   (define-key eev-mode-map "\M-h\M--" 'ee-shrink-hyperlink-at-eol)
   ;;
   ;; These ones are also from: (find-eev "eev-edit.el")
diff --git a/eev-rcirc.el b/eev-rcirc.el
index f104b38..0c3ee0d 100644
--- a/eev-rcirc.el
+++ b/eev-rcirc.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019apr14
+;; Version:    2019may11
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-rcirc.el>
@@ -336,6 +336,13 @@ This is like `find-rcirc-buffer-3a' but uses
 
 
 
+;; See: (find-efunction 'eepitch)
+;;      (find-efunction 'eepitch-to-buffer)
+(defun eepitch-freenode (channel)
+  (interactive) (eepitch '(find-freenode channel)))
+
+
+
 
 ;;;   __                               _            _ _       _        
 ;;;  / _|_ __ ___  ___ _ __   ___   __| | ___      | (_)_ __ | | _____ 
@@ -345,20 +352,33 @@ This is like `find-rcirc-buffer-3a' but uses
 ;;;                                                                    
 ;; «find-freenode-links» (to ".find-freenode-links")
 
-(defun find-freenode-links (&optional c channel &rest pos-spec-list)
+(defun find-freenode-links (&optional c channels &rest pos-spec-list)
 "Visit a temporary buffer containing code for connecting to a freenode 
channel."
   (interactive)
   (setq c (or c "{c}"))
-  (setq channel (or channel "{channel}"))
-  (apply 'find-elinks
-   `((find-freenode-links ,c ,channel)
-     (find-freenode-links "e" "#eev")
-     (find-freenode-links)
-     ;; Convention: the first sexp always regenerates the buffer.
-     (find-efunction 'find-freenode-links)
-     (find-efunction 'find-freenode-2a)
-     ""
-     ,(ee-template0 "\
+  (setq channels (or channels "{channels}"))
+  (let ((channel (car (ee-split channels))))
+    (apply 'find-elinks
+     `((find-freenode-links ,c ,channels)
+       (find-freenode-links "e" "#eev")
+       (find-freenode-links)
+       ;; Convention: the first sexp always regenerates the buffer.
+       ;; (find-efunction 'find-freenode-links)
+       ;; (find-efunction 'find-freenode-2a)
+       ""
+       ,(ee-template0 "\
+;; To copy this to your .emacs, use:
+;; (ee-copy-rest 3 '(find-fline \"~/.emacs\"))
+
+
+
+;; Use (setq rcirc-default-nick-name ...) to set your nickname.
+;; The default is to use \"#eev\" as the list of \"initial channels\",
+;; the same list as the list of channels to always reconnect to, and
+;; `M-x e3' and `M-x e2' to create the window setups described here:
+;;
+;;   (find-rcirc-intro \"1. The example that I use in workshops\")
+;;
 (setq rcirc-default-nick \"hakuryo\")
 (setq rcirc-default-nick \"{(user-login-name)}\")
 (setq ee-freenode-ichannels {(ee-pp0 ee-freenode-ichannels)})
@@ -366,11 +386,13 @@ This is like `find-rcirc-buffer-3a' but uses
 (defun {c}2 () (interactive) (find-freenode-2a \"{channel}\"))
 (defun {c}3 () (interactive) (find-freenode-3a \"{channel}\"))
 ")
-     )
-   pos-spec-list))
+       )
+     pos-spec-list)))
 
 ;; Tests: (find-freenode-links)
 ;;        (find-freenode-links "e" "#eev")
+;;        (find-freenode-links "e" "#eev #emacs")
+;;   (find-rcirc-intro)
 
 (provide 'eev-rcirc)
 
diff --git a/eev-tlinks.el b/eev-tlinks.el
index 06b0fcc..3e5a696 100644
--- a/eev-tlinks.el
+++ b/eev-tlinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019mar05
+;; Version:    2019may16
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-tlinks.el>
@@ -61,13 +61,9 @@
 ;; «.find-debpkg-links»                (to "find-debpkg-links")
 ;; «.find-eev-install-links»   (to "find-eev-install-links")
 ;; «.find-eev-update-links»    (to "find-eev-update-links")
-;; «.find-newhost-links»       (to "find-newhost-links")
-;; «.find-dhmake-links»                (to "find-dhmake-links")
 ;; «.find-youtubedl-links»     (to "find-youtubedl-links")
-;; «.find-upload-links»                (to "find-upload-links")
 ;; «.find-psne-links»          (to "find-psne-links")
 ;; «.find-git-links»           (to "find-git-links")
-;; «.find-netcat-test-links»   (to "find-netcat-test-links")
 ;; «.find-eev-video-links»     (to "find-eev-video-links")
 ;;
 ;; «.find-latex-links»         (to "find-latex-links")
@@ -75,7 +71,6 @@
 ;; «.find-escreenshot-links»   (to "find-escreenshot-links")
 
 
-
 (require 'eev-env)
 (require 'eev-wrap)    ; For: (find-eev "eev-wrap.el" "ee-template0") 
 
@@ -297,7 +292,7 @@ See: (find-eev \"eev-intro.el\")"
 
 \(defun find-{stem}-intro (&rest pos-spec-list) (interactive)
   (let ((ee-buffer-name \"*(find-{stem}-intro)*\"))
-    (apply 'find-estring \"\\
+    (apply 'find-eintro \"\\
 \\(Re)generate: (find-{stem}-intro)
 Source code:  (find-efunction 'find-{stem}-intro)
 More intros:  (find-eev-quick-intro)
@@ -420,7 +415,7 @@ Hello
      ,(ee-template0 "
 ;;; {stem-el} -- ???.
 
-;; Copyright (C) 2012 Free Software Foundation, Inc.
+;; Copyright (C) 2019 Free Software Foundation, Inc.
 ;;
 ;; This file is part of GNU eev.
 ;;
@@ -801,368 +796,6 @@ emacs    -fg bisque -bg black                  
eev-readme.el
 
 
 
-;;;                      _               _   
-;;;  _ __   _____      _| |__   ___  ___| |_ 
-;;; | '_ \ / _ \ \ /\ / / '_ \ / _ \/ __| __|
-;;; | | | |  __/\ V  V /| | | | (_) \__ \ |_ 
-;;; |_| |_|\___| \_/\_/ |_| |_|\___/|___/\__|
-;;;                                          
-;; «find-newhost-links»  (to ".find-newhost-links")
-;; Scripts to connect to a newly-installed Debian machine
-;; (find-angg ".emacs.templates" "find-newhost-links")
-;; (find-find-links-links "newhost" "thatmname thatip thismname thisip 
thisiface")
-;; (find-angg "bin/etc.lua" "inet_addr")
-
-;; New, not used yet:
-(defun ee-inet-addr (&optional iface str)
-"Return the IP after \"inet addr:\" in the output of \"/sbin/ifconfig IFACE\".
-The defaulr for IFACE is \"wlan0\". If STR is non-nil, pretend that the
-output of /sbin/ifconfig was STR (for debugging)."
-  (setq iface (or iface "wlan0"))
-  (setq str (or str (find-sh0 (format "/sbin/ifconfig %s" iface))))
-  (if (string-match "inet addr:\\([0-9.]+\\)" str)
-      (match-string 1 str)))
-;;
-;; See also: system-name
-
-(defvar ee-this-mname nil)
-(defvar ee-this-iface "wlan0")
-(defvar ee-this-ip nil)
-;;
-(defun  ee-this-mname () (find-sh0 "uname -n"))
-(defun  ee-this-ip    (&optional iface)
-  (find-sh0 (format "/sbin/ifconfig %s | etc.lua inet_addr"
-                   (or ee-this-iface iface))))
-;;
-;;   (find-sh0 "uname -n")
-;;   (find-sh0 "/sbin/ifconfig")
-;;   (find-sh0 "/sbin/ifconfig wlan0")
-;;   (find-sh0 "/sbin/ifconfig eth0")
-;;   (setq ee-this-iface "wlan0")
-;;   (setq ee-this-iface "eth0")
-;;   (ee-this-mname)
-;;   (ee-this-ip)
-;; (setq ee-this-mname (ee-this-mname))
-;; (setq ee-this-ip (ee-this-ip))
-
-(defun find-newhost-links (&optional thatmname thatip thismname thisip 
thisiface &rest rest)
-  "Visit a temporary buffer with an e-script to set up a new host."
-  (interactive)
-  (let ((thisdisplay))
-    (setq thatmname (or thatmname "{thatmname}"))
-    (setq thatip    (or thatip    "{thatip}"))
-    (setq thismname (or thismname ee-this-mname "{thismname}"))
-    (setq thisip    (or thisip    ee-this-ip    "{thisip}"))
-    (setq thisiface (or thisiface ee-this-iface "{thisiface}"))
-    (setq thisdisplay (or (getenv "DISPLAY") "{thisdisplay}"))
-    (apply 'find-elinks `(
-      ;; Convention: the first sexp always regenerates the buffer.
-      (find-newhost-links ,thatmname ,thatip ,thismname ,thisip ,thisiface)
-      (find-newhost-links ,thatmname ,thatip ,ee-this-mname ,ee-this-ip 
,ee-this-iface)
-      (find-newhost-links ,thatmname ,thatip nil nil nil)
-      (find-newhost-links ,thatmname ,thatip)
-      (find-efunction 'find-newhost-links)
-      ;; Body:
-      ""
-      ,(ee-template0 "\
-# Basic setup (on this machine, {thismname} - set thismname and thisip):
-#   (find-sh0 \"/sbin/ifconfig wlan0\")
-#   (find-sh0 \"/sbin/ifconfig eth0\")
-#   (setq ee-this-iface \"wlan0\")
-#   (setq ee-this-iface \"eth0\")
-#   (ee-this-mname)
-#   (ee-this-ip)
-# (setq ee-this-mname (ee-this-mname))
-# (setq ee-this-ip    (ee-this-ip))
-# (find-newhost-links \"{thatmname}\" \"{thatip}\")
-
-# Make sure that we can refer to {thatmname} by name
-#   (find-sh0 \"ls -l          /etc/hosts\")
-#   (find-sh0 \"sudo chmod 666 /etc/hosts\")
-#   (kill-new \"{thatip}   {thatmname}\")
-#   (find-fline \"/etc/hosts\")
-#   (find-fline \"/etc/hosts\" \"{thatmname}\")
-#   (find-fline \"/etc/hosts\" \"{thatip}\")
-
-# Basic setup (on the remote machine, {thatmname} - by hand):
-#   adduser edrx
-#   (find-es \"sudo\" \"sudo\")
-#   apt-get install openssh-server xterm
-#   chmod 666 /etc/hosts
-#   nano      /etc/hosts
-#   (kill-new \"{thisip}   {thismname}\")
-
-# Try to connect:
-#   (find-sh0 \"ssh-keygen -R {thatip}\")
-#   (find-sh0 \"ssh-keygen -R {thatmname}\")
-
- (eepitch-shell)
- (eepitch-kill)
- (eepitch-shell)
-ssh address@hidden
-exit
-ssh address@hidden
-exit
-
-# Try file access by tramp
-#   (find-fline \"/ssh:address@hidden:/\")
-#   (find-fline \"/scp:address@hidden:/\")
-#   (find-fline \"/ssh:address@hidden:/\")
-#   (find-fline \"/scp:address@hidden:/\")
-
-;; If that works:
-\(code-c-d \"{thatmname}\" \"/scp:address@hidden:\")
-\(code-c-d \"{thatmname}\" \"/ssh:address@hidden:\")
-;; (find-{thatmname}file \"/\")
-;; (find-{thatmname}file \"/home/edrx/\")
-\(defun eepitch-{thatmname} () (interactive)
-  (eepitch '(find-comintprocess \"ssh {thatmname}\" \"ssh address@hidden")))
-\(defun eepitch-{thatmname}root () (interactive)
-  (eepitch '(find-comintprocess \"ssh {thatmname}\" \"ssh address@hidden")))
-
-
-# Make sure that the remote machine knows this hostname
-ssh address@hidden
-  #
-  # Does the remote machine know this hostname?
-  echo \"{thisip}   {thismname}\"
-  cat            /etc/hosts | grep {thismname}
-  #
-  # If it isn't there, add it:
-  cat            /etc/hosts
-  ls -l          /etc/hosts
-  sudo chmod 666 /etc/hosts
-  echo \"{thisip}   {thismname}\" >> /etc/hosts
-  cat            /etc/hosts | grep {thismname}
-  cat            /etc/hosts
-  #
-  # Try to open a remote xterm on this X server
-  # (find-sh0 \"xhost -\")
-  # (find-sh0 \"xhost +\")
-  DISPLAY={thisip}{thisdisplay} xterm -T \"address@hidden" &
-  DISPLAY={thismname}{thisdisplay} xterm -T \"address@hidden" &
-  exit
-
-
-# A high-level version of the above:
-# (find-sh0 \"xhost +\")
-# (find-{thatmname}file \"/etc/hosts\" \"{thismname}\")
-#   (eekill \"{thisip}   {thismname}\\n\")
-#   (eekill \"# (setq backup-inhibited t)\\n\")
-
- (eepitch-{thatmname})
- (eepitch-kill)
- (eepitch-{thatmname})
-DISPLAY={thisip}{thisdisplay} xterm -T \"address@hidden" &
-DISPLAY={thismname}{thisdisplay} xterm -T \"address@hidden" &
-
-")
-    ) rest)))
-
-;; (find-newhost-links)
-;; (find-newhost-links "gwen" "192.168.1.101")
-
-
-
-;;;      _ _                     _        
-;;;   __| | |__  _ __ ___   __ _| | _____ 
-;;;  / _` | '_ \| '_ ` _ \ / _` | |/ / _ \
-;;; | (_| | | | | | | | | | (_| |   <  __/
-;;;  \__,_|_| |_|_| |_| |_|\__,_|_|\_\___|
-;;;                                       
-;; «find-dhmake-links»  (to ".find-dhmake-links")
-;;
-;; Some templates for generating ".deb"s.
-;; If you want to build a .deb for a package called, say, "foo-bar",
-;; these scripts will use the directory "~/usrc/foo-bar/foo-bar_xxx/"
-;; to build it - that directory will be recreated from scratch each
-;; time - and the "override files for dhmake" will be taken from the
-;; directory "~/foo-bar/". At this moment these paths are hardcoded.
-;;
-;; I generate the 3 main packages at
-;;   http://angg.twu.net/debian/
-;;   http://angg.twu.net/debian/README.html
-;; with these commands:
-;;   (find-dhmake-links "eev" "eevbuild")
-;;   (find-dhmake-links "eev-puro" "eevpuro")
-;;   (find-dhmake-links "eev-lua-extras" "eevluaextras")
-
-(defvar ee-dhmake-fullname "Eduardo Ochs")
-(defvar ee-dhmake-email "address@hidden")
-
-;; (find-estring-elisp (ee-dhmake-codecds "eev-puro" "eevpuro" "20120305"))
-;;
-(defun ee-dhmake-codecds (stem c date)
-  (ee-template '(stem c date) "\
-;; Generated by:
-;; (ee-dhmake-codecds \"{stem}\" \"{c}\" \"{date}\")
-;;
-\(code-c-d \"{c}dh\"  \"~/{stem}/\")
-\(code-c-d \"{c}dhd\" \"~/{stem}/debian/\")
-\(code-c-d \"{c}\"    \"~/usrc/{stem}/{stem}-0.1.{date}/\")
-\(code-c-d \"{c}d\"   \"~/usrc/{stem}/{stem}-0.1.{date}/debian/\")
-\(code-c-d \"{c}dd\"  \"~/usrc/{stem}/{stem}-0.1.{date}/debian/{stem}/\")
-\(code-c-d \"{c}unp\" \"~/usrc/{stem}/{stem}-unpacked/\")
-;; (find-{c}dhfile  \"\")
-;; (find-{c}dhdfile \"\")
-;; (find-{c}file    \"\")
-;; (find-{c}dfile   \"\")
-;; (find-{c}ddfile  \"\")
-;; (find-{c}unpfile \"\")
-;; (find-{c}dsh   \"find * | sort\")
-;; (find-{c}ddsh  \"find * | sort\")
-;; (find-{c}unpsh \"find * | sort\")
-;; (find-status   \"{stem}-deb\")
-;; (find-vldifile \"{stem}-deb.list\")
-;; (find-udfile   \"{stem}-deb-puro/\")"))
-
-;; (find-estring (ee-dhmake-build "eev-puro" "eevpuro" "20120305"))
-;;
-(defun ee-dhmake-build (stem c date)
-  (ee-template '(stem c date ee-dhmake-fullname ee-dhmake-email) "\
-# Generated by:
-# (ee-dhmake-build \"{stem}\" \"{c}\" \"{date}\")
-#
-rm   -Rv ~/usrc/{stem}/
-mkdir -p ~/usrc/{stem}/
-mkdir    ~/usrc/{stem}/{stem}-0.1.{date}/
-# ln -s                {stem}-0.1.{date}  ~/usrc/{stem}/{stem}-0.1
-  ln -s                {stem}-0.1.{date}  {stem}-0.1
-cd       ~/usrc/{stem}/{stem}-0.1.{date}/
-
-echo | \\
-DEBFULLNAME=\"{ee-dhmake-fullname}\" \\
-  dh_make --email {ee-dhmake-email} \\
-          --copyright=gpl \\
-          --cdbs \\
-          --native
-rm -v debian/README.Debian
-rm -v debian/*.EX
-rm -v debian/*.ex
-cp -iv debian/control debian/control.orig
-
-# (find-fline      \"~/{stem}/debian/\")
-# (find-sh0 \"rm -Rv ~/{stem}/debian/\")
-mkdir  -p ~/{stem}/debian/
-if [ ! -e ~/{stem}/Makefile ]; then
-  echo Creating:               ~/{stem}/Makefile
-  echo \"clean:\"              > ~/{stem}/Makefile
-fi
-if [ ! -e ~/{stem}/debian/control ]; then
-  echo Creating:               ~/{stem}/debian/control
-  cp -v debian/control         ~/{stem}/debian/control
-fi
-if [ ! -e ~/{stem}/debian/rules ]; then
-  echo Creating:               ~/{stem}/debian/rules
-  cp -v debian/rules           ~/{stem}/debian/rules
-  echo \"build/{stem}::\"   >> ~/{stem}/debian/rules
-  echo \"install/{stem}::\" >> ~/{stem}/debian/rules
-fi
-
-# (find-{c}dh \"debian/\")
-# (find-{c}dh \"debian/control\")
-# (find-{c}dh \"debian/rules\")
-cp -v ~/{stem}/debian/* debian/
-cp -v ~/{stem}/Makefile .
-
-# (find-man \"1 dpkg-buildpackage\")
-# dpkg-buildpackage -us -uc    -rfakeroot     2>&1 | tee odb
-  dpkg-buildpackage -us -uc -b -rfakeroot     2>&1 | tee odb
-# (find-{c}file \"odb\")
-
-rm -Rv ~/usrc/{stem}/{stem}-unpacked/
-mkdir  ~/usrc/{stem}/{stem}-unpacked/
-mkdir  ~/usrc/{stem}/{stem}-unpacked/DEBIAN/
-cd     ~/usrc/{stem}/
-ar p {stem}_*.deb control.tar.gz | tar -C {stem}-unpacked/DEBIAN/ -xvzf -
-ar p {stem}_*.deb data.tar.gz    | tar -C {stem}-unpacked/        -xvzf -
-
-# (find-{c}unpfile \"\")
-# (find-{c}unpfile \"DEBIAN/\")
-# (find-{c}unpfile \"DEBIAN/control\")
-# (find-{c}unpsh \"find * | sort\")"))
-
-(defun find-dhmake-links (&optional stem c date &rest rest)
-  "Visit a temporary buffer containing hyperlinks for dhmake."
-  (interactive)
-  (setq stem (or stem "{stem}"))
-  (setq c    (or c    "{c}"))
-  (setq date (or date (format-time-string "%Y%m%d")))
-  (apply 'find-elinks `(
-    ;; Convention: the first sexp always regenerates the buffer.
-    (find-dhmake-links ,stem ,c ,date ,@rest)
-    (find-efunction 'find-dhmake-links)
-    ;; Body:
-    ""
-    ;; (find-estring-elisp (ee-dhmake-codecds ,stem ,c ,date))
-    ;; (find-estring (ee-dhmake-build ,stem ,c ,date))
-    ;; (eev (ee-dhmake-build ,stem ,c ,date))
-    ;; (find-fline "$EE")
-    ;; (find-fline (format "~/%s/debian/" stem))
-    ;; (find-sh0 ,(format "rm -Rv ~/%s/debian/" stem))
-    ;; ""
-    ,(ee-template `(stem c date) "\
-# Set up the build script that `ee' will execute:
-# (find-estring-elisp (ee-dhmake-codecds \"{stem}\" \"{c}\" \"{date}\"))
-# (find-estring       (ee-dhmake-build   \"{stem}\" \"{c}\" \"{date}\"))
-# (eev                (ee-dhmake-build   \"{stem}\" \"{c}\" \"{date}\"))
-# (find-fline \"$EE\")
-
-# Examine its main control files:
-# (find-fline \"~/{stem}/debian/rules\")
-# (find-fline \"~/{stem}/debian/control\")
-# (find-fline \"~/{stem}/debian/\")
-
- (eepitch-shell)
- (eepitch-kill)
- (eepitch-shell)
-ee
-cd ~/usrc/{stem}/
-ls -lF *.deb
-sudo dpkg -i {stem}*.deb
-# sudo dselect update
-
-# (find-status   \"{stem}\")
-# (find-vldifile \"{stem}.list\")
-# (find-udfile   \"{stem}/\")
-
-
-# Upload to angg.twu.net.
-# (THIS IS A HACK!)
-# (find-twusfile \"debian/\")
-
- (eepitch-eshell)
-cd ~/usrc/{stem}/
-ls -l {stem}_0.1.{date}_all.deb
-cp -v {stem}_0.1.{date}_all.deb (ee-twusfile \"debian/\")
-ls -l (ee-twusfile \"debian/\")
-#   (find-twusfile \"debian/\")
-
- (eepitch-Twu)
-cd ~/slow_html/debian/
-mkdir -p dists/./main/binary-i386/
-mkdir -p dists/./main/binary-amd64/
-ls -lAF
-apt-ftparchive packages .
-apt-ftparchive packages . \\
-  | tee        dists/./main/binary-i386/Packages \\
-  | gzip -c9 > dists/./main/binary-i386/Packages.gz
-apt-ftparchive packages . \\
-  | tee        dists/./main/binary-amd64/Packages \\
-  | gzip -c9 > dists/./main/binary-amd64/Packages.gz
-")
-    ) rest))
- 
-;; (find-dhmake-links)
-;; (find-dhmake-links "{stem}" "{c}" "{date}")
-;; (find-dhmake-links "foo-bar" "foobar")
-;; (find-dhmake-links "eev" "eevbuild")
-;; (find-dhmake-links "eev" "eevbuild" "20120404")
-
-
-
-
-
 ;;;                    _         _                    _ _ 
 ;;;  _   _  ___  _   _| |_ _   _| |__   ___        __| | |
 ;;; | | | |/ _ \| | | | __| | | | '_ \ / _ \_____ / _` | |
@@ -1328,119 +961,6 @@ cd {dir}
 
 
 
-;;;  _   _       _                 _                   _ 
-;;; | | | |_ __ | | ___   __ _  __| |   __ _ _ __   __| |
-;;; | | | | '_ \| |/ _ \ / _` |/ _` |  / _` | '_ \ / _` |
-;;; | |_| | |_) | | (_) | (_| | (_| | | (_| | | | | (_| |
-;;;  \___/| .__/|_|\___/ \__,_|\__,_|  \__,_|_| |_|\__,_|
-;;;       |_|                                            
-;;;      _                     _                 _ 
-;;;   __| | _____      ___ __ | | ___   __ _  __| |
-;;;  / _` |/ _ \ \ /\ / / '_ \| |/ _ \ / _` |/ _` |
-;;; | (_| | (_) \ V  V /| | | | | (_) | (_| | (_| |
-;;;  \__,_|\___/ \_/\_/ |_| |_|_|\___/ \__,_|\__,_|
-;;;                                                
-;; «find-upload-links»  (to ".find-upload-links")
-
-;; 2019mar05: commented out. This will be deleted soon.
-;; 2012jan26 - experimental hack.
-;; Some of these functions use environment variables for readability
-;; (i.e., to make the shell scripts more readable).
-;; Default values (all for angg.twu.net):
-
-;; (ee-setenv "MYPAGEDIR" "/scp:address@hidden:public_html")
-;; (ee-setenv "MYPAGEURL" "http://angg.twu.net";)
-;; (ee-setenv "DNPAGEURL" "http://angg.twu.net";)
-;; 
-;; (defun ee-upload-links (fromdir/ todir/ fname)
-;;   "An internal function used by `find-upload-links'.
-;; Try this: (find-elinks (ee-upload-links \"eev-current/eev-template.el\"))"
-;;   (let ((dir    (file-name-directory (ee-expand fname)))
-;;     (fname- (file-name-nondirectory fname))
-;;     (mypagedir (getenv "MYPAGEDIR"))
-;;     (mypageurl (getenv "MYPAGEURL"))
-;;     )
-;;     `("# Env vars (current values):"
-;;       (setenv "MYPAGEDIR" ,(getenv "MYPAGEDIR"))
-;;       (setenv "MYPAGEURL" ,(getenv "MYPAGEURL"))
-;;       ,(ee-template0 "\
-;; # Upload (warning: SLOW, uses tramp!):
-;;  (eepitch-eshell)
-;; cp -v ~/{fromdir/}{fname} $MYPAGEDIR/{todir/}{fname}
-;; ls -l ~/{fromdir/}{fname} $MYPAGEDIR/{todir/}{fname}\n
-;; # Test:
-;;  (eepitch-shell)
-;;  (eepitch-kill)
-;;  (eepitch-shell)
-;; cd /tmp/
-;; wget -N {mypageurl}/{fname}
-;; ls -l /tmp/{fname-} ~/{fname}
-;; # (find-fline \"/tmp/{fname-}\")"))))
-;; 
-;; (defun ee-download-links (fromdir/ todir/ fname)
-;;   "Visit a temporary buffer containing a script for downloading FNAME."
-;;   (setq fromdir/ (or fromdir/ (file-name-directory fname)))
-;;   (setq todir/   (or todir/   (file-name-directory fname)))
-;;   (let ((fname-               (file-name-nondirectory fname))
-;;         (dnpageurl            (getenv "DNPAGEURL")))
-;;     `(,(ee-template `(fromdir/ todir/ fname fname- dnpageurl) "\
-;; # Download:
-;;  (eepitch-shell)
-;;  (eepitch-kill)
-;;  (eepitch-shell)
-;; cd /tmp/
-;; wget -N {dnpageurl}/{fromdir/}{fname}
-;; ls -l /tmp/{fname-} ~/{todir/}{fname}
-;; cp -v /tmp/{fname-} ~/{todir/}{fname}
-;; #        (diff \"/tmp/{fname-}\" \"~/{todir/}{fname}\")
-;; # (find-tkdiff \"/tmp/{fname-}\" \"~/{todir/}{fname}\")
-;; # (find-fline \"/tmp/{fname-}\")
-;; # (find-fline \"~/{todir/}{fname}\")"))))
-;; 
-;; (defun find-upload-links (&optional fromdir/ todir/ fname &rest rest)
-;;   "Visit a temporary buffer containing a script for uploading FNAME."
-;;   (interactive)
-;;   (setq fname (or fname "{fname}"))
-;;   (setq fromdir/ (or fromdir/ (file-name-directory fname)))
-;;   (setq todir/   (or todir/   (file-name-directory fname)))
-;;   (let ((ee-hyperlink-prefix "# "))
-;;     (apply 'find-elinks `(
-;;       ;; Convention: the first sexp always regenerates the buffer.
-;;       (find-upload-links ,fromdir/ ,todir/ ,fname ,@rest)
-;;       ;; The second sexp generates the corresponding download link.
-;;       (find-download-links ,fname ,@rest)
-;;       ""
-;;       ,@(ee-upload-links fromdir/ todir/ fname)) rest)))
-;; 
-;; (defun find-download-links (&optional fromdir/ todir/ fname extras &rest 
rest)
-;;   "Visit a temporary buffer containing a script for downloading FNAME."
-;;   (interactive)
-;;   (setq fname    (or fname "{fname}"))
-;;   (setq fromdir/ (or fromdir/ (file-name-directory fname)))
-;;   (setq todir/   (or todir/   (file-name-directory fname)))
-;;   (apply 'find-elinks `(
-;;     ;; Convention: the first sexp always regenerates the buffer.
-;;     (find-download-links ,fromdir/ ,todir/ ,fname ,@rest)
-;;     ;; Body:
-;;     ""
-;;     ,@(ee-download-links fromdir/ todir/ fname)
-;;     ,@extras) rest))
-;; 
-;; (defun ut ()
-;;   (interactive)
-;;   "Upload eev-template.el"
-;;   (find-upload-links "eev-current/" "eev-current/" "eev-template.el"))
-;; 
-;; (defun dt ()
-;;   (interactive)
-;;   "Download eev-template.el and load the new version."
-;;   (find-download-links
-;;    "eev-current/" "emacs/eev/" "eev-template.el"
-;;    '("\n (load \"eev-template.el\")")))
-
-
-
-
 ;;;                       
 ;;;  _ __  ___ _ __   ___ 
 ;;; | '_ \/ __| '_ \ / _ \
diff --git a/eev-wrap.el b/eev-wrap.el
index 0c7f00a..0b42756 100644
--- a/eev-wrap.el
+++ b/eev-wrap.el
@@ -169,7 +169,7 @@ have to run an \"undo\"."
   "An internal function used by `ee-wrap-anchor'."
   (ee-template0 (ee-tolatin1 "\
 {prefix}«.{anchor}»\t(to \"{anchor}\")
-{prefix}«{anchor}» (to \".{anchor}\")")))
+{prefix}«{anchor}»  (to \".{anchor}\")")))
 
 
 
diff --git a/eev.el b/eev.el
index 1e2e904..73a24dd 100644
--- a/eev.el
+++ b/eev.el
@@ -3,10 +3,10 @@
 ;; Copyright (C) 2019 Free Software Foundation, Inc.
 
 ;; Author: Eduardo Ochs <address@hidden>
-;; Package-Requires: ((emacs "24.3"))
+;; Package-Requires: ((emacs "24.1"))
 ;; Keywords: lisp e-scripts
 ;; URL: http://angg.twu.net/#eev
-;; Version: 20190410
+;; Version: 20190425
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by



reply via email to

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