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

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

[elpa] externals/eev c77ca3b 27/64: Rewrote eev-pdflike.el, added sectio


From: Stefan Monnier
Subject: [elpa] externals/eev c77ca3b 27/64: Rewrote eev-pdflike.el, added sections about it to (find-eev-quick-intro).
Date: Sun, 7 Apr 2019 16:59:06 -0400 (EDT)

branch: externals/eev
commit c77ca3b65de5c21dc504558018b170877e67c8c5
Author: Eduardo Ochs <address@hidden>
Commit: Eduardo Ochs <address@hidden>

    Rewrote eev-pdflike.el, added sections about it to (find-eev-quick-intro).
---
 ChangeLog                            |  31 ++
 eev-intro.el                         |  98 ++++-
 eev-load.el                          |  10 +-
 eev-mode.el                          |   4 +-
 eev-pdflike.el => eev-pdflike-old.el |   0
 eev-pdflike.el                       | 687 +++++++++++++++++++----------------
 eev-plinks.el                        |   6 +-
 eev-rcirc.el                         |  71 +++-
 8 files changed, 557 insertions(+), 350 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ab3c686..7918d1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,34 @@
+2019-01-29  Eduardo Ochs  <address@hidden>
+
+       * eev-load.el: new file.
+
+       * eev-intro.el (find-eev-quick-intro): Added two new sections:
+       "9.3. Hyperlinks to PDF files" and "9.4. Shorter hyperlinks to PDF
+       files".
+
+       * eev-pdflike.el: TOTAL REWRITE. The old version was renamed to
+       eev-pdflike-old.el and will be deleted at some point in the
+       future.
+       (code-xxxpdf-family): new function.
+       (code-xxxpdftext-family): new function.
+       (code-xxxpdf-alias): new function.
+
+       * eev-pdflike-old.el: new file.
+
+       * eev-rcirc.el (find-freenode-2a): new function.
+       (find-freenode-links): rewrote completely.
+
+2019-01-28  Eduardo Ochs  <address@hidden>
+
+       * eev-rcirc.el (ee-buffer-freenode-channel-name): new function.
+
+2019-01-24  Eduardo Ochs  <address@hidden>
+
+       * eev-pdflike.el (ee-find-pdf-text): new function - an alias to
+       `ee-find-pdftotext-text'.
+       (ee-find-pdf-page): new function - an alias to
+       `ee-find-xpdf-page'.
+
 2019-01-23  Eduardo Ochs  <address@hidden>
 
        * eev-intro.el (find-eev-quick-intro): added sections "3.1.
diff --git a/eev-intro.el b/eev-intro.el
index 372bfbb..f6c5dc0 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -20,7 +20,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019jan23
+;; Version:    2019jan29
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-intro.el>
@@ -6896,12 +6896,108 @@ and that code
      run:  (find-eevfile \"eev-blinks.el\" \"�find-wottb�\")
      or actually: (find-anchor (ee-eevfile \"eev-blinks.el\") \"find-wottb\")
 
+Calls to `find-eev' are \"short hyperlinks to anchors\":
+
+  (find-eev \"eev-blinks.el\" \"find-wottb\")
+  (find-eev \"eev-blinks.el\" \"find-wottb\" \"defun find-wottb-call\")
+
 For the technical details of the implementation, see here:
 
   (find-code-c-d-intro \"Extra arguments to `code-c-d'\")
 
 
 
+9.3. Hyperlinks to PDF files
+----------------------------
+If you run this e-script
+
+ (eepitch-shell)
+ (eepitch-kill)
+ (eepitch-shell)
+#         https://tannerlectures.utah.edu/_documents/a-to-z/c/Coetzee99.pdf
+mkdir -p $S/https/tannerlectures.utah.edu/_documents/a-to-z/c/
+cd       $S/https/tannerlectures.utah.edu/_documents/a-to-z/c/
+wget -nc  https://tannerlectures.utah.edu/_documents/a-to-z/c/Coetzee99.pdf
+
+you will download a local copy of J.M. Coetzee's \"The Lives of
+Animals\" into this directory:
+
+  (find-fline      \"$S/https/tannerlectures.utah.edu/_documents/a-to-z/c/\")
+  (find-fline \"~/snarf/https/tannerlectures.utah.edu/_documents/a-to-z/c/\")
+
+The full idea behind these \"local copies\" is explained here:
+
+  (find-psne-intro)
+
+If you have xpdf installed then the second sexp here,
+
+  (setq l-o-a 
\"$S/https/tannerlectures.utah.edu/_documents/a-to-z/c/Coetzee99.pdf\")
+  (find-pdf-page l-o-a)
+
+should work as a \"hyperlink to the PDF\": it calls xpdf as
+external program to open that PDF file. The main keys of xpdf
+are:
+
+  q         quit xpdf
+  alt-f     toggle full-screen; use twice to fit document to page
+  PageDown  scroll down/go to next page
+  PageUp    scroll up/go to previous page
+  0         set zoom to 125%
+  +         zoom in one step
+  -         zoom out out step
+  arrows    scroll within the current page
+
+Also, if you have the program pdftotext installed (hint: apt-get
+install poppler-utils!) then this
+
+  (find-pdf-text l-o-a)
+
+should work as a \"hyperlink to the text of the PDF\".
+
+You can use these two sexps
+
+  (ee-find-pdf-text l-o-a)
+  (ee-find-pdf-page l-o-a)
+
+to see exactly how the `find-pdf-page' and the `find-pdf-text'
+sexps above invoke xpdf and pdftotext; note that `find-pdf-page'
+uses `find-bgprocess' and `find-pdf-text' uses `find-sh'.
+
+The functions above accept extra arguments, that are interpreted
+as a page number and as strings to look for, but it's easier to
+discuss them using shorter hyperlinks.
+
+
+
+
+9.4. Shorter hyperlinks to PDF files
+------------------------------------
+If you run these sexps
+
+  (code-pdf-page \"livesofanimals\" l-o-a)
+  (code-pdf-text \"livesofanimals\" l-o-a -110)
+
+then these hyperlinks should work:
+
+  (find-livesofanimalspage (+ -110 127) \"wrong thoughts\")
+  (find-livesofanimalstext (+ -110 127) \"wrong thoughts\")
+  (find-livesofanimalspage (+ -110 132) \"into the place of their victims\")
+  (find-livesofanimalstext (+ -110 132) \"into the place of their victims\")
+  (find-livesofanimalspage (+ -110 134) \"woke up haggard in the mornings\")
+  (find-livesofanimalstext (+ -110 134) \"woke up haggard in the mornings\")
+  (find-livesofanimalspage (+ -110 143) \"Babies have no self-consciousness\")
+  (find-livesofanimalstext (+ -110 143) \"Babies have no self-consciousness\")
+  (find-livesofanimalspage (+ -110 145) \"squirrel doing its thinking\")
+  (find-livesofanimalstext (+ -110 145) \"squirrel doing its thinking\")
+  (find-livesofanimalspage (+ -110 147) \"Rilke's panther\")
+  (find-livesofanimalstext (+ -110 147) \"Rilke's panther\")
+  (find-livesofanimalspage (+ -110 162) \"a grasp of the meaning\")
+  (find-livesofanimalstext (+ -110 162) \"a grasp of the meaning\")
+  (find-livesofanimalspage (+ -110 164) \"last common ground\")
+  (find-livesofanimalstext (+ -110 164) \"last common ground\")
+
+[To do: explain them]
+
 
 
 
diff --git a/eev-load.el b/eev-load.el
index 68d418b..85357f6 100644
--- a/eev-load.el
+++ b/eev-load.el
@@ -20,7 +20,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019jan23
+;; Version:    2019jan29
 ;; Keywords:   e-scripts
 ;;
 ;; Supersedes: (find-eev "eev-all.el")
@@ -34,6 +34,11 @@
 
 ;;; Commentary:
 
+;; This file loads all the main modules of eev, and people who want to
+;; read the source can use this as an index to them. The modules are
+;; loaded more or less in the order that they are mentioned here:
+;; (find-eev-quick-intro)
+
 ;; The "eev quick intro" itself, and many other intros:
 (require 'eev-intro)          ; (find-eev "eev-intro.el")
 ;;
@@ -75,14 +80,15 @@
 ;; Shorter hyperlinks and how to mass-produce them:
 ;;   (find-eev-quick-intro "9. Shorter hyperlinks")
 ;;   (find-code-c-d-intro "\nShorter hyperlinks\n")
+;;   (find-eev-quick-intro "9.3. Hyperlinks to PDF files")
 (require 'eev-code)           ; (find-eev "eev-code.el")
-(require 'eev-brxxx)          ; (find-eev "eev-brxxx.el")
 (require 'eev-pdflike)        ; (find-eev "eev-pdflike.el")
 ;;
 ;; (I need to write comments for these)
 (require 'eev-codings)        ; (find-eev "eev-codings.el")
 (require 'eev-env)            ; (find-eev "eev-env.el")
 (require 'eev-edit)            ; (find-eev "eev-edit.el")
+(require 'eev-brxxx)          ; (find-eev "eev-brxxx.el")
 ;;
 ;; Advanced (and hard to use) features that may require creating a
 ;; temporary directory, patching rcfiles, and installing Expect
diff --git a/eev-mode.el b/eev-mode.el
index f7465bb..05dfa07 100644
--- a/eev-mode.el
+++ b/eev-mode.el
@@ -164,8 +164,8 @@ Commands to return from hyperlinks:
   \\[bury-buffer] -- put this buffer at the end of the list of all buffers
     See: (find-eval-intro \"\\nGoing back\\n\")
 Other very very important commands:
-      \\[eejump] -- jump to where the main eejump targets are defined
-  M-5 \\[eejump] -- jump to the index of all sandbox tutorials for eev
+      \\[eejump] -- jump to the list of eejump targets
+  M-5 \\[eejump] -- jump to the tutorial at (find-eev-quick-intro)
     See: (find-eejump-intro)
   \\[eepitch-this-line]     -- pitch this line to another Emacs buffer,
            or execute it as lisp if it starts with `'
diff --git a/eev-pdflike.el b/eev-pdflike-old.el
similarity index 100%
copy from eev-pdflike.el
copy to eev-pdflike-old.el
diff --git a/eev-pdflike.el b/eev-pdflike.el
index 7df0197..516aeb3 100644
--- a/eev-pdflike.el
+++ b/eev-pdflike.el
@@ -1,6 +1,6 @@
 ;;; eev-pdflike.el -- hyperlinks to documents made of pages.
 
-;; Copyright (C) 2012,2013 Free Software Foundation, Inc.
+;; Copyright (C) 2012,2013,2019 Free Software Foundation, Inc.
 ;;
 ;; This file is (not yet?) part of GNU eev.
 ;;
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2014mar05
+;; Version:    2019jan29
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-pdflike.el>
@@ -32,275 +32,132 @@
 
 ;;; Commentary:
 
-
-
-
-;; (code-brfile 'find-fline                  :local 'brfl)
-;; (code-brfile 'find-xpdfpage               :local 'brxpdf :dired 'brxpdfd)
-;; (code-brurl  'find-firefox  :remote 'brm  :local 'brml   :dired 'brmd)
-
-
-(require 'eev-brxxx)
-
-;;;                  _       _     _           
-;;; __   ____ _ _ __(_) __ _| |__ | | ___  ___ 
-;;; \ \ / / _` | '__| |/ _` | '_ \| |/ _ \/ __|
-;;;  \ V / (_| | |  | | (_| | |_) | |  __/\__ \
-;;;   \_/ \__,_|_|  |_|\__,_|_.__/|_|\___||___/
+;; 2019jan25: I rewrote most of this file. The comments below are new.
+;; There may be bugs. The old version of this file has renamed to
+;; "eev-pdflike-old.el". See:
 ;;
-(defvar ee-page-c      "{?}")
-(defvar ee-page-fname  "{?}")
-(defvar ee-page-offset 0)
-
-
-
-
-
-;;;  ____  ____  _____     _ _ _        
-;;; |  _ \|  _ \|  ___|   | (_) | _____ 
-;;; | |_) | | | | |_ _____| | | |/ / _ \
-;;; |  __/| |_| |  _|_____| | |   <  __/
-;;; |_|   |____/|_|       |_|_|_|\_\___|
-;;;                                     
-;; See: (find-pdf-like-intro)
-
-
-(defun ee-code-pdftext-rest (rest)
-  (ee-template0 "
-;; {(ee-S `(ee-code-pdftext-rest ,@rest))}
-"))
-
-
-;;;                 _  __ 
-;;; __  ___ __   __| |/ _|
-;;; \ \/ / '_ \ / _` | |_ 
-;;;  >  <| |_) | (_| |  _|
-;;; /_/\_\ .__/ \__,_|_|  
-;;;      |_|              
+;;   (find-eev "eev-pdflike-old.el")
 ;;
-;; (find-pdflikedef-links "xpdf" "c fname")
+;; The main ideas are explained here:
 ;;
-;; find-xpdfpage
-;; find-xpdf-page
-;; code-xpdf
+;;   (find-eev-quick-intro "9.3. Hyperlinks to PDF files")
 ;;
-(defalias 'find-xpdfpage
-          'find-xpdf-page)
-(defun     find-xpdf-page (fname &optional page &rest rest)
-  (find-bgprocess (ee-find-xpdf-page fname page)))
-(defvar ee-find-xpdf-page-options '())
-(defun  ee-find-xpdf-page (fname &optional page)
-  `("xpdf"
-    ,@ee-find-xpdf-page-options
-    ,fname
-    ,@(if page `(,(format "%d" page)))
-    ))
-
-(defun      code-xpdf (c fname &rest rest)
-  (eval (ee-read      (apply 'ee-code-xpdf c fname rest))))
-(defun find-code-xpdf (c fname &rest rest)
-  (find-estring-elisp (apply 'ee-code-xpdf c fname rest)))
-(defun   ee-code-xpdf (c fname &rest rest)
-  (concat (ee-template0 "\
-;; {(ee-S `(find-code-xpdf ,c ,fname ,@rest))} 
+;; The functions whose names end with a <suffix> like "xpdf-page" call
+;; one another according to this diagram:
 ;;
-\(setq ee-pdflike-last 'find-{c}page)
-\(defun find-{c}page (&optional page &rest rest)
-  (setq ee-pdflike-last 'find-{c}page)
-  (find-xpdf-page {(ee-pp0 fname)} page))
-")  (ee-code-pdftext-rest rest)))
-
-(code-brfile 'find-xpdf-page :local 'brxpdfl :dired 'brxpdfd)
-
-
-
-;;;            _  __ 
-;;;  _ __   __| |/ _|
-;;; | '_ \ / _` | |_ 
-;;; | |_) | (_| |  _|
-;;; | .__/ \__,_|_|  
-;;; |_|              
+;;                         find-<suffix> --> ee-find-<suffix>
+;;                                ^
+;;                                :
+;;    code-<suffix> --> ee-code-<suffix>      
+;;                                ^
+;;                                |
+;;                    find-code-<suffix>
 ;;
-(defalias 'find-pdfpage  'find-xpdfpage)
-(defalias 'find-pdf-page 'find-xpdf-page)
-(defalias      'code-pdf      'code-xpdf)
-(defalias 'find-code-pdf 'find-code-xpdf)
-
-
-
-;;;             _                
-;;;   _____   _(_)_ __   ___ ___ 
-;;;  / _ \ \ / / | '_ \ / __/ _ \
-;;; |  __/\ V /| | | | | (_|  __/
-;;;  \___| \_/ |_|_| |_|\___\___|
-;;;                              
+;; note that "->" means "calls", and "..>" means "produces elisp code
+;; that calls". The main <suffix>es are:
 ;;
-;; (find-pdflikedef-links "evince" "c fname")
-;; (find-man "1 evince")
+;;   xpdf-page
+;;   pdf-page
+;;   pdf-text
 ;;
-;; find-evincepage
-;; find-evince-page
-;; code-evince
+;; there are also these suffixes, for programs that I use much less:
 ;;
-(defalias 'find-evincepage
-          'find-evince-page)
-(defun     find-evince-page (fname &optional page &rest rest)
-  (find-bgprocess (ee-find-evince-page fname page)))
-(defvar ee-find-evince-page-options '())
-(defun  ee-find-evince-page (fname &optional page)
-  `("evince"
-    ,@ee-find-evince-page-options
-    ;; ,@(if page `(,(format "--page-label=%d" page)))
-    ,@(if page `(,(format "--page-index=%d" page)))
-    ,fname))
-
-(defun      code-evince (c fname &rest rest)
-  (eval (ee-read      (apply 'ee-code-evince c fname rest))))
-(defun find-code-evince (c fname &rest rest)
-  (find-estring-elisp (apply 'ee-code-evince c fname rest)))
-(defun   ee-code-evince (c fname &rest rest)
-  (concat (ee-template0 "\
-\(defun find-{c}page (&optional page &rest rest)
-  (find-evince-page {(ee-pp0 fname)} page))
-{(ee-code-pdftext-rest rest)}
-")  (ee-code-pdftext-rest rest)))
-
-(code-brfile 'find-evince-page :local 'brevincel :dired 'brevinced)
-
-
-
-;;;          _       _ 
-;;; __  ____| |_   _(_)
-;;; \ \/ / _` \ \ / / |
-;;;  >  < (_| |\ V /| |
-;;; /_/\_\__,_| \_/ |_|
-;;;                    
+;;   xdvi-page
+;;   djvu-page
+;;   ps-page
+;;   evince-page
 ;;
-;; (find-pdflikedef-links "xdvi" "c fname")
+;; FAMILIES. We call the five functions ending in "xpdf-page" the
+;; "xpdf-page family" - and the same for the other suffixes. The code
+;; for the xpdf-page family is very similar to the code for the
+;; pdf-text family. We use the templates in the "meta-tools" section
+;; below to generate the block of code for each family - except for
+;; the function `ee-find-<suffix>'. For example:
 ;;
-;; find-xdvipage
-;; find-xdvi-page
-;; code-xdvi
+;;   (find-code-xxxpdf-family "xpdf-page")
 ;;
-(defalias 'find-xdvipage
-          'find-xdvi-page)
-(defun     find-xdvi-page (fname &optional page &rest rest)
-  (find-bgprocess (ee-find-xdvi-page fname page)))
-(defvar ee-find-xdvi-page-options '())
-(defun  ee-find-xdvi-page (fname &optional page)
-  `("xdvi"
-    ,@ee-find-xdvi-page-options
-    ,@(if page `(,(format "+%d" page)))
-    ,fname))
-
-(defun      code-xdvi (c fname &rest rest)
-  (eval (ee-read      (apply 'ee-code-xdvi c fname rest))))
-(defun find-code-xdvi (c fname &rest rest)
-  (find-estring-elisp (apply 'ee-code-xdvi c fname rest)))
-(defun   ee-code-xdvi (c fname &rest rest)
-  (concat (ee-template0 "\
-\(defun find-{c}page (&optional page &rest rest)
-  (find-xdvi-page {(ee-pp0 fname)} page))
-{(ee-code-pdftext-rest rest)}
-")  (ee-code-pdftext-rest rest)))
-
-(code-brfile 'find-xdvi-page :local 'brxdvil :dired 'brxdvid)
-
-(defalias      'code-dvi      'code-xdvi)
-(defalias 'find-code-dvi 'find-code-xdvi)
-
-
-
-;;;      _  _             
-;;;   __| |(_)_   ___   _ 
-;;;  / _` || \ \ / / | | |
-;;; | (_| || |\ V /| |_| |
-;;;  \__,_|/ | \_/  \__,_|
-;;;      |__/             
+;; CONVENTION ON HYPHENS. Note that if we run
 ;;
-;; (find-pdflikedef-links "djvu" "c fname")
+;;   (code-pdf-page         "livesofanimals" "/tmp/Coetzee99.pdf")
+;;   (code-pdf-text         "livesofanimals" "/tmp/Coetzee99.pdf")
+;;   ;; (find-code-pdf-page "livesofanimals" "/tmp/Coetzee99.pdf")
+;;   ;; (find-code-pdf-text "livesofanimals" "/tmp/Coetzee99.pdf")
 ;;
-;; find-djvupage
-;; find-djvu-page
-;; code-djvu
+;; this defines the functions `find-livesofanimalspage' and
+;; `find-livesofanimalstext'. I am trying to follow a convention in
+;; which function with two hyphens in their names, like
+;; `find-xpdf-page', are basic hyperlink functions like the ones
+;; defined in this file, and functions with only one hyphen in their
+;; names, like `find-livesofanimalspage', are short hyperlinks, as in:
 ;;
-(defalias 'find-djvupage
-          'find-djvu-page)
-(defun     find-djvu-page (fname &optional page &rest rest)
-  (ee-find-djvu-cleanup fname)
-  (find-bgprocess (ee-find-djvu-page fname page)))
-(defvar ee-find-djvu-page-options '())
-(defun  ee-find-djvu-page (fname &optional page)
-  `("djview"
-    ,@ee-find-djvu-page-options
-    ,@(if page `(,(format "--page=%d" page)))
-    ,fname))
-
-(defun      code-djvu (c fname &rest rest)
-  (eval (ee-read      (apply 'ee-code-djvu c fname rest))))
-(defun find-code-djvu (c fname &rest rest)
-  (find-estring-elisp (apply 'ee-code-djvu c fname rest)))
-(defun   ee-code-djvu (c fname &rest rest)
-  (concat (ee-template0 "\
-\(defun find-{c}page (&optional page &rest rest)
-  (find-djvu-page {(ee-pp0 fname)} page))
-")  (ee-code-pdftext-rest rest)))
-
-(defun ee-find-djvu-cleanup (&optional fname)
-  "A hack: clean up djview's 'recentFiles=' line in the config file if 
needed.")
-
-(code-brfile 'find-djvu-page :local 'brdjvul :dired 'brdjvud)
-
-
-
-
-;;;            
-;;;  _ __  ___ 
-;;; | '_ \/ __|
-;;; | |_) \__ \
-;;; | .__/|___/
-;;; |_|        
+;;   (find-eev-quick-intro "9.4. Shorter hyperlinks to PDF files")
 ;;
-;; (find-pdflikedef-links "ps" "c fname")
+;; ALIASES. This convention on hyphens only occurred to me a few years
+;; ago. To keep compatibility with the previous version there are some
+;; calls to `code-xxxpdf-alias' at the end of this file that define
+;; functions that I used in old versions of eev that do not follow the
+;; convention.
 ;;
-;; find-pspage
-;; find-ps-page
-;; code-ps
+;; SOME TESTS:
 ;;
-(defalias 'find-pspage
-          'find-ps-page)
-(defun     find-ps-page (fname &optional page &rest rest)
-  (find-bgprocess (ee-find-ps-page fname page)))
-(defvar ee-find-ps-page-options '())
-(defun  ee-find-ps-page (fname &optional page)
-  `("gv"
-    ,@ee-find-ps-page-options
-    ,@(if page `(,(format "--page=%d" page)))
-    ,fname))
-
-(defun      code-ps (c fname &rest rest)
-  (eval (ee-read      (apply 'ee-code-ps c fname rest))))
-(defun find-code-ps (c fname &rest rest)
-  (find-estring-elisp (apply 'ee-code-ps c fname rest)))
-(defun   ee-code-ps (c fname &rest rest)
-  (concat (ee-template0 "\
-\(defun find-{c}page (&optional page &rest rest)
-  (find-ps-page {(ee-pp0 fname)} page))
-")  (ee-code-pdftext-rest rest)))
+;;        (find-code-xxxpdftext-family "pdf-text")
+;;             (code-xxxpdftext-family "pdf-text")
+;; (find-code-pdf-text "loa" "/tmp/Coetzee99.pdf")
+;; (find-code-pdf-text "loa" "/tmp/Coetzee99.pdf" -110)
+;;      (code-pdf-text "loa" "/tmp/Coetzee99.pdf" -110)
+;;      (find-loatext)
+;;      (find-loatext (+ -110 145))
+;;      (find-loatext (+ -110 145) "squirrel doing its thinking")
+;;      (find-loatext              "squirrel doing its thinking")
+
+
+
+;; �.ee-goto-position-page�            (to "ee-goto-position-page")
+;; �.find-sh-page�                     (to "find-sh-page")
+;; �.code-xxxpdf-family�               (to "code-xxxpdf-family")
+;; �.code-xxxpdftext-family�           (to "code-xxxpdftext-family")
+;; �.code-xxxpdf-alias�                        (to "code-xxxpdf-alias")
+;;
+;; �.find-xpdf-page�                   (to "find-xpdf-page")
+;; �.find-pdf-page�                    (to "find-pdf-page")
+;; �.find-pdf-text�                    (to "find-pdf-text")
+;;
+;; �.find-xdvi-page�                   (to "find-xdvi-page")
+;; �.find-djview-page�                 (to "find-djview-page")
+;; �.find-evince-page�                 (to "find-evince-page")
+;; �.find-gv-page�                     (to "find-gv-page")
+;; �.find-djvutxt-text�                        (to "find-djvutxt-text")
+;;
+;; �.aliases�                          (to "aliases")
+;; �.code-brxxxs�                      (to "code-brxxxs")
 
 
+(require 'eev-brxxx)                   ; (find-eev "eev-brxxx.el")
 
 
+;;;                  _       _     _           
+;;; __   ____ _ _ __(_) __ _| |__ | | ___  ___ 
+;;; \ \ / / _` | '__| |/ _` | '_ \| |/ _ \/ __|
+;;;  \ V / (_| | |  | | (_| | |_) | |  __/\__ \
+;;;   \_/ \__,_|_|  |_|\__,_|_.__/|_|\___||___/
+;;
+;; Used by `M-h M-p'. See:
+;;   (find-efunction 'find-pdflike-page-links)
+(defvar ee-page-c      "{?}" "Internal, used by `find-pdflike-page-links'.")
+(defvar ee-page-fname  "{?}" "Internal, used by `find-pdflike-page-links'.")
+(defvar ee-page-offset   0   "Internal, used by `find-pdflike-page-links'.")
 
 
 
-;;;   __ _           _                            _            _   
-;;;  / _(_)_ __   __| |    __  ____  ____  __    | |_ _____  _| |_ 
-;;; | |_| | '_ \ / _` |____\ \/ /\ \/ /\ \/ /____| __/ _ \ \/ / __|
-;;; |  _| | | | | (_| |_____>  <  >  <  >  <_____| ||  __/>  <| |_ 
-;;; |_| |_|_| |_|\__,_|    /_/\_\/_/\_\/_/\_\     \__\___/_/\_\\__|
-;;;                                                                
 
+;;;   __ _           _           _                                  
+;;;  / _(_)_ __   __| |      ___| |__        _ __   __ _  __ _  ___ 
+;;; | |_| | '_ \ / _` |_____/ __| '_ \ _____| '_ \ / _` |/ _` |/ _ \
+;;; |  _| | | | | (_| |_____\__ \ | | |_____| |_) | (_| | (_| |  __/
+;;; |_| |_|_| |_|\__,_|     |___/_| |_|     | .__/ \__,_|\__, |\___|
+;;;                                         |_|          |___/      
+;;
+;; �ee-goto-position-page� (to ".ee-goto-position-page")
 (defun ee-goto-position-page (&optional pos-spec &rest rest)
   "Like `ee-goto-position', but interpreting a number as a page number.
 \(Note that POS-SPEC is only interpreted as a page if it is a number.)"
@@ -316,6 +173,7 @@
          (t (error "This is not a valid pos-spec: %S" pos-spec)))
     (if rest (ee-goto-rest rest))))
 
+;; �find-sh-page� (to ".find-sh-page")
 (defun find-sh-page (command &rest pos-spec-list)
   "Like `find-sh', but interpreting the car of POS-SPEC-LIST as a page."
   (interactive "sShell command: ")
@@ -324,106 +182,293 @@
    `(insert (shell-command-to-string ,command)))
   (apply 'ee-goto-position-page pos-spec-list))
 
-;; find-pdf-text
+
+
+
+;;;                 _              _              _     
+;;;  _ __ ___   ___| |_ __ _      | |_ ___   ___ | |___ 
+;;; | '_ ` _ \ / _ \ __/ _` |_____| __/ _ \ / _ \| / __|
+;;; | | | | | |  __/ || (_| |_____| || (_) | (_) | \__ \
+;;; |_| |_| |_|\___|\__\__,_|      \__\___/ \___/|_|___/
+;;;                                                     
+;; �code-xxxpdf-family� (to ".code-xxxpdf-family")
+;; Test: (find-code-xxxpdf-family "XPDFPAGE")
+;;
+(defun      code-xxxpdf-family (xxxpdf)
+  (eval (ee-read      (ee-code-xxxpdf-family xxxpdf))))
+(defun find-code-xxxpdf-family (xxxpdf)
+  (find-estring-elisp (ee-code-xxxpdf-family xxxpdf)))
+(defun   ee-code-xxxpdf-family (xxxpdf)
+  (ee-template0 "\
+;; (find-code-xxxpdf-family {(ee-pp0 xxxpdf)})
+;;      (code-xxxpdf-family {(ee-pp0 xxxpdf)})
+;; (find-code-{xxxpdf} \"C\" \"FNAME\")
+
+\(defun      find-{xxxpdf} (fname &optional page &rest rest)
+  (find-bgprocess (ee-find-{xxxpdf} fname page)))
+
+\(defun      code-{xxxpdf} (c fname &rest rest)
+  (eval (ee-read      (apply 'ee-code-{xxxpdf} c fname rest))))
+\(defun find-code-{xxxpdf} (c fname &rest rest)
+  (find-estring-elisp (apply 'ee-code-{xxxpdf} c fname rest)))
+\(defun   ee-code-{xxxpdf} (c fname &rest rest)
+  (ee-template0 \"\\
+\(setq ee-pdflike-last 'find-{<}c{>}page)
+\(defun find-{<}c{>}page (&optional page &rest rest)
+  (setq ee-pdflike-last 'find-{<}c{>}page)
+  (find-{xxxpdf} {<}(ee-pp0 fname){>} page))
+\"))
+"))
+
+;; �code-xxxpdftext-family� (to ".code-xxxpdftext-family")
+;; Tests: (find-code-xxxpdftext-family "XPDFTEXT")
+;;
+(defun      code-xxxpdftext-family (xxxpdf)
+  (eval (ee-read      (ee-code-xxxpdftext-family xxxpdf))))
+(defun find-code-xxxpdftext-family (xxxpdf)
+  (find-estring-elisp (ee-code-xxxpdftext-family xxxpdf)))
+(defun   ee-code-xxxpdftext-family (xxxpdf)
+  (ee-template0 "\
+;; (find-code-xxxpdftext-family {(ee-pp0 xxxpdf)})
+;;      (code-xxxpdftext-family {(ee-pp0 xxxpdf)})
+;; (find-code-{xxxpdf} \"C\" \"FNAME\")
+;; (ee-find-{xxxpdf} \"FNAME\")
+
+\(defun      find-{xxxpdf} (fname &optional page &rest rest)
+  (apply 'find-sh-page (ee-find-{xxxpdf} fname) page rest))
+
+\(defun      code-{xxxpdf} (c fname &rest rest)
+  (eval (ee-read      (apply 'ee-code-{xxxpdf} c fname rest))))
+\(defun find-code-{xxxpdf} (c fname &rest rest)
+  (find-estring-elisp (apply 'ee-code-{xxxpdf} c fname rest)))
+\(defun   ee-code-{xxxpdf} (c fname &optional offset)
+  (setq offset (or offset 0))
+  (ee-template0 \"\\
+\(setq ee-page-c      {<}(ee-pp0 c){>})
+\(setq ee-page-fname  {<}(ee-pp0 fname){>})
+\(setq ee-page-offset {<}(ee-pp0 offset){>})
+\(defun find-{<}c{>}text (&optional page &rest rest)
+  (setq ee-page-c      {<}(ee-pp0 c){>})
+  (setq ee-page-fname  {<}(ee-pp0 fname){>})
+  (setq ee-page-offset {<}(ee-pp0 offset){>})
+  (apply 'find-{xxxpdf} {<}(ee-pp0 fname){>} page rest))
+\"))
+"))
+
+;; �code-xxxpdf-alias� (to ".code-xxxpdf-alias")
+;; Test: (find-code-xxxpdf-alias "pdfpage" "xpdf-page")
+;;
+(defun      code-xxxpdf-alias (xxxpdfnew xxxpdfold)
+  (eval (ee-read      (ee-code-xxxpdf-alias xxxpdfnew xxxpdfold))))
+(defun find-code-xxxpdf-alias (xxxpdfnew xxxpdfold)
+  (find-estring-elisp (ee-code-xxxpdf-alias xxxpdfnew xxxpdfold)))
+(defun   ee-code-xxxpdf-alias (xxxpdfnew xxxpdfold)
+  (ee-template0 "\
+;; (find-code-xxxpdf-alias \"xxxpdfnew\" \"xxxpdfold\")
+;; (find-code-xxxpdf-alias \"pdf-page\" \"xpdf-page\")
+;; (find-code-xxxpdf-alias \"pdfpage\" \"xpdf-page\")
+;;
+\(defalias   'ee-find-{xxxpdfnew}   'ee-find-{xxxpdfold})
+\(defalias      'find-{xxxpdfnew}      'find-{xxxpdfold})
+\(defalias   'ee-code-{xxxpdfnew}   'ee-code-{xxxpdfold})
+\(defalias      'code-{xxxpdfnew}      'code-{xxxpdfold})
+\(defalias 'find-code-{xxxpdfnew} 'find-code-{xxxpdfold})
+"))
+
+
+
+
+;;;   __ _           _                     _  __                              
+;;;  / _(_)_ __   __| |    __  ___ __   __| |/ _|      _ __   __ _  __ _  ___ 
+;;; | |_| | '_ \ / _` |____\ \/ / '_ \ / _` | |_ _____| '_ \ / _` |/ _` |/ _ \
+;;; |  _| | | | | (_| |_____>  <| |_) | (_| |  _|_____| |_) | (_| | (_| |  __/
+;;; |_| |_|_| |_|\__,_|    /_/\_\ .__/ \__,_|_|       | .__/ \__,_|\__, |\___|
+;;;                             |_|                   |_|          |___/      
+;;
+;; �find-xpdf-page� (to ".find-xpdf-page")
+;; (find-pdflikedef-links "xpdf" "c fname")
+;; (find-code-xxxpdf-family "xpdf-page")
+        (code-xxxpdf-family "xpdf-page")
+
+(defvar ee-find-xpdf-page-options '("-fullscreen"))
+(defun  ee-find-xpdf-page (fname &optional page)
+  `("xpdf"
+    ,@ee-find-xpdf-page-options
+    ,fname
+    ,@(if page `(,(format "%d" page)))
+    ))
+
+
+
+;;;   __ _           _                 _  __                              
+;;;  / _(_)_ __   __| |      _ __   __| |/ _|      _ __   __ _  __ _  ___ 
+;;; | |_| | '_ \ / _` |_____| '_ \ / _` | |_ _____| '_ \ / _` |/ _` |/ _ \
+;;; |  _| | | | | (_| |_____| |_) | (_| |  _|_____| |_) | (_| | (_| |  __/
+;;; |_| |_|_| |_|\__,_|     | .__/ \__,_|_|       | .__/ \__,_|\__, |\___|
+;;;                         |_|                   |_|          |___/      
 ;;
-(defalias 'find-pdf-text
-         'find-pdftotext-text)
-(defun    find-pdftotext-text (fname &rest rest)
-  (apply 'find-sh-page (ee-find-pdftotext-text fname) rest))
+;; �find-pdf-page� (to ".find-pdf-page")
+;; (find-code-xxxpdf-alias "pdf-page" "xpdf-page")
+        (code-xxxpdf-alias "pdf-page" "xpdf-page")
+
+
+;;;   __ _           _                 _  __       _            _   
+;;;  / _(_)_ __   __| |      _ __   __| |/ _|     | |_ _____  _| |_ 
+;;; | |_| | '_ \ / _` |_____| '_ \ / _` | |_ _____| __/ _ \ \/ / __|
+;;; |  _| | | | | (_| |_____| |_) | (_| |  _|_____| ||  __/>  <| |_ 
+;;; |_| |_|_| |_|\__,_|     | .__/ \__,_|_|        \__\___/_/\_\\__|
+;;;                         |_|                                     
+;;
+;; �find-pdf-text� (to ".find-pdf-text")
+;; (find-code-xxxpdftext-family "pdf-text")
+        (code-xxxpdftext-family "pdf-text")
+
+(defun ee-find-pdf-text (fname)
+  (format "pdftotext -layout -enc Latin1 '%s' -" (ee-expand fname)))
+
 (defun ee-find-pdftotext-text (fname)
   (format "pdftotext -layout -enc Latin1 '%s' -" (ee-expand fname)))
 
-(code-brfile 'find-pdf-text
-         :local 'brpdftextl
-         :dired 'brpdftextd)
 
-;; find-djvu-text
-;;
-(defalias 'find-djvu-text
-         'find-djvutxt-text)
-(defun    find-djvutxt-text (fname &rest rest)
-  (apply 'find-sh-page (ee-find-djvutxt-text fname) rest))
-(defun ee-find-djvutxt-text (fname)
-  (format "djvutxt '%s'" fname))
 
-(code-brfile 'find-djvu-text
-         :local 'brdjvutextl
-         :dired 'brdjvutextd)
 
 
 
-;; (find-pdflikedef-links "pdf" "c fname")
 
-(defun      code-pdf-text (c fname &optional offset &rest rest)
-  (eval (ee-read      (apply 'ee-code-pdf-text c fname offset rest))))
-(defun find-code-pdf-text (c fname &optional offset &rest rest)
-  (find-estring-elisp (apply 'ee-code-pdf-text c fname offset rest)))
-(defun   ee-code-pdf-text (c fname &optional offset &rest rest)
-  (setq offset (or offset 0))
-  (concat (ee-template0 "\
-;; {(ee-S `(find-code-pdf-text ,c ,fname ,offset ,@rest))}
-\(defun find-{c}text (&optional page &rest rest)
-  (setq ee-page-c      {(ee-pp0 c)})
-  (setq ee-page-fname  {(ee-pp0 fname)})
-  (setq ee-page-offset {(ee-pp0 offset)})
-  (apply 'find-pdf-text {(ee-pp0 fname)} page rest))
-
-;; Set the defaults now
-;; See: (find-pdf-like-intro \"find-code-pdf-text\")
-\(setq ee-page-c      {(ee-pp0 c)})
-\(setq ee-page-fname  {(ee-pp0 fname)})
-\(setq ee-page-offset {(ee-pp0 offset)})
-")))
-
-
-(defun      code-djvu-text (c fname &optional offset &rest rest)
-  (eval (ee-read      (apply 'ee-code-djvu-text c fname offset rest))))
-(defun find-code-djvu-text (c fname &optional offset &rest rest)
-  (find-estring-elisp (apply 'ee-code-djvu-text c fname offset rest)))
-(defun   ee-code-djvu-text (c fname &optional offset &rest rest)
-  (setq offset (or offset 0))
-  (concat (ee-template0 "\
-\(defun find-{c}text (&optional page &rest rest)
-  (setq ee-page-c      {(ee-pp0 c)})
-  (setq ee-page-fname  {(ee-pp0 fname)})
-  (setq ee-page-offset {(ee-pp0 offset)})
-  (find-djvu-text {(ee-pp0 fname)} page))
 
-;; Set the defaults now - see (find-pdf-like-intro \"find-code-pdf-text\")
-\(setq ee-page-c      {(ee-pp0 c)})
-\(setq ee-page-fname  {(ee-pp0 fname)})
-\(setq ee-page-offset {(ee-pp0 offset)})
-")))
+;;;   ___  _   _                                           
+;;;  / _ \| |_| |__   ___ _ __   _ __  _ __ ___   __ _ ___ 
+;;; | | | | __| '_ \ / _ \ '__| | '_ \| '__/ _ \ / _` / __|
+;;; | |_| | |_| | | |  __/ |    | |_) | | | (_) | (_| \__ \
+;;;  \___/ \__|_| |_|\___|_|    | .__/|_|  \___/ \__, |___/
+;;;                             |_|              |___/     
+;;
+;; �find-xdvi-page� (to ".find-xdvi-page")
+;; (find-code-xxxpdf-family "xdvi-page")
+        (code-xxxpdf-family "xdvi-page")
+
+(defvar ee-find-xdvi-page-options '())
+(defun  ee-find-xdvi-page (fname &optional page)
+  `("xdvi"
+    ,@ee-find-xdvi-page-options
+    ,@(if page `(,(format "+%d" page)))
+    ,fname))
+
 
+;; �find-djview-page� (to ".find-djview-page")
+;; (find-code-xxxpdf-family "djview-page")
+        (code-xxxpdf-family "djview-page")
 
+(defun     find-djview-page (fname &optional page &rest rest)
+  (ee-find-djview-cleanup fname)
+  (find-bgprocess (ee-find-djview-page fname page)))
+(defvar ee-find-djview-page-options '())
+(defun  ee-find-djview-page (fname &optional page)
+  `("djview"
+    ,@ee-find-djview-page-options
+    ,@(if page `(,(format "--page=%d" page)))
+    ,fname))
 
-;; Tests:
-;;   (find-code-pdf-text "foo"   "/tmp/foo.pdf" 3)
-;;        (code-pdf-text "foo"   "/tmp/foo.pdf" 3)
-;;              (find-footext)
-;;              (find-footext 2)
+(defun ee-find-djview-cleanup (&optional fname)
+  "A hack: clean up djview's 'recentFiles=' line in the config file if needed.
+When we visit a file \"/path/foo.djvu\" with djview, go to the
+page 234 and close djview, djview stores the filename
+\"/path/foo.djvu\" and the page number 234 in the file
+\"~/.config/DjVuLibre/DjView.conf\", in a line starting with
+\"recentFiles=\" - and the next time we ask djview to open that
+file it will go to the page 234 OVERRIDING THE ARGUMENT
+\"--page=%d\"! This function is currently just a stub, but you
+may want to put here code that cleans up that page information.")
 
 
-;; (find-efunction 'find-page-links)
+;; �find-evince-page� (to ".find-evince-page")
+;; (find-code-xxxpdf-family "evince-page")
+        (code-xxxpdf-family "evince-page")
 
+(defun     find-evince-page (fname &optional page &rest rest)
+  (find-bgprocess (ee-find-evince-page fname page)))
+(defvar ee-find-evince-page-options '())
+(defun  ee-find-evince-page (fname &optional page)
+  `("evince"
+    ,@ee-find-evince-page-options
+    ;; ,@(if page `(,(format "--page-label=%d" page)))
+    ,@(if page `(,(format "--page-index=%d" page)))
+    ,fname))
 
 
+;; �find-gv-page� (to ".find-gv-page")
+;; (find-code-xxxpdf-family "gv-page")
+        (code-xxxpdf-family "gv-page")
+
+(defvar ee-find-gv-page-options '())
+(defun  ee-find-gv-page (fname &optional page)
+  `("gv"
+    ,@ee-find-gv-page-options
+    ,@(if page `(,(format "--page=%d" page)))
+    ,fname))
 
 
-;; Test:
-;; (find-code-xpdf "{c}" "{fname}" :key "{foo}" :key "{bar}")
-;; (find-xpdfpage "~/tmp/discussao_proifesgroups.pdf")
+;; �find-djvutxt-text� (to ".find-djvutxt-text")
+;; (find-code-xxxpdftext-family "djvutxt-text")
+        (code-xxxpdftext-family "djvutxt-text")
 
-;; Garbage?
-;; (defun ee-pspage (fname &optional page gvargs)
-;;   `("gv" ,@gvargs ,@(if page (list (format "--page=%d" page))) ,fname))
-;; (defun ee-xpdfpage (fname &optional page xpdfargs)
-;;   `("xpdf" ,@xpdfargs ,fname ,(format "%s" (or page 1))))
-;; (defun ee-djvupage (fname &optional page)
-;;   `("djview" ,@(if page (list (format "--page=%d" page))) ,fname))
+(defun ee-find-djvutxt-text (fname)
+  (format "djvutxt '%s'" fname))
 
 
 
+;;;     _    _ _                     
+;;;    / \  | (_) __ _ ___  ___  ___ 
+;;;   / _ \ | | |/ _` / __|/ _ \/ __|
+;;;  / ___ \| | | (_| \__ \  __/\__ \
+;;; /_/   \_\_|_|\__,_|___/\___||___/
+;;;                                  
+;; �aliases� (to ".aliases")
+;; For compatibility the with previous versions - that were a mess.
+;; At some point these aliases will all be commented out, and if you
+;; depend on them what you I suggest you to do is:
+;;   1) copy them (uncommented) to your .emacs
+;;   2) rename your calls to aliases functions to standard functions
+;;   3) comment one of your calls to `code-xxxpdf-alias'; start emacs
+;;      again to check if your .emacs really didn't depend on these
+;;      functions; comment another call to `code-xxxpdf-alias'; etc,
+;;      etc; wash, rinse, repeat.
+
+        (code-xxxpdf-alias "djvupage"   "djview-page")
+        (code-xxxpdf-alias "djvu-text"  "djvutxt-text")
+        (code-xxxpdf-alias "evincepage" "evince-page")
+        (code-xxxpdf-alias "pspage"     "gv-page")
+        (code-xxxpdf-alias "xdvipage"   "xdvi-page")
+        (code-xxxpdf-alias "xpdfpage"   "xpdf-page")
+        (code-xxxpdf-alias "xpdf"       "xpdf-page")
+        (code-xxxpdf-alias "xdvi"       "xdvi-page")
+        (code-xxxpdf-alias "dvi"        "xdvi-page")
+        (code-xxxpdf-alias "djvu"       "djview-page")
+        (code-xxxpdf-alias "pdf"        "xpdf-page")
+        (code-xxxpdf-alias "evince"     "evince-page")
+
+;; (find-code-xxxpdf-alias "djvu-text"  "djvutxt-text")
+;; (find-code-xxxpdf-alias "djvupage"   "djview-page")
+;; (find-code-xxxpdf-alias "evincepage" "evince-page")
+;; (find-code-xxxpdf-alias "pspage"     "gv-page")
+;; (find-code-xxxpdf-alias "xdvipage"   "xdvi-page")
+;; (find-code-xxxpdf-alias "xpdfpage"   "xpdf-page")
+;; (find-code-xxxpdf-alias "xpdf"       "xpdf-page")
+;; (find-code-xxxpdf-alias "xdvi"       "xdvi-page")
+;; (find-code-xxxpdf-alias "dvi"        "xdvi-page")
+;; (find-code-xxxpdf-alias "djvu"       "djview-page")
+;; (find-code-xxxpdf-alias "pdf"        "xpdf-page")
+;; (find-code-xxxpdf-alias "evince"     "evince-page")
+
+
+;; �code-brxxxs� (to ".code-brxxxs")
+
+(code-brfile 'find-pdf-text    :local 'brpdftextl  :dired 'brpdftextd)
+(code-brfile 'find-djvu-text   :local 'brdjvutextl :dired 'brdjvutextd)
+(code-brfile 'find-xpdf-page   :local 'brxpdfl     :dired 'brxpdfd)
+(code-brfile 'find-evince-page :local 'brevincel   :dired 'brevinced)
+(code-brfile 'find-xdvi-page   :local 'brxdvil     :dired 'brxdvid)
+(code-brfile 'find-djvu-page   :local 'brdjvul     :dired 'brdjvud)
 
 
 
@@ -435,7 +480,5 @@
 
 ;; Local Variables:
 ;; coding:            raw-text-unix
-;; ee-anchor-format:  "�%s�"
-;; ee-anchor-format:  "defun %s "
 ;; no-byte-compile:   t
 ;; End:
diff --git a/eev-plinks.el b/eev-plinks.el
index 29bac62..c037eb1 100644
--- a/eev-plinks.el
+++ b/eev-plinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2018jun05
+;; Version:    2019jan25
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-plinks.el>
@@ -61,8 +61,8 @@
 ;; unchanged, (3) they're short and clean.
 
 ;; Sorry, no docstrings yet... some tests:
-;; (find-callprocess0  '("lua51" "-e" "print(1+2)"))
-;; (find-callprocess00 '("lua51" "-e" "print(1+2)"))
+;; (find-callprocess0  '("lua5.1" "-e" "print(1+2)"))
+;; (find-callprocess00 '("lua5.1" "-e" "print(1+2)"))
 
 ;; Suffixes:
 ;; "-ne" means "(do) not ee-expand"
diff --git a/eev-rcirc.el b/eev-rcirc.el
index 5010064..e0d31a3 100644
--- a/eev-rcirc.el
+++ b/eev-rcirc.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2018may28
+;; Version:    2019jan29
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-rcirc.el>
@@ -188,6 +188,11 @@ the right - \"#foo\" means channel \"#foo\", \"nick\" 
means query
 (defun ee-irc-channel-around-point ()
   (ee-stuff-around-point "#A-Za-z0-9_"))
 
+(defun ee-buffer-freenode-channel-name ()
+  (replace-regexp-in-string
+   "^\\(.*\\).irc\\.freenode\\.net" "\\1"
+   (buffer-name)))
+
 ;; High-level
 ;;
 (defvar ee-freenode-server "irc.freenode.net")
@@ -200,37 +205,63 @@ the right - \"#foo\" means channel \"#foo\", \"nick\" 
means query
          ee-freenode-ichannels 
          ee-freenode-achannels channel pos-spec-list))
 
+(defun find-freenode-2a (channel)
+  (find-2a nil '(find-freenode channel)))
+
 (defun find-freenode-3a (channel)
   (find-3a nil '(find-freenode) '(find-freenode channel)))
 
-(defun ee-find-freenode-links (&optional channel)
-  (setq channel (or channel (replace-regexp-in-string
-                            "^\\(.*\\).irc\\.freenode\\.net" "\\1"
-                            (buffer-name))))
-  `((setq ee-freenode-ichannels ,ee-freenode-ichannels)
-    (setq ee-freenode-achannels ,ee-freenode-achannels)
-    ""
-    (find-freenode ,channel)
-    (find-freenode-3a ,channel)
-    (defun eejump-9 () (find-freenode ,channel))
-    (defun eejump-99 () (find-freenode-3a ,channel))
-    ))
-
-(defun find-freenode-links (&optional channel &rest pos-spec-list)
-"Visit a temporary buffer containing hyperlinks for connecting to freenode."
-  (interactive (list (ee-irc-channel-around-point)))
+;; (defun ee-find-freenode-links (&optional c channel)
+;;   (setq c (or c "{c}"))
+;;   (setq channel (or channel (ee-buffer-freenode-channel-name))
+;;   `((setq ee-freenode-ichannels ,ee-freenode-ichannels)
+;;     (setq ee-freenode-achannels ,ee-freenode-achannels)
+;;     ""
+;;     (find-freenode ,channel)
+;;     (find-freenode-3a ,channel)
+;;     (defun eejump-9 () (find-freenode ,channel))
+;;     (defun eejump-99 () (find-freenode-3a ,channel))
+;;     ))
+;; 
+;; (defun find-freenode-links (&optional channel &rest pos-spec-list)
+;; "Visit a temporary buffer containing hyperlinks for connecting to freenode."
+;;   (interactive (list (ee-irc-channel-around-point)))
+;;   (setq channel (or channel "{channel}"))
+;;   (apply 'find-elinks
+;;    `((find-freenode-links ,channel)
+;;      ;; Convention: the first sexp always regenerates the buffer.
+;;      (find-efunction 'find-freenode-links)
+;;      ""
+;;      ,@(ee-find-freenode-links channel)
+;;      )
+;;    pos-spec-list))
+
+;; New, 2019jan28
+(defun find-freenode-links (&optional c channel &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 ,channel)
+   `((find-freenode-links ,c ,channel)
+     (find-freenode-links "{e}" "{#eev}")
+     (find-freenode-links "e" "#eev")
      ;; Convention: the first sexp always regenerates the buffer.
      (find-efunction 'find-freenode-links)
+     (find-efunction 'find-freenode-2a)
      ""
-     ,@(ee-find-freenode-links channel)
+     ,(ee-template0 "\
+(setq ee-freenode-ichannels {(ee-pp0 ee-freenode-ichannels)})
+(setq ee-freenode-achannels {(ee-pp0 ee-freenode-achannels)})
+(setq ee-freenode-achannels nil)
+(defun {c}2 () (interactive) (find-freenode-2a \"{channel}\"))
+(defun {c}3 () (interactive) (find-freenode-3a \"{channel}\"))
+")
      )
    pos-spec-list))
 
 ;; Tests: (find-freenode-links)
-;;        (find-freenode-links "#eev")
+;;        (find-freenode-links "e" "#eev")
 
 (provide 'eev-rcirc)
 



reply via email to

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