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

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

[elpa] externals/eev e836949 10/10: Merge remote-tracking branch 'eev/UT


From: Stefan Monnier
Subject: [elpa] externals/eev e836949 10/10: Merge remote-tracking branch 'eev/UTF-8' into externals/eev
Date: Tue, 25 Jun 2019 00:05:11 -0400 (EDT)

branch: externals/eev
commit e836949361a97dc2465d327ed4471d539baf6135
Merge: 3c15e4b 5b27f53
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>

    Merge remote-tracking branch 'eev/UTF-8' into externals/eev
---
 ChangeLog       |  70 ++++++++
 VERSION         |   4 +-
 eev-beginner.el |   2 +-
 eev-blinks.el   |   6 +-
 eev-elinks.el   | 146 ++++++++-------
 eev-eval.el     |  19 +-
 eev-intro.el    | 543 +++++++++++++++++++++++++++++++++++++++++++++-----------
 eev-mode.el     |   4 +-
 eev-pdflike.el  |  22 ++-
 eev-plinks.el   |  43 +++++
 eev-tlinks.el   |  13 +-
 11 files changed, 690 insertions(+), 182 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 21581bc..1e47737 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,73 @@
+2019-06-24  Eduardo Ochs  <address@hidden>
+
+       * eev-plinks.el (find-urlretrieve00, ee-urlretrieve-3)
+       (find-urlretrieve0, find-urlretrieve): new functions.
+
+       * eev-elinks.el (find-here-links-3): ask if the user wants to
+       overwrite `ee-window-configuration-before-M-h-M-3'.
+
+       * eev-intro.el (find-here-links-intro): added some figures.
+
+       * eev-pdflike.el (ee-find-pdf-text, ee-find-pdftotext-text)
+       (ee-find-texworkspdf-page): added the missing ","s.
+
+2019-06-23  Eduardo Ochs  <address@hidden>
+
+       * eev-elinks.el (ee-find-eboundkey-links): reordered the links.
+       (ee-find-efunction-links): reordered the links.
+       (find-efunction-links): reordered the links.
+       (find-elongkey-links): reordered the links.
+       (find-ekey-links): reordered the links.
+
+       * eev-intro.el (find-eev-quick-intro): new section: "4.2.
+       `find-ekey-links' and friends".
+
+       * eev-beginner.el (eev-beginner): do not bind `M-h M-h' to
+       `find-here-links-beginner'.
+
+2019-06-22  Eduardo Ochs  <address@hidden>
+
+       * eev-pdflike.el: make `find-pdf-page' use texworks on M$ Windows.
+       (ee-pdftotext-program, ee-texworks-program): new variables.
+
+2019-06-21  Eduardo Ochs  <address@hidden>
+
+       * eev-intro.el (find-here-links-intro): new function.
+       (find-emacs-keys-intro): added references to `M-h M-3', `M-h M-w',
+       and `M-h M-1'.
+
+       * eev-elinks.el (find-here-links-3): new function.
+       (find-here-links-1): new function.
+       (ee-window-configuration-before-M-h-M-3): new variable.
+       (ee-find-here-links0): added a reference to `find-here-links-3'.
+
+       * eev-mode.el (eev-mode-map-set): added bindings to `M-h M-1' and
+       `M-h M-3' (`find-here-links-1' and `find-here-links-3').
+
+2019-06-17  Eduardo Ochs  <address@hidden>
+
+       * eev-beginner.el (eev-beginner): bind `M-h M-h' to
+       `find-here-links-beginner'.
+
+       * eev-blinks.el (ee-find-eejumps-header): added examples.
+
+2019-06-16  Eduardo Ochs  <address@hidden>
+
+       * eev-intro.el (find-emacs-keys-intro): list `M-h M-k', `M-h M-f',
+       and `M-h M-p' among the basic keys of eev.
+       (find-links-intro): Rewrote the section "The first line
+       regenerates the buffer".
+
+       * eev-eval.el (ee-eval-sexp-eol): changes in the docstring.
+
+2019-06-12  Eduardo Ochs  <address@hidden>
+
+       * eev-tlinks.el (find-latex-links): added more links to the
+       tutorial.
+
+       * eev-elinks.el (find-code-pdf-links): made it generate a code-c-d
+       besides the code-pdf pair; added another link to the tutorial.
+
 2019-06-10  Eduardo Ochs  <address@hidden>
 
        * eev-elinks.el (find-code-pdf-links): new function.
diff --git a/VERSION b/VERSION
index d4bd991..187a3e5 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Mon Jun 10 05:57:06 GMT 2019
-Mon Jun 10 02:57:06 -03 2019
+Tue Jun 25 00:31:30 GMT 2019
+Mon Jun 24 21:31:30 -03 2019
diff --git a/eev-beginner.el b/eev-beginner.el
index ae0430d..61d5c2e 100644
--- a/eev-beginner.el
+++ b/eev-beginner.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019apr06
+;; Version:    2019jun23
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-beginner.el>
diff --git a/eev-blinks.el b/eev-blinks.el
index 18bad9e..e5c2f6c 100644
--- a/eev-blinks.el
+++ b/eev-blinks.el
@@ -21,7 +21,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019apr13
+;; Version:    2019jun17
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-blinks.el>
@@ -953,6 +953,10 @@ Hint: install the Debian package \"unicode-data\".")
   ";; (find-eejumps)
 ;; See: (find-eev-quick-intro \"7.1. `eejump'\")
 ;;      (find-emacs-keys-intro \"1. Basic keys (eev)\")
+;; For example,
+;;     M-1 M-j  runs:  (find-fline \"~/TODO\")
+;;     M-2 M-j  runs:  (find-emacs-keys-intro)
+;;     M-5 M-j  runs:  (find-eev-quick-intro)
 ;; Current eejump targets:\n\n")
 
 (defun ee-find-eejumps-body ()
diff --git a/eev-elinks.el b/eev-elinks.el
index 0c399be..b8b07e3 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019jun10
+;; Version:    2019jun24
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-elinks.el>
@@ -75,8 +75,9 @@
 ;; «.find-color-links»         (to "find-color-links")
 
 ;; «.find-here-links»          (to "find-here-links")
+;; «.find-here-links-beginner» (to "find-here-links-beginner")
+;; «.find-here-links-3»                (to "find-here-links-3")
 
-;; «.find-code-c-d-links»      (to "find-code-c-d-links")
 ;; «.find-code-pdf-links»      (to "find-code-pdf-links")
 ;; «.find-pdf-links»           (to "find-pdf-links")
 
@@ -233,6 +234,8 @@ The buffer is put in Emacs Lisp mode."
   (apply 'find-elinks
    `((find-efunction-links ',f ,@pos-spec-list)
      (eek ,(format "M-h M-f  %s" f))
+     (find-eev-quick-intro "4.2. `find-ekey-links' and friends")
+     ""
      ,@(ee-find-efunction-links f)
      )
    pos-spec-list))
@@ -241,23 +244,24 @@ The buffer is put in Emacs Lisp mode."
   "Return a list of hyperlinks for F (a function symbol).
 This is an internal function used by `find-efunction-links' and
 `find-ekey-links'."
-  `((where-is ',f)
-    (describe-function ',f)
-    (find-efunctiondescr ',f)
+  `((find-efunctiondescr ',f)
     (find-efunction ',f)
     (find-efunctionpp ',f)
     (find-efunctiond ',f)
-    ;; (find-eCfunction ',f)           ; obsolete
-    (find-estring (documentation ',f))
-    (find-estring (documentation ',f t))
-    (symbol-file ',f 'defun)
-    (find-fline (symbol-file ',f 'defun))
     ""
     ,@(if (commandp f)
          `((Info-goto-emacs-command-node ',f)
            (find-enode "Command Index" ,(format "* %S:" f))
            ))
     (find-elnode "Index" ,(format "* %S:" f))
+    ""
+    (where-is ',f)
+    (symbol-file ',f 'defun)
+    (find-fline (symbol-file ',f 'defun))
+    (find-estring (documentation ',f))
+    (find-estring (documentation ',f t))
+    (describe-function ',f)
+    ;; (find-eCfunction ',f)           ; obsolete
     ))
 
 
@@ -376,14 +380,15 @@ See: (find-eev \"eev-elinks.el\" \"find-ekey-links\")"
     (apply 'find-elinks
           `((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+))
-            (find-efunctiondescr ',f)
-            ""
             (find-elongkey-links      ,longkey)
             (find-elongkey-links      ,longkey+)
             (find-efunction-links    ',f)
+            (eek ,(format "M-h M-k  %s" longkey))
+            (eek ,(format "M-h M-k  %s" longkey+))
+            (eek ,(format "M-h M-f  %s" f))
+            ;; (find-efunctiondescr ',f)
+            ""
+            (find-eev-quick-intro "4.2. `find-ekey-links' and friends")
             ""
             ,@(ee-find-eboundkey-links key f)
             )
@@ -402,6 +407,7 @@ See `read-kbd-macro' and `edmacro-mode' for the format."
           `((find-elongkey-links   ,longkey)
             (find-ekey-links       ,key)
             (find-efunction-links ',f)
+            (find-eev-quick-intro "4.2. `find-ekey-links' and friends")
             ""
             ,@(ee-find-eboundkey-links key f)
             )
@@ -412,23 +418,24 @@ See `read-kbd-macro' and `edmacro-mode' for the format."
   "From KEY and its binding, F, produce a list of hyperlinks.
 This is an internal function used by `find-ekey-links' and
 `find-elongkey-links'."
-  `((where-is ',f)
-    (describe-function ',f)
-    (find-efunctiondescr ',f)
+  `((find-efunctiondescr ',f)
+    (find-ekeydescr ,key)
     (find-efunction ',f)
     (find-efunctionpp ',f)
     (find-efunctiond ',f)
-    (find-estring (documentation ',f))
-    (find-estring (documentation ',f t))
     ""
-    (describe-key ,key)
-    (describe-key-briefly ,key)
-    (find-ekeydescr ,key)
     (Info-goto-emacs-key-command-node ,key)
     (Info-goto-emacs-command-node ',f)
     (find-enode "Command Index" ,(format "* %S:" f))
     (find-elnode "Index" ,(format "* %S:" f))
     ""
+    (describe-key-briefly ,key)
+    (find-estring (documentation ',f))
+    (find-estring (documentation ',f t))
+    (describe-key ,key)
+    (describe-function ',f)
+    ""
+    (where-is ',f)
     (key-description ,key)
     (format-kbd-macro ,key)
     (format-kbd-macro ,key t)
@@ -937,42 +944,14 @@ See: (find-pdf-like-intro)
   (setq page    (or page (ee-current-page)))
   (setq bufname (or bufname (buffer-name)))
   (setq offset  (or offset ee-page-offset))
-  (let* ((c          ee-page-c)
-        (fname      ee-page-fname)
-        (find-cpage (ee-intern "find-%spage" c))
-        (find-ctext (ee-intern "find-%stext" c))
-        (kill       (or (ee-last-kill) ""))
-        (page-      (- page offset))
-        )
-    ;;
-    '(apply 'find-elinks `(
-      (find-pdflike-page-links ,page ,bufname ,offset ,@rest)
-      (find-efunction 'find-pdflike-page-links)
-      ""
-      (,find-cpage ,page)
-      (,find-ctext ,page)
-      (,find-cpage (+ ,offset ,page-))
-      (,find-ctext (+ ,offset ,page-))
-      ""
-      (,find-cpage ,page ,kill)
-      (,find-ctext ,page ,kill)
-      (,find-cpage (+ ,offset ,page-) ,kill)
-      (,find-ctext (+ ,offset ,page-) ,kill)
-      ""
-      (code-pdf-page ,c ,fname)
-      (code-pdf-text ,c ,fname ,offset)
-      ,(ee-HS bufname)
-    ) rest)
-    ;;
-    (apply 'find-elinks `(
-      (find-pdflike-page-links ,page ,bufname ,offset ,@rest)
-      (find-efunction 'find-pdflike-page-links)
-      (find-eev-quick-intro "10.4. Generating short hyperlinks to PDFs")
-      (find-eev-quick-intro "11.1. `find-pdf-links'")
-      ""
-      ,@(ee-pdflike-page-links page bufname offset)
-      ) rest)
-    ))
+  (apply 'find-elinks `(
+    (find-pdflike-page-links ,page ,bufname ,offset ,@rest)
+    ;; (find-efunction 'find-pdflike-page-links)
+    (find-eev-quick-intro "10.4. Generating short hyperlinks to PDFs")
+    (find-eev-quick-intro "11.1. `find-pdf-links'")
+    ""
+    ,@(ee-pdflike-page-links page bufname offset)
+    ) rest))
 
 ;; (find-pdflike-page-links)
 ;; (find-angg ".emacs.papers" "kopkadaly")
@@ -1259,6 +1238,7 @@ This needs a temporary directory; see: 
(find-prepared-intro)"
   `(,(ee-H "See: ")
     (find-eev-quick-intro "4.1. `find-here-links'")
     (find-emacs-keys-intro "1. Basic keys (eev)" "M-h M-h")
+    (find-here-links-intro "4. `find-here-links-3'")
     ))
 
 ;; (find-find-links-links "\\M-h" "here" "")
@@ -1280,20 +1260,49 @@ This needs a temporary directory; see: 
(find-prepared-intro)"
 
 
 
+;; «find-here-links-beginner»  (to ".find-here-links-beginner")
 ;; 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)))
 
+;; «find-here-links-3»  (to ".find-here-links-3")
+;; See: (find-here-links-intro "4. `find-here-links-3'")
+;;      (find-here-links-intro "5. `find-here-links-1'")
+;;
+(defvar ee-window-configuration-before-M-h-M-3 nil)
+
+(defun find-here-links-3 ()
+  "A variant of `find-here-links' that creates a three-window setting.
+Before creating the three windows this function tries to save the
+current window configuration to the variable
+`ee-window-configuration-before-M-h-M-3', but if that variable is
+not nil we abort instead of overwriting it.
+See: (find-here-links-intro \"4. `find-here-links-3'\")"
+  (interactive)
+  (if ee-window-configuration-before-M-h-M-3
+      (let ((overwrite
+            (yes-or-no-p "Overwrite `ee-window-configuration-before-M-h-M-3'? 
")))
+       (if (not overwrite)
+           (error))))
+  (setq ee-window-configuration-before-M-h-M-3
+       (current-window-configuration))
+  (find-wset "13_o2_o_coo" nil '(find-here-links) '(eejump-1)))
+
+(defun find-here-links-1 ()
+  "Restore the window configuration before `find-here-links-3'.
+See: (find-here-links-intro \"5. `find-here-links-1'\")"
+  (interactive)
+  (set-window-configuration ee-window-configuration-before-M-h-M-3)
+  (setq ee-window-configuration-before-M-h-M-3 nil))
+
+
+
+
 
 
 
@@ -1304,8 +1313,6 @@ This needs a temporary directory; see: 
(find-prepared-intro)"
 ;;; |  _| | | | | (_| |_____| (_| (_) | (_| |  __/_  _\_____| | | | | |   <\__ 
\
 ;;; |_| |_|_| |_|\__,_|      \___\___/ \__,_|\___| \/       |_|_|_| 
|_|_|\_\___/
 ;;;                                                                            
 
-;; «find-code-c-d-links»  (to ".find-code-c-d-links")
-
 ;; «find-code-pdf-links»  (to ".find-code-pdf-links")
 ;; Tests:
 ;; (find-fline          "/usr/local/texlive/2018/texmf-dist/doc/latex/base/")
@@ -1323,10 +1330,15 @@ This needs a temporary directory; see: 
(find-prepared-intro)"
        ;; Convention: the first sexp always regenerates the buffer.
        ;; (find-efunction 'find-code-pdf-links)
        ,(ee-template0 "\
-;; See: (find-eev-quick-intro \"9.3. Hyperlinks to PDF files\")
+;; See: (find-eev-quick-intro \"9.1. `code-c-d'\")
+;;      (find-eev-quick-intro \"9.3. Hyperlinks to PDF files\")
 ;;      (find-eev-quick-intro \"9.4. Shorter hyperlinks to PDF files\")
+;;      (find-eev-quick-intro \"11.1. `find-pdf-links'\")
 
 ;; (find-fline {(ee-S (file-name-directory fname))})
+\(code-c-d \"{c}\" \"{(file-name-directory fname)}\")
+;; \(find-{c}file \"\")
+
 ;; (find-pdf-page \"{fname}\")
 ;; (find-pdf-text \"{fname}\")
 \(code-pdf-page \"{c}\" \"{fname}\")
diff --git a/eev-eval.el b/eev-eval.el
index 8e4334e..ccadbcf 100644
--- a/eev-eval.el
+++ b/eev-eval.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019mar02
+;; Version:    2019jun16
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-eval.el>
@@ -202,7 +202,22 @@ other: set EE-ARG to ARG and eval (ee-last-sexp)."
 
 (defun ee-eval-sexp-eol (&optional arg)
 "Go to the end of line, then run `ee-eval-last-sexp'.
-See: (find-eval-intro)"
+By default, evaluate sexp before eol, and print value in minibuffer.
+This is eev's variant of `C-e C-x C-e', and it can behave in
+several different ways depending on the prefix argument ARG.
+See: (find-eev-quick-intro \"`M-0 M-e'\")
+
+If ARG is:
+  nil:  evaluate the sexp with `debug-on-error' turned off
+    0:  highlight the sexp temporarily
+    1:  show the sexp as a string
+    2:  show the target of the sexp in another window
+    3:  same, but also switch to the new window
+    4:  evaluate the sexp in debug mode
+    5:  run the sexp with `debug-on-error' turned on
+    8:  eval then pretty-print the result in another buffer
+    9:  a hack for testing `call-interactively'
+other: set EE-ARG to ARG and eval (ee-last-sexp)."
   (interactive "P")
   (end-of-line)
   (ee-eval-last-sexp arg))
diff --git a/eev-intro.el b/eev-intro.el
index 6ed227e..d897e95 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019jun10
+;; Version:    2019jun24
 ;; 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-here-links-intro»    (to "find-here-links-intro")
 ;; «.find-refining-intro»      (to "find-refining-intro")
 ;;
 ;; «.find-eval-intro»          (to "find-eval-intro")
@@ -261,6 +262,7 @@ Actually go to: (find-eev \"eev-intro.el\" 
\"find-foo-intro\" (ee-last-kill))."
 \(Re)generate: (find-eev-quick-intro)
 Source code:  (find-efunction 'find-eev-quick-intro)
 More intros:  (find-emacs-keys-intro)
+              (find-here-links-intro)
               (find-eev-intro)
               (find-links-conv-intro)
               (find-escripts-intro)
@@ -268,7 +270,7 @@ More intros:  (find-emacs-keys-intro)
               (find-links-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 The quickest way to open or recreate this is with `M-5 M-j'.
 
 
@@ -469,26 +471,30 @@ For example,
   (find-efunction-links 'find-file)
 
 creates this buffer, and switches to it:
-   ___________________________________________________________
-  |# (find-efunction-links 'find-file)                        |
-  |# (where-is 'find-file)                                    |
-  |# (describe-function 'find-file)                           |
-  |# (find-efunctiondescr 'find-file)                         |
-  |# (find-efunction 'find-file)                              |
-  |# (find-efunctionpp 'find-file)                            |
-  |# (find-efunctiond 'find-file)                             |
-  |# (find-estring (documentation 'find-file))                |
-  |# (find-estring (documentation 'find-file t))              |
-  |# (symbol-file 'find-file 'defun)                          |
-  |# (find-fline (symbol-file 'find-file 'defun))             |
-  |                                                           |
-  |# (Info-goto-emacs-command-node 'find-file)                |
-  |# (find-enode \"Command Index\" \"* find-file:\")              |
-  |# (find-elnode \"Index\" \"* find-file:\")                     |
-  |                                                           |
-  |                                                           |
-  |--:**-  *Elisp hyperlinks*   All L1     (Fundamental eev)--|
-  |___________________________________________________________|
+   ____________________________________________________________________ 
+  |# (find-efunction-links 'find-file)                                 |
+  |# (eek \"M-h M-f  find-file\")                                        |
+  |# (find-eev-quick-intro \"4.2. `find-ekey-links' and  friends\")      |
+  |                                                                    |
+  |# (find-efunctiondescr 'find-file)                                  |
+  |# (find-efunction 'find-file)                                       |
+  |# (find-efunctionpp 'find-file)                                     |
+  |# (find-efunctiond 'find-file)                                      |
+  |                                                                    |
+  |# (Info-goto-emacs-command-node 'find-file)                         |
+  |# (find-enode \"Command Index\" \"* find-file:\")                       |
+  |# (find-elnode \"Index\" \"* find-file:\")                              |
+  |                                                                    |
+  |# (where-is 'find-file)                                             |
+  |# (symbol-file 'find-file 'defun)                                   |
+  |# (find-fline (symbol-file 'find-file 'defun))                      |
+  |# (find-estring (documentation 'find-file))                         |
+  |# (find-estring (documentation 'find-file t))                       |
+  |# (describe-function 'find-file)                                    |
+  |                                                                    |
+  |                                                                    |
+  | -:**-  *Elisp hyperlinks*   All L1    (Fundamental eev)  ----------|
+  |____________________________________________________________________|
 
 
 
@@ -507,25 +513,32 @@ elisp hyperlinks buffer containing some hyperlinks to 
\"here\" - and how
 it does that depends on the major mode and on the name of the current
 buffer. For example, typing `M-h M-h' here generates:
 
-   ____________________________________________________________
-  |# See:                                                      |
-  |# (find-links-intro \"`find-here-links'\")                    |
-  |# (find-efunctiondescr 'eev-mode \"M-h M-h\")                 |
-  |                                                            |
-  |http://angg.twu.net/eev-intros/find-eev-quick-intro.html    |
-  |# (find-eev-quick-intro)                                    |
-  |                                                            |
-  |                                                            |
-  |--:**-  *Elisp hyperlinks*   All L1     (Fundamental eev)  -|
-  |____________________________________________________________|
+   ___________________________________________________________________ 
+  |# See:                                                             |
+  |# (find-eev-quick-intro \"4.1. `find-here-links'\")                  |
+  |# (find-emacs-keys-intro \"1. Basic keys (eev)\" \"M-h M-h\")          |
+  |# (find-here-links-intro \"4. `find-here-links-3'\")                 |
+  |                                                                   |
+  |# http://angg.twu.net/eev-intros/find-eev-quick-intro.html         |
+  |# (find-eev-quick-intro)                                           |
+  |                                                                   |
+  |                                                                   |
+  | -:**-  *Elisp hyperlinks*   All L1     (Fundamental eev)  --------|
+  |___________________________________________________________________|
 
 The elisp hyperlink
 
   # (find-eev-quick-intro)
 
-opens this tutorial.
+at the end opens this tutorial.
 
-Cutting and pasting is explained briefly in section 5.2.
+The best way to learn how to create very quickly these
+\"hyperlinks to things we saw or visited\" and to copy them to
+our notes is explained in a separate tutorial:
+
+  (find-here-links-intro)
+
+Cutting and pasting is explained briefly in section 5.2, below.
 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:
@@ -535,11 +548,68 @@ explained here:
 
 
 
+4.2. `find-ekey-links' and friends
+----------------------------------
+Emacs is huge and you will probably want to save in your notes
+many links about keys and functions that look interesting - using
+`M-2 M-j' from time to time to visit
+
+  (find-emacs-keys-intro)
+
+and learning the keys listed there will not be enough.
+
+Try the eek links below:
+
+  (eek \"M-h M-k  C-x 4 0\")
+  (eek \"M-h M-k  C-x 4 0  ;; kill-buffer-and-window\")
+  (eek \"M-h M-k  C-s\")
+  (eek \"M-h M-k  C-s  ;; isearch-forward\")
+  (eek \"M-h M-f  isearch-forward\")
+
+  (eek \"M-h M-k  M-h M-k  ;; find-ekey-links\")
+  (eek \"M-h M-k  M-h M-f  ;; find-efunction-links\")
+
+You will notice that:
+
+  1. they create temporary buffers with lots of elisp hyperlinks,
+
+  2. you can \"go back\" from these buffers with `M-k',
+
+  3. the function name after the \";;\" is a comment and is
+     ignored by Emacs (but is useful for humans),
+
+  4. you can copy these hyperlinks to your \"~/TODO\",
+
+  5. the \"M-h M-k\" and \"M-h M-f\" in the beginning are
+     reminders that we can use `M-h M-k <key-sequence>' and `M-h
+     M-f <function-name>' to create help buffers about other keys
+     and functions,
+
+  6. some of the hyperlinks use low-level representations for key
+     sequences - you don't need to understand them. An example:
+
+       (find-ekey-links \"\\^X40\")
+
+  7. for _some_ keys and functions, but not all, the hyperlinks
+     like
+
+       (Info-goto-emacs-key-command-node \"\\C-s\")
+       (Info-goto-emacs-command-node 'isearch-forward)
+       (find-enode \"Command Index\" \"* isearch-forward:\")
+       (find-elnode \"Index\" \"* defun:\")
+
+     that appear near the middle of the elisp hyperlinks buffers,
+     point to relevant points in the Emacs manuals - see the next
+     section.
+
+
+
+
 5. Links to Emacs documentation
 ===============================
 Try these links (some of them need the Emacs manuals installed):
 
-  (find-emacs-intro \"Cutting & pasting\")
+  (find-emacs-keys-intro \"Cutting & pasting\")
   (find-node \"(emacs)Screen\")
   (find-efunctiondescr 'find-file)
   (find-efunction-links 'find-file)
@@ -1647,7 +1717,8 @@ the PDF, and type `M-h M-p' (`find-pdf-links'). Try it 
here:
 
 The exact action of `M-h M-p' depends on the major mode. If
 you're in dired mode then it supposes that you want links to the
-PDF on the current line, including a code-pdf pair, and it runs
+current directory and to the PDF on the current line - including
+a `code-c-d' and a code-pdf pair - and it runs
 `find-code-pdf-links'. The first line of the buffer will be
 something like:
 
@@ -1708,7 +1779,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 The quickest way to open or recreate this is with `M-2 M-j'.
 
 
@@ -1731,13 +1802,25 @@ The most basic keys of eev are:
   <f8>  - See: (find-eev-quick-intro \"6. Controlling shell-like programs\")
   M-T   - See: (find-eev-quick-intro \"6.3. Creating eepitch blocks: `M-T'\")
 
-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'\")
+The beginner's way of creating \"hyperlinks to here\" is with:
+  M-h M-3   - (find-here-links-intro \"4. `find-here-links-3'\")
+  M-h M-1   - (find-here-links-intro \"5. `find-here-links-1'\")
+  M-h M-w   - (find-here-links-intro \"6. Copying the hyperlink\" \"M-h M-w\")
+
+The other keys for creating hyperlinks to here and refining them are:
+  M-h M-h   - `find-here-links': (find-eev-quick-intro \"4.1. 
`find-here-links'\")
   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\")
 
+Some other keys that create buffers with elisp hyperlinks:
+  M-h M-k   - (find-eev-quick-intro \"4.2. `find-ekey-links' and friends\")
+  M-h M-f   - (find-eev-quick-intro \"4.2. `find-ekey-links' and friends\")
+  M-h M-p   - (find-eev-quick-intro \"11.1. `find-pdf-links'\")
+    See also: (find-links-intro \"5. The first line regenerates the buffer\")
+
+
 
 2. Key sequences and how to abort them
 ======================================
@@ -1885,7 +1968,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -2002,11 +2085,6 @@ Eev has a git repository at:
 
   https://github.com/edrx/eev.git
 
-All recent changes are being made at the \"UTF-8\" branch and I
-haven't learned yet how to make the master branch point to
-UTF-8... so if you clone the repository you'll have to do a
-\"checkout UTF-8\" the go to the most recent version.
-
 Try this:
 
  (eepitch-shell)
@@ -2016,7 +2094,6 @@ rm -Rfv /tmp/eev2
 mkdir   /tmp/eev2/
 cd      /tmp/eev2/ && git clone https://github.com/edrx/eev.git .
 cd      /tmp/eev2/
-git checkout UTF-8
 # (find-gitk \"/tmp/eev2/\")
 {
   echo '#!/bin/sh'
@@ -2221,7 +2298,7 @@ Main intros:  (find-eev-quick-intro)
               (find-eev-intro)
 Index to the source files: (find-eev \"eev-load.el\")
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 Here is a list of all the available sandbox-y tutorials that
@@ -2232,47 +2309,48 @@ recommended reading order. These are the basic ones:
    1. (find-emacs-keys-intro)
    2. (find-eev-intro)
    3. (find-eev-install-intro)
+   4. (find-here-links-intro)
+   5. (find-refining-intro)
 
 These ones explain ideas, conventions, and usage patterns:
 
-   4. (find-escripts-intro)
-   5. (find-links-conv-intro)
-   6. (find-refining-intro)
+   6. (find-escripts-intro)
+   7. (find-links-conv-intro)
 
 These are older and more technical versions of sections of the
 eev-quick-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)
+   8. (find-eval-intro)
+   9. (find-links-intro)
+  10. (find-brxxx-intro)
+  11. (find-eepitch-intro)
+  12. (find-wrap-intro)
+  13. (find-eejump-intro)
+  14. (find-anchors-intro)
+  15. (find-code-c-d-intro)
+  16. (find-pdf-like-intro)
+  17. (find-psne-intro)
 
 These are etcs:
 
-  17. (find-multiwindow-intro)
-  18. (find-audiovideo-intro)
-  19. (find-rcirc-intro)
-  20. (find-templates-intro)
-  21. (find-videos-intro)
+  18. (find-multiwindow-intro)
+  19. (find-audiovideo-intro)
+  20. (find-rcirc-intro)
+  21. (find-templates-intro)
+  22. (find-videos-intro)
 
 These ones explain advanced features that require extra setup:
 
-  22. (find-prepared-intro)
-  23. (find-bounded-intro)
-  24. (find-channels-intro)
+  23. (find-prepared-intro)
+  24. (find-bounded-intro)
+  25. (find-channels-intro)
 
 These ones are obsolete:
 
-  25. (find-emacs-intro)
-  26. (find-defun-intro)
+  26. (find-emacs-intro)
+  27. (find-defun-intro)
 
-Item 20 is an index of the (old) video tutorials, with scripts
+Item 22 is an index of the (old) video tutorials, with scripts
 for downloading local copies of them and links to important
 positions in the videos.
 
@@ -2347,6 +2425,232 @@ For the full lists of keybindings, see:
 
 
 
+;;;  _                         _ _       _        
+;;; | |__   ___ _ __ ___      | (_)_ __ | | _____ 
+;;; | '_ \ / _ \ '__/ _ \_____| | | '_ \| |/ / __|
+;;; | | | |  __/ | |  __/_____| | | | | |   <\__ \
+;;; |_| |_|\___|_|  \___|     |_|_|_| |_|_|\_\___/
+;;;                                               
+;; «find-here-links-intro»  (to ".find-here-links-intro")
+;; (find-intro-links "here-links")
+
+(defun find-here-links-intro (&rest pos-spec-list) (interactive)
+  (let ((ee-buffer-name "*(find-here-links-intro)*"))
+    (apply 'find-eintro "\
+\(Re)generate: (find-here-links-intro)
+Source code:  (find-efunction 'find-here-links-intro)
+More intros:  (find-eev-quick-intro)
+              (find-refining-intro)
+This buffer is _temporary_ and _editable_.
+It is meant as both a tutorial and a sandbox.
+
+
+
+
+1. Alternating between \"task\" and \"notes\"
+=========================================
+In the old days log books were always made of paper, and there
+was nothing automatic in taking notes with them. We would have to
+decide what to write and how to write it, and we would have to
+alternate between the \"task\" and \"taking notes\". After many
+years of practice _some_ people would learn how to take notes
+without distracting themselves much from the task at hand, and
+they would learn how to make their notes at the same time concise
+and readable enough.
+
+Nowadays, with computers, there are _some_ ways to write logs
+automatically - for example, most shells record the commands
+given to them - but the output is of low quality.
+
+Eev takes an intermediate stance between \"notes by hand\"
+and \"automatic notes\". It is possible to do
+\"task\"+\"notes\" with just a few more keystrokes than for
+doing just \"task\", but that requires learning some tricks,
+and having some practice.
+
+
+
+
+2. \"Here\"
+=========
+In this tutorial we will learn the basic technique for creating
+an elisp hyperlink to \"here\" and copying it to our notes.
+\"Here\" means the current Emacs buffer; we saw in the main
+tutorial that elisp hyperlinks like
+
+  (find-eev-quick-intro \"4. Creating Elisp Hyperlinks\")
+  (find-emacs-keys-intro \"3. Cutting & pasting\")
+  (find-fline \"~/\")
+  (find-eevfile \"\")
+  (find-eevfile \"eev-blinks.el\")
+  (find-efunctiondescr 'find-file)
+  (find-enode \"Modes\")
+  (find-elnode \"Defining Functions\" \"(defun foo () 5)\")
+  (find-man \"date\")
+
+open eev tutorials (`find-xxx-intro's), directories, files,
+descriptions of emacs functions, sections of manuals in \"info\"
+format, and manpages. All the elisp hyperlinks above are of the
+kind described in the first paragraphs of this section of the
+main tutorial:
+
+  (find-eev-quick-intro \"3. Elisp hyperlinks\")
+
+They (usually) create a new buffer, and it is possible to \"go
+back\" from that buffer with `M-k' of `M-K':
+
+  (find-eval-intro \"5. Going back\")
+
+
+
+
+3. `find-here-links'
+====================
+Eev has a function, called `find-here-links' and bound to `M-h
+M-h', that is able to distinguish several kinds of \"here\"s.
+When we run it it creates a temporary buffer with lots of elisp
+hyperlinks, and when we have enough practice we can spot in a
+second which of its hyperlinks is the \"hyperlink to here\" that
+we want to copy to our notes.
+
+This tutorial is about a _variant_ of `find-here-links' that is
+more suitable for beginners.
+
+
+
+
+4. `find-here-links-3'
+======================
+Suppose that you are in a buffer with something interesting -
+\"here\" -, and you want to generate a hyperlink to it and copy
+that hyperlink to your notes. Some terminology:
+
+  1. The target of that hyperlink will be the \"here\" buffer, so
+     let's call the \"here\" buffer the \"target buffer\" from
+     now on.
+
+  2. `find-here-links' creates a temporary buffer with several
+     elisp hyperlinks - let's call that buffer the \"elinks
+     buffer\".
+
+  3. Beginners start by putting all their (executable) notes in a
+     single file, \"~/TODO\"; remember that `M-1 M-j' jumps to
+     that file. The \"notes buffer\" is a buffer visiting the
+     file \"~/TODO\".
+
+The key sequence `M-h M-3' saves the current window configuration
+in a variable called `ee-window-configuration-before-M-h-M-3',
+creates a 3-window setting like this,
+
+   _____________________
+  |          |          |
+  |          |  elinks  |
+  |          |  buffer  |
+  |  target  |__________|
+  |  buffer  |          |
+  |          |  notes   |
+  |          |  buffer  |
+  |__________|__________|
+
+and puts the cursor at the elinks buffer.
+
+
+
+
+5. `find-here-links-1'
+======================
+After creating the three windows described above we will usually
+want to select a line from the elinks buffer - the right one,
+i.e., the one with a hyperlink to the target buffer - and copy it
+to the notes buffer; the next section explains how to do this.
+
+After copying the hyperlink - or after deciding that we don't
+want to copy it - we want to restore the original window
+configuration that we had before typing `M-h M-3'. We can do that
+by typing `M-h M-1' (`find-here-links-1'); I chose to use the
+suffix \"1\" because in most cases the original window
+configuration has a single window with the target buffer in it,
+and the \"1\" is a reference to this:
+
+  (find-emacs-keys-intro \"6. Windows\" \"C-x 1\")
+
+Note that `M-h M-1' undoes what `M-h M-3' did. In a figure:
+
+   _______________           _____________________           ________________ 
+  |               |        |          |          |         |                |
+  |               |        |          |  elinks  |         |                |
+  |               |        |          |  buffer  |         |                |
+  |    target     | M-h M-3 |  target  |__________| M-h M-1 |     target     |
+  |    buffer     | ------> |  buffer  |          | ------> |     buffer     |
+  |               |        |          |  notes   |         |                |
+  |               |        |          |  buffer  |         |                |
+  |_______________|        |__________|__________|         |________________|
+
+
+
+
+6. Copying the hyperlink
+========================
+When you are a beginner, the easiest way to copy an elisp
+hyperlink from the elinks buffer to the notes buffer is to put
+the cursor on the line with the hyperlink, then type `M-h M-w'
+(`ee-copy-this-line-to-kill-ring'), and then go to the notes
+buffer and copy it to there with `C-y' or with the entry \"Edit
+-> Paste\" in the menu bar. Note that in the three-window setting
+copying a hyperlink from the elinks buffer to the notes buffer
+means copying it from the upper right window to the lower right
+window:
+
+   _____________________
+  |          |          |
+  |          |  elinks  |
+  |          |  buffer  |
+  |  target  |____||____|
+  |  buffer  |    \\/    |
+  |          |  notes   |
+  |          |  buffer  |
+  |__________|__________|
+
+When you become a slightly more advanced user the easiest way is
+the one with the key sequences described here:
+
+  (find-eev-quick-intro \"5.2. Cutting and pasting\")
+
+
+
+
+7. Refining your hyperlinks
+===========================
+After learning the technique above, that was based on the keys:
+
+  M-h M-3  -- find-here-links-3
+  M-h M-w  -- ee-copy-this-line-to-kill-ring
+  C-y      -- yank, i.e., paste; see: (find-enode \"Kill Ring\")
+  M-h M-1  -- find-here-links-1
+
+The next steps are to learn how:
+
+  a) Refine hyperlinks. See:
+
+       (find-refining-intro \"1. Pos-spec-lists\")
+       (find-refining-intro \"2. Refining hyperlinks\")
+
+  b) Work with a single window. See:
+
+       (find-refining-intro \"3. Three buffers\")
+
+  c) Use other keys that create buffers with hyperlinks. See:
+
+       (find-emacs-keys-intro \"Some other keys that create\")
+
+
+" pos-spec-list)))
+
+;; (find-here-links-intro)
+
+
+
+
 ;;;            __ _       _             
 ;;;  _ __ ___ / _(_)_ __ (_)_ __   __ _ 
 ;;; | '__/ _ \ |_| | '_ \| | '_ \ / _` |
@@ -2365,12 +2669,14 @@ 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.
+It 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\")
+This tutorial supposes that you already know how to
+create \"hyperlinks to here\" - see:
+  (find-here-links-intro)
+  (find-emacs-keys-intro \"and refining them\")
 
 
 
@@ -2549,6 +2855,10 @@ sequence intended for beginners. I prefer to use 
something like
 
 4. A tip for beginners
 ======================
+TODO: Rewrite this section! It was mostly superseded by:
+
+  (find-here-links-intro \"4. `find-here-links-3'\")
+
 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,
@@ -3214,14 +3524,14 @@ hyperlinks in scripts]
 
 (defun find-links-conv-intro (&rest pos-spec-list) (interactive)
   (let ((ee-buffer-name "*(find-links-conv-intro)*"))
-    (apply 'find-estring "\
+    (apply 'find-eintro "\
 \(Re)generate: (find-links-conv-intro)
 Source code:  (find-efunction 'find-links-conv-intro)
 More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -3676,7 +3986,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -3899,8 +4209,38 @@ Try this, with `M-2 M-e' on each line:
 
 5. The first line regenerates the buffer
 ========================================
-\[To do: explain this convention with examples; explain the
-conventions for the \"variants of the first line\"\]
+Most of the \"M-h commands\" generate buffers with elisp
+hyperlinks in which the the first line \"regenerates the
+buffers\". This means two things:
+
+  1. You can copy the first to your notes, and it will work as a
+     link to that buffer. For example:
+
+     (find-efunction 'next-line)
+     (find-evariable 'line-move-visual)
+     (find-latex-links \"/tmp/mytest\")
+     (find-latex-links \"~/latextest\")
+     (find-code-pdf-links 
\"/usr/local/texlive/2019/texmf-dist/doc/asymptote/\" \"{c}\")
+     (find-code-pdf-links 
\"/usr/local/texlive/2019/texmf-dist/doc/asymptote/\" \"asy\")
+
+     A good way to compare the results of the two
+     `find-latex-links' and the two `find-code-pdf-links' sexps
+     above is to run them with `M-2 M-e'. The prefix `M-2' to
+     `M-e' makes the \"target\" of a sexp be displayed in a
+     second window without switching to it. See:
+
+       (find-efunctiondescr 'ee-eval-sexp-eol)
+       (find-multiwindow-intro \"find-2a\")
+
+  2. You can change the arguments of the sexp in the first line
+     and run it again, and this will regenerate the buffer with
+     some modifications. This was explained here:
+
+     (find-eev-quick-intro \"7.5. `find-latex-links'\" \"change the 
\\\"{stem}\\\"\")
+     (find-eev-quick-intro \"11.1. `find-pdf-links'\" \"adjust by hand\")
+
+\[To do: explain how this works in more complex templates.
+Example:\]
 
   (find-find-links-links)
   (find-find-links-links \"\\\\M-u\")
@@ -3911,6 +4251,7 @@ conventions for the \"variants of the first line\"\]
 
 
 
+
 6. Pointing to where we are now
 ===============================
 Several of the `M-h' commands are mainly meant to help us
@@ -4037,7 +4378,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-wrap-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial (for eepitch) and a sandbox.
+It is meant as both a tutorial (for eepitch) and a sandbox.
 
 
 
@@ -4273,7 +4614,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -4506,7 +4847,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -4798,7 +5139,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -4944,7 +5285,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -5115,7 +5456,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -5469,7 +5810,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -5693,7 +6034,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -5889,7 +6230,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -6318,7 +6659,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -6752,7 +7093,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -6940,7 +7281,7 @@ More intros:  (find-eev-quick-intro)
               (find-links-conv-intro)
               (find-eev-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -6992,7 +7333,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -7222,7 +7563,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -7316,7 +7657,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -7826,7 +8167,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -8125,7 +8466,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 Note: this intro needs to be rewritten!
@@ -8351,7 +8692,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -8544,7 +8885,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 
 
@@ -8615,7 +8956,7 @@ Source code:  (find-efunction 'find-escripts-intro)
 More intros:  (find-eev-quick-intro)
               (find-eev-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 The quickest way to open or recreate this is with `M-6 M-j'.
 
 
diff --git a/eev-mode.el b/eev-mode.el
index 62cbb4f..cf12857 100644
--- a/eev-mode.el
+++ b/eev-mode.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019jun10
+;; Version:    2019jun21
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-mode.el>
@@ -142,7 +142,9 @@ and: (find-eval-intro \"`M-k'\")"
   ;; See: (find-eval-intro "Producing and refining hyperlinks")
   ;;      (find-eval-intro "`M-h M-2'")
   ;; Source: (find-eev "eev-edit.el")
+  (define-key eev-mode-map "\M-h\M-1" 'find-here-links-1)
   (define-key eev-mode-map "\M-h\M-2" 'ee-duplicate-this-line)
+  (define-key eev-mode-map "\M-h\M-3" 'find-here-links-3)
   (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)
diff --git a/eev-pdflike.el b/eev-pdflike.el
index 5927c5b..394ce8a 100644
--- a/eev-pdflike.el
+++ b/eev-pdflike.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019mar10
+;; Version:    2019jun24
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-pdflike.el>
@@ -131,6 +131,7 @@
 ;; «.find-djvutxt-text»                        (to "find-djvutxt-text")
 ;;
 ;; «.aliases»                          (to "aliases")
+;; «.aliases-windows»                  (to "aliases-windows")
 ;; «.code-brxxxs»                      (to "code-brxxxs")
 
 
@@ -343,11 +344,13 @@ newline are spurious - and replaces them by \"(ff)\"."
 ;; (defun ee-find-pdftotext-text (fname)
 ;;   (format "pdftotext -layout -enc Latin1 '%s' -" (ee-expand fname)))
 
+(defvar ee-pdftotext-program "pdftotext")
+
 (defun ee-find-pdf-text (fname)
-  `("pdftotext" "-layout" "-enc" "Latin1" ,(ee-expand fname) "-"))
+  `(,ee-pdftotext-program "-layout" "-enc" "Latin1" ,(ee-expand fname) "-"))
 
 (defun ee-find-pdftotext-text (fname)
-  `("pdftotext" "-layout" "-enc" "Latin1" ,(ee-expand fname) "-"))
+  `(,ee-pdftotext-program "-layout" "-enc" "Latin1" ,(ee-expand fname) "-"))
 
 
 
@@ -371,8 +374,10 @@ newline are spurious - and replaces them by \"(ff)\"."
 ;; (find-code-xxxpdf-family "texworkspdf-page")
         (code-xxxpdf-family "texworkspdf-page")
 
+(defvar ee-texworks-program "texworks")
+
 (defun  ee-find-texworkspdf-page (fname &optional page)
-  `("texworks"
+  `(,ee-texworks-program
     ,@(if page `(,(format "--position=%d" page)))
     ,fname
     ))
@@ -510,6 +515,15 @@ may want to put here code that cleans up that page 
information.")
 ;; (find-code-xxxpdf-alias "evince"     "evince-page")
 
 
+
+;; «aliases-windows»  (to ".aliases-windows")
+;; (find-elnode "System Environment")
+;; (find-evardescr 'system-type)
+(if (eq system-type 'windows-nt)
+    (code-xxxpdf-alias "pdf-page" "texworkspdf-page"))
+
+
+
 ;; «code-brxxxs» (to ".code-brxxxs")
 
 (code-brfile 'find-pdf-text    :local 'brpdftextl  :dired 'brpdftextd)
diff --git a/eev-plinks.el b/eev-plinks.el
index c473085..5fdd10d 100644
--- a/eev-plinks.el
+++ b/eev-plinks.el
@@ -111,6 +111,7 @@
 ;; (find-eev "eev-brxxx.el")
 
 
+;; «.find-urlretrieve» (to "find-urlretrieve")
 ;; «.find-wget»                (to "find-wget")
 ;; «.find-gitk»                (to "find-gitk")
 ;; «.find-tkdiff»      (to "find-tkdiff")
@@ -247,6 +248,48 @@
 
 
 
+;;;             _                _        _                
+;;;  _   _ _ __| |      _ __ ___| |_ _ __(_) _____   _____ 
+;;; | | | | '__| |_____| '__/ _ \ __| '__| |/ _ \ \ / / _ \
+;;; | |_| | |  | |_____| | |  __/ |_| |  | |  __/\ V /  __/
+;;;  \__,_|_|  |_|     |_|  \___|\__|_|  |_|\___| \_/ \___|
+;;;                                                        
+;; «find-urlretrieve»  (to ".find-urlretrieve")
+;; See: (find-node "(url)Retrieving URLs" "url-retrieve-synchronously")
+;; Tests: http://angg.twu.net/e/emacs.e.html#find-urlretrieve
+;;                    (find-es "emacs"      "find-urlretrieve")
+;;
+(defun find-urlretrieve00 (url &rest pos-spec-list)
+  "Download URL with `url-retrieve-synchronously'. Show the full response."
+  (apply 'find-ebuffer (url-retrieve-synchronously url) pos-spec-list))
+
+(defun ee-urlretrieve-3 (url)
+  "Download URL with `url-retrieve-synchronously'. Return status, headers, 
body."
+  (find-urlretrieve00 url 1 "\n\n")
+  (let* ((header (buffer-substring 1 (- (point) 1)))
+        (body   (buffer-substring (point) (point-max)))
+        (status (replace-regexp-in-string "\n.*" "" header)))
+    (ee-kill-this-buffer)
+    (list status header body)))
+
+(defun find-urlretrieve0 (url)
+  "Download URL with `url-retrieve-synchronously'. Return body as a raw 
string."
+  (let* ((shb (ee-urlretrieve-3 url))
+        (status (nth 0 shb))
+        (body   (nth 2 shb)))
+    (if (equal status "HTTP/1.1 200 OK")
+       body
+      (error "%s -> %s" url status))))
+
+(defun find-urlretrieve (url &rest pos-spec-list)
+  "Download URL with `url-retrieve-synchronously'.
+TODO: detect the encoding!!!"
+  (let ((ee-buffer-name url))
+    (apply 'find-estring (find-urlretrieve0 url) pos-spec-list)))
+
+
+
+
 ;; «find-wget» (to ".find-wget")
 ;;
 (defun find-wget00 (url)
diff --git a/eev-tlinks.el b/eev-tlinks.el
index 3e5a696..8a0713f 100644
--- a/eev-tlinks.el
+++ b/eev-tlinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019may16
+;; Version:    2019jun21
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-tlinks.el>
@@ -299,7 +299,7 @@ More intros:  (find-eev-quick-intro)
               (find-eval-intro)
               (find-eepitch-intro)
 This buffer is _temporary_ and _editable_.
-Is is meant as both a tutorial and a sandbox.
+It is meant as both a tutorial and a sandbox.
 
 Hello
 =====
@@ -1230,7 +1230,14 @@ echo     'http://angg.twu.net/eev-videos/{anggstem}.mp4' 
>> ~/.psne.log
        (find-latex-links "/tmp/test")
        ;; Convention: the first sexp always regenerates the buffer.
        ;; (find-efunction 'find-latex-links)
-       (find-eev-quick-intro "`find-latex-links'")
+       (find-eev-quick-intro "7.5. `find-latex-links'")
+       (find-eev-quick-intro "7.5. `find-latex-links'" "change the \"{stem}\"")
+       (find-eev-quick-intro "7.5. `find-latex-links'" "top line")
+       (find-eev-quick-intro "7.5. `find-latex-links'" "(ee-copy-rest ...)")
+       (find-eev-quick-intro "7.5. `find-latex-links'" "`C-y'")
+       (find-eev-quick-intro "7.5. `find-latex-links'" "save the file foo.tex")
+       (find-eev-quick-intro "7.5. `find-latex-links'" "execute the three 
defuns")
+       ""
        (ee-copy-rest 1 '(find-fline ,(concat stem ".tex")))
        ""
        ,(ee-template0 "\



reply via email to

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