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

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

[elpa] externals/eev 443bfd1: Rewrote the big cond behind `find-here-lin


From: ELPA Syncer
Subject: [elpa] externals/eev 443bfd1: Rewrote the big cond behind `find-here-links' as a DSL.
Date: Sun, 31 Oct 2021 03:57:19 -0400 (EDT)

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

    Rewrote the big cond behind `find-here-links' as a DSL.
---
 ChangeLog         |  14 ++
 VERSION           |   4 +-
 eev-audiovideo.el |  46 +++++-
 eev-hlinks.el     | 414 ++++++++++++++++++++++++++++--------------------------
 4 files changed, 278 insertions(+), 200 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 391a108..95b7c61 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2021-10-31  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-hlinks.el (ee-find-here-links): rewritten.
+       (find-here-links): cosmetic changes.
+       (find-here-links-test): commented out.
+       (ee-fhl-main-program, ee-fhl-sexp1, ee-fhl-sexp2): new variables.
+       (ee-fhl-run, ee-fhl-eval, ee-fhl-:eval, ee-fhl-:if, ee-fhl-:or):
+       new functions.
+
+       * eev-audiovideo.el (ee-vlc-program, ee-vlc-video-options): new
+       variables.
+       (find-vlc-video, ee-find-vlc-video, code-vlc-video)
+       (find-code-vlc-video, ee-code-vlc-video): new functions.
+
 2021-10-27  Eduardo Ochs  <eduardoochs@gmail.com>
 
        * eev-tlinks.el (ee-psnevideo-url-youtube): small changes.
diff --git a/VERSION b/VERSION
index c63405e..a6392fd 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Wed Oct 27 06:52:34 GMT 2021
-Wed Oct 27 03:52:34 -03 2021
+Sun Oct 31 07:23:08 GMT 2021
+Sun Oct 31 04:23:08 -03 2021
diff --git a/eev-audiovideo.el b/eev-audiovideo.el
index 3a226ac..494e19d 100644
--- a/eev-audiovideo.el
+++ b/eev-audiovideo.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20211016
+;; Version:    20211031
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-audiovideo.el>
@@ -100,6 +100,7 @@
 ;; «.find-termplayer»          (to "find-termplayer")
 ;; «.find-mpv-video»           (to "find-mpv-video")
 ;; «.find-mpv-audio»           (to "find-mpv-audio")
+;; «.find-vlc-video»           (to "find-vlc-video")
 ;; «.code-brxxxs»              (to "code-brxxxs")
 ;; «.aliases»                  (to "aliases")
 ;; «.video-tutorials»          (to "video-tutorials")
@@ -506,7 +507,7 @@ See: (find-audiovideo-intro \"`eev-avadj-mode'\")"
 (defvar ee-mpv-audio-options '("--vid=no"))
 (defun ee-find-mpv-audio (fname &optional pos &rest rest)
   `(,@ee-mpv-term-options
-    "mpv"
+    ,ee-mpv-program
     ,fname
     ;; ,@(if pos `("--start" ,(ee-secs-to-mm:ss pos)))
     ,@(if pos (list (format "--start=%s" (ee-secs-to-mm:ss pos))))
@@ -535,6 +536,47 @@ See: (find-audiovideo-intro \"`eev-avadj-mode'\")"
 
 
 
+;;;        _                _     _            
+;;; __   _| | ___    __   _(_) __| | ___  ___  
+;;; \ \ / / |/ __|___\ \ / / |/ _` |/ _ \/ _ \ 
+;;;  \ V /| | (_|_____\ V /| | (_| |  __/ (_) |
+;;;   \_/ |_|\___|     \_/ |_|\__,_|\___|\___/ 
+;;;                                            
+;; «find-vlc-video»  (to ".find-vlc-video")
+
+(defvar ee-vlc-program "vlc")
+(defvar ee-vlc-video-options '("--fullscreen" "--no-video-title-show"))
+
+(defun    find-vlc-video (fname &optional pos &rest rest)
+  "Open FNAME with vlc, with a GUI (in fullscreen mode, for video files)."
+  (interactive "sFile name: ")
+  (find-bgprocess (ee-find-vlc-video fname pos)))
+(defun ee-find-vlc-video (fname &optional pos &rest rest)
+  `(,ee-vlc-program
+    ,@ee-vlc-video-options
+    ,@(if pos (list "--start-time" (format "%s" (ee-time-to-seconds pos))))
+    ,fname
+    ))
+
+(defun      code-vlc-video (c fname)
+  (eval (ee-read      (ee-code-vlc-video c fname))))
+(defun find-code-vlc-video (c fname)
+  (find-estring-elisp (ee-code-vlc-video c fname)))
+(defun   ee-code-vlc-video (c fname)
+  (ee-template0 "\
+    ;; {(ee-S `(find-code-vlc-video ,c ,fname))} 
+    ;;
+    (defun find-{c} (&optional time &rest rest)
+      (interactive (list (ee-time-around-point)))
+      (setq ee-audiovideo-last 'find-{c})
+      (if (eq time t)
+        \"Just setting the default video\"
+        (find-vlc-video {(ee-S fname)} time)))
+  "))
+
+
+
+
 ;;;                _            _                               
 ;;;   ___ ___   __| | ___      | |__  _ ____  ____  ____  _____ 
 ;;;  / __/ _ \ / _` |/ _ \_____| '_ \| '__\ \/ /\ \/ /\ \/ / __|
diff --git a/eev-hlinks.el b/eev-hlinks.el
index 2183ca1..a017736 100644
--- a/eev-hlinks.el
+++ b/eev-hlinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20211008
+;; Version:    20211031
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-hlinks.el>
@@ -59,27 +59,27 @@
 ;;   (ee-man-bufferp)
 ;;   (ee-find-man-links)
 ;;
-;; They all have the same stem - "man" - but different prefixes and
-;; suffixes.
-
+;; Their names are of the form `ee-*-bufferp' and `ee-find-*-links'.
+;;
 ;; TODO: Some of the `ee-find-*-links' functions are defined in other
 ;; files. Which ones? Give examples!
 ;;
 ;;   (find-eapropos "ee-find-.*-links")
-
+;;
 ;; The main workhorse function in this file is `ee-find-here-links',
-;; that _currently_ uses a big `cond' to run these test functions in a
-;; certain order until one of them returns true, and then it returns
-;; the result of the links function associated to that test (and to
-;; that kind of "here"). But I am trying to rewrite it...
+;; Its current version runs the program in `ee-fhl-main-program' using
+;; the function `ee-fhl-run' to interpret it.
 
 
 
-;; «.ee-types-of-here»         (to "ee-types-of-here")
+;; «.ee-fhl-main-program»      (to "ee-fhl-main-program")
+;; «.ee-fhl-run»               (to "ee-fhl-run")
+;; «.ee-find-here-links»       (to "ee-find-here-links")
+;; «.find-here-links»          (to "find-here-links")
+;;
+;; «.low-level-functions»      (to "low-level-functions")
 ;; «.tests-and-links»          (to "tests-and-links")
-;; «.ee-which-here-tests»      (to "ee-which-here-tests")
 ;;
-;; «.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")
 
@@ -87,129 +87,208 @@
 
 
 
+;;;                  _                                                   
+;;;  _ __ ___   __ _(_)_ __    _ __  _ __ ___   __ _ _ __ __ _ _ __ ___  
+;;; | '_ ` _ \ / _` | | '_ \  | '_ \| '__/ _ \ / _` | '__/ _` | '_ ` _ \ 
+;;; | | | | | | (_| | | | | | | |_) | | | (_) | (_| | | | (_| | | | | | |
+;;; |_| |_| |_|\__,_|_|_| |_| | .__/|_|  \___/ \__, |_|  \__,_|_| |_| |_|
+;;;                           |_|              |___/                     
+;;
+;; «ee-fhl-main-program»  (to ".ee-fhl-main-program")
+;; In the past this "main program" was a big cond, that was easy to
+;; understand but hard to debug... in oct/2021 I replaced the big cond
+;; by a program in a domain-specific language that should be easy to
+;; understand, easy to extend, and easy to debug - the one below.
+;;
+;; Try: (find-eppp ee-fhl-main-program)
+
+(defvar ee-fhl-main-program
+ '(:or
+   ;; By major mode:
+   (:if (ee-info-bufferp)      (ee-find-info-links))
+   (:if (ee-man-bufferp)       (ee-find-man-links))
+   (:if (ee-grep-bufferp)      (ee-find-grep-links))
+   (:if (ee-w3m-bufferp)       (ee-find-w3m-links))
+   (:if (ee-dired-bufferp)     (ee-find-file-links))
+   (:if (ee-wdired-bufferp)    (ee-find-file-links))
+   (:if (ee-custom-bufferp)    (ee-find-custom-links))
+   (:if (ee-epackages-bufferp) (ee-find-epackages-links))
+   ;;
+   ;; By buffer name:
+   (:if (ee-intro-bufferp)     (ee-find-intro-links))
+   (:if (ee-freenode-bufferp)  (ee-find-freenode-links))
+   (:if (ee-ecolors-bufferp)   (ee-find-ecolors-links))
+   (:if (ee-efaces-bufferp)    (ee-find-efaces-links))
+   (:if (ee-pdftext-bufferp)   (ee-find-pdftext-links))
+   ;;
+   ;; By buffer name, when it is "*Help*":
+   (:if (ee-efunctiondescr-bufferp) (ee-find-efunctiondescr-links))
+   (:if (ee-efacedescr-bufferp)     (ee-find-efacedescr-links))
+   (:if (ee-evardescr-bufferp)      (ee-find-evardescr-links))
+   (:if (ee-epackage-bufferp)       (ee-find-epackage-links))
+   ;;
+   ;; Other cases:
+   (:if (ee-file-bufferp)        (ee-find-file-links))
+   (:if t                        '("" "Not implemented!" "See:"
+                                  (find-efunction 'ee-find-here-links)))
+   )
+ "See `ee-find-here-links'.")
+
+
+;;;  ____  ____  _     
+;;; |  _ \/ ___|| |    
+;;; | | | \___ \| |    
+;;; | |_| |___) | |___ 
+;;; |____/|____/|_____|
+;;;                    
+;; «ee-fhl-run»  (to ".ee-fhl-run")
+;; Here we define the interpreter for the DSL that is used in
+;; `ee-fhl-main-program'.
+
+(defvar ee-fhl-sexp1 nil
+  "When `ee-fhl-run' finds an (ee-fhl-:if SEXP1 SEXP2)
+   that succeeds it stores the SEXP1 in this variable.")
+
+(defvar ee-fhl-sexp2 nil
+  "When `ee-fhl-run' finds an (ee-fhl-:if SEXP1 SEXP2)
+   that succeeds it stores the SEXP2 in this variable.")
+
+(defun ee-fhl-run (fhl-program)
+  "See `ee-fhl-main-program'."
+  (setq ee-fhl-if-sexp1 nil)
+  (setq ee-fhl-if-sexp2 nil)
+  (ee-fhl-eval fhl-program))
+
+;; Tests:
+;; (ee-fhl-eval  '(:eval (+ 20 3)))
+;; (ee-fhl-eval  '(:if (< 1 2) (list 3 4)))
+;; (ee-fhl-:eval '(+ 1 2) '(+ 3 4))
+;; (ee-fhl-:if   '(< 1 2) '(list 3 4))
+;; (ee-fhl-:if   '(> 1 2) '(list 3 4))
+;; (ee-fhl-:or   '(:eval nil) '(:eval nil) '(:eval 42) '(:eval 99))
+;;
+(defun ee-fhl-eval (fhl-sexp)
+  (let* ((f (ee-intern "ee-fhl-%s" (car fhl-sexp)))
+        (rest (cdr fhl-sexp)))
+    (apply f rest)))
+
+(defun ee-fhl-:eval (&rest sexps)
+  (eval (cons 'progn sexps)))
+
+(defun ee-fhl-:if (sexp1 sexp2)
+  (when (eval sexp1)
+    (setq ee-fhl-sexp1 sexp1)
+    (setq ee-fhl-sexp2 sexp2)
+    sexp2))
+
+(defun ee-fhl-:or (&rest fhl-sexps)
+  (cl-loop for fhl-sexp in fhl-sexps
+          for fhl-result = (ee-fhl-eval fhl-sexp)
+          until fhl-result
+           finally return fhl-result))
+
+;; «ee-find-here-links»  (to ".ee-find-here-links")
+;; Try:           (ee-find-here-links)
+;;   (find-elinks (ee-find-here-links))
+;;   ee-fhl-sexp1
+;;   ee-fhl-sexp2
+
+(defun ee-find-here-links ()
+  "Run all the `(:if SEXP1 SEXP2)'s in `ee-fhl-main-program' until
+one succeeds. When the successful `(:if ___ ___)' is found store
+its SEXP1 in `ee-fhl-sexp1', its SEXP2 in `ee-fhl-sexp2', and
+return the result of (eval ee-fhl-sexp2), slightly preprocessed."
+  (ee-fhl-run ee-fhl-main-program)
+  (cons "" (eval ee-fhl-sexp2)))
+
+
+
+;; Old version:
+;; (defun ee-find-here-links ()
+;;   (cond ;; by major mode
+;;         ((ee-info-bufferp)      (cons "" (ee-find-info-links)))      ; M-h 
M-i
+;;         ((ee-man-bufferp)       (cons "" (ee-find-man-links)))       ; ?
+;;         ((ee-grep-bufferp)      (cons "" (ee-find-grep-links)))      ; M-h 
M-g
+;;         ((ee-w3m-bufferp)       (cons "" (ee-find-w3m-links)))       ; M-h 
M-w
+;;         ;; ((ee-dired-bufferp)  (cons "" (ee-find-dired-links)))     ; ?
+;;         ((ee-dired-bufferp)     (cons "" (ee-find-file-links)))      ; M-h f
+;;         ((ee-wdired-bufferp)    (cons "" (ee-find-file-links)))      ; M-h f
+;;         ((ee-custom-bufferp)    (cons "" (ee-find-custom-links)))    ; ?
+;;         ((ee-epackages-bufferp) (cons "" (ee-find-epackages-links))) ; ?
+;;         ;; by buffer name
+;;         ((ee-intro-bufferp)     (cons "" (ee-find-intro-links)))     ; M-h 
M-i
+;;         ((ee-freenode-bufferp)  (cons "" (ee-find-freenode-links)))  ; ?
+;;         ((ee-ecolors-bufferp)   (cons "" (ee-find-ecolors-links)))   ; ?
+;;         ((ee-efaces-bufferp)    (cons "" (ee-find-efaces-links)))    ; ?
+;;         ((ee-pdftext-bufferp)   (cons "" (ee-find-pdftext-links)))   ; ?
+;;         ;; by buffer name, when it is "*Help*"
+;;         ((ee-efunctiondescr-bufferp) (cons "" 
(ee-find-efunctiondescr-links)))
+;;         ((ee-efacedescr-bufferp)     (cons "" (ee-find-efacedescr-links)))
+;;         ((ee-evardescr-bufferp)      (cons "" (ee-find-evardescr-links)))
+;;         ((ee-epackage-bufferp)       (cons "" (ee-find-epackage-links)))
+;;         ;; other cases
+;;         ((ee-file-bufferp)      (cons "" (ee-find-file-links)))    ; M-h f
+;;         (t (list "" "Not implemented!" "See:"
+;;                  '(find-efunction 'ee-find-here-links)))
+;;         ))
+
+
+
+
 ;;;   __ _           _       _                         _ _       _        
 ;;;  / _(_)_ __   __| |     | |__   ___ _ __ ___      | (_)_ __ | | _____ 
 ;;; | |_| | '_ \ / _` |_____| '_ \ / _ \ '__/ _ \_____| | | '_ \| |/ / __|
 ;;; |  _| | | | | (_| |_____| | | |  __/ | |  __/_____| | | | | |   <\__ \
 ;;; |_| |_|_| |_|\__,_|     |_| |_|\___|_|  \___|     |_|_|_| |_|_|\_\___/
 ;;;                                                                       
-;; «find-here-links» (to ".find-here-links")
+;; «find-here-links»  (to ".find-here-links")
+;; Skel: (find-find-links-links-new "here" "" "")
+;; Key binding:
+;;     (find-eev "eev-mode.el" "eev-mode-map-set" "M-h" "M-h" 
"find-here-links")
 ;; See: (find-eev-quick-intro "`M-h M-h'")
-
-;; (find-efunction 'find-grep-links)
-;; (find-efunction 'find-einfo-links)
-;; (find-efunction 'find-file-links)
-;; (find-find-links-links "\\M-h" "here" "")
-;; (find-efunction 'find-ecolors)
-
-;; Moved the key binding to:
-;;   (find-eevfile "eev-mode.el" "\\M-h\\M-h")
-;; (define-key eev-mode-map "\M-h\M-h" 'find-here-links)
-
-;; TODO: support cases like these:
-;;   (find-efunctiondescr 'condition-case)
-
-
-
-
-
-
-;;;  _                                      __       _                   
-;;; | |_ _   _ _ __   ___  ___        ___  / _|     | |__   ___ _ __ ___ 
-;;; | __| | | | '_ \ / _ \/ __|_____ / _ \| |_ _____| '_ \ / _ \ '__/ _ \
-;;; | |_| |_| | |_) |  __/\__ \_____| (_) |  _|_____| | | |  __/ | |  __/
-;;;  \__|\__, | .__/ \___||___/      \___/|_|       |_| |_|\___|_|  \___|
-;;;      |___/|_|                                                        
+;;      (find-here-links-intro)
+;;      (find-links-conv-intro "3. Classification")
+;;      (find-links-conv-intro "3. Classification" "that violate")
+;; Tests: (find-here-links)
+;;        (progn (find-enode "Screen") (find-here-links))
 ;;
-;; «ee-types-of-here»  (to ".ee-types-of-here")
-;; New code. Not working yet. Commented out.
-;; Ugliness: `ee-add-type-of-here' runs `sort' too often.
-;; See: (find-eev "eev-code.el" "alists")
-;;      (find-elnode "Sequence Functions" "Function: sort ")
-
-'
-(progn
-
-(setq ee-types-of-here nil)
-
-(defun ee-sort-types-of-here ()
-  (setq ee-types-of-here
-       (sort ee-types-of-here
-             (lambda (a b) (string< (car a) (car b))))))
-
-(defun ee-add-type-of-here (priority testcode linkscode)
-  (let* ((label   (format "%s %s" priority (ee-S testcode))))
-    (setq ee-types-of-here
-         (ee-aset ee-types-of-here label (list testcode linkscode)))))
-
-(defun ee-add-toh-major (testcode linkscode)
-  (ee-add-type-of-here "20 major" testcode linkscode))
-
-(defun ee-add-toh-bname (testcode linkscode)
-  (ee-add-type-of-here "40 bname" testcode linkscode))
-
-(defun ee-add-toh-bhelp (testcode linkscode)
-  (ee-add-type-of-here "60 help " testcode linkscode))
-
-(defun ee-add-toh-other (testcode linkscode)
-  (ee-add-type-of-here "80 other" testcode linkscode))
-
-;; By major mode:
-(ee-add-toh-major '(ee-info-bufferp)           '(ee-find-info-links))
-(ee-add-toh-major '(ee-man-bufferp)            '(ee-find-man-links))
-(ee-add-toh-major '(ee-grep-bufferp)           '(ee-find-grep-links))
-(ee-add-toh-major '(ee-w3m-bufferp)            '(ee-find-w3m-links))
-(ee-add-toh-major '(ee-dired-bufferp)          '(ee-find-file-links))
-(ee-add-toh-major '(ee-wdired-bufferp)         '(ee-find-file-links))
-(ee-add-toh-major '(ee-custom-bufferp)         '(ee-find-custom-links))
-(ee-add-toh-major '(ee-epackages-bufferp)      '(ee-find-epackages-links))
-
-;; By buffer name:
-(ee-add-toh-bname '(ee-intro-bufferp)          '(ee-find-intro-links))
-(ee-add-toh-bname '(ee-ecolors-bufferp)        '(ee-find-ecolors-links))
-(ee-add-toh-bname '(ee-efaces-bufferp)         '(ee-find-efaces-links))
-;; (ee-add-toh-bname '(ee-freenode-bufferp)    '(ee-find-freenode-links))
-;; (ee-add-toh-bname '(ee-pdftext-bufferp)     '(ee-find-pdftext-links))
-
-;; When the buffer name is "*Help*" we parse the first line: 
-(ee-add-toh-bhelp '(ee-efunctiondescr-bufferp) '(ee-find-efunctiondescr-links))
-(ee-add-toh-bhelp '(ee-efacedescr-bufferp)     '(ee-find-efacedescr-links))
-(ee-add-toh-bhelp '(ee-evardescr-bufferp)      '(ee-find-evardescr-links))
-(ee-add-toh-bhelp '(ee-epackage-bufferp)       '(ee-find-epackage-links))
-
-;; Other cases:
-(ee-add-toh-other '(ee-file-bufferp)           '(ee-find-file-links))
-
-(ee-sort-types-of-here)
-
-;; Inspect the data structures:
-;; (find-epp ee-types-of-here)
-;; (find-estring (mapconcat 'car ee-types-of-here "\n"))
-
-
-)
+(defun find-here-links (&rest pos-spec-list)
+"Visit a temporary buffer containing hyperlinks pointing to \"here\".
+See: (find-here-links-intro)"
+  (interactive)
+  (apply
+   'find-elinks
+   `(;; The first line of a find-here-links buffer DOES NOT
+     ;; regenerates the buffer - instead the first lines point to
+     ;; help pages.
+     ,@(ee-find-here-links0)
+     ,@(ee-find-here-links)
+     )
+   pos-spec-list))
 
+(defun ee-find-here-links0 ()
+  "The header used by `find-here-links'."
+  `(,(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'")
+    ))
 
 
 
 
 
-;;;  _            _                         _   _ _       _        
-;;; | |_ ___  ___| |_ ___    __ _ _ __   __| | | (_)_ __ | | _____ 
-;;; | __/ _ \/ __| __/ __|  / _` | '_ \ / _` | | | | '_ \| |/ / __|
-;;; | ||  __/\__ \ |_\__ \ | (_| | | | | (_| | | | | | | |   <\__ \
-;;;  \__\___||___/\__|___/  \__,_|_| |_|\__,_| |_|_|_| |_|_|\_\___/
-;;;                                                                
-;; «tests-and-links»  (to ".tests-and-links")
-;; For each kind of here we have:
-;;   a) a test function that tests if the current buffer is of that kind,
-;;   b) a function that return hyperlinks for that kind of here.
-;;
-;; Idea: rename them, and use names like:
-;;   ee-here-info-p
-;;   ee-here-info-links
 
 
+;;;  _                       _                _ 
+;;; | |    _____      __    | | _____   _____| |
+;;; | |   / _ \ \ /\ / /____| |/ _ \ \ / / _ \ |
+;;; | |__| (_) \ V  V /_____| |  __/\ V /  __/ |
+;;; |_____\___/ \_/\_/      |_|\___| \_/ \___|_|
+;;;                                             
+;; «low-level-functions»  (to ".low-level-functions")
+;; Low lever functions used by the functions of the form
+;; `ee-*-bufferp' and `ee-find-*-links' defined in the next section.
 
 ;; Some tools for detecting which kind of buffer we're in.
 (defun ee-buffer-re (re)
@@ -227,6 +306,20 @@
 (defun ee-buffer-help (re n) (intern (or (ee-buffer-help-re0 re n) "nil")))
 
 
+;;;  _____         _                         _   _ _       _        
+;;; |_   _|__  ___| |_ ___    __ _ _ __   __| | | (_)_ __ | | _____ 
+;;;   | |/ _ \/ __| __/ __|  / _` | '_ \ / _` | | | | '_ \| |/ / __|
+;;;   | |  __/\__ \ |_\__ \ | (_| | | | | (_| | | | | | | |   <\__ \
+;;;   |_|\___||___/\__|___/  \__,_|_| |_|\__,_| |_|_|_| |_|_|\_\___/
+;;;                                                                 
+;; «tests-and-links»  (to ".tests-and-links")
+;; For each kind of "here" we have:
+;;   a) a test function that tests if the current buffer is of that kind,
+;;   b) a function that return hyperlinks for that kind of here.
+;;
+;; These functions have names like `ee-*-bufferp' and
+;; `ee-find-*-links', and they are defined below. Note that they are
+;; used in the `ee-fhl-main-program', defined at the top of this file.
 
 ;; By major mode
 (defun ee-grep-bufferp      () (eq major-mode 'grep-mode))
@@ -306,80 +399,14 @@
 (defun ee-find-pdftext-links   () (ee-pdflike-page-links))
 
 
-
-;; to to:
-;; ee-find-w3m-links
-;; ee-find-ecolor-links
-;; 
-
-(defun ee-find-here-links ()
-  (cond ;; by major mode
-       ((ee-info-bufferp)      (cons "" (ee-find-info-links)))      ; M-h M-i
-       ((ee-man-bufferp)       (cons "" (ee-find-man-links)))       ; ?
-       ((ee-grep-bufferp)      (cons "" (ee-find-grep-links)))      ; M-h M-g
-       ((ee-w3m-bufferp)       (cons "" (ee-find-w3m-links)))       ; M-h M-w
-       ;; ((ee-dired-bufferp)  (cons "" (ee-find-dired-links)))     ; ?
-       ((ee-dired-bufferp)     (cons "" (ee-find-file-links)))      ; M-h f
-       ((ee-wdired-bufferp)    (cons "" (ee-find-file-links)))      ; M-h f
-       ((ee-custom-bufferp)    (cons "" (ee-find-custom-links)))    ; ?
-       ((ee-epackages-bufferp) (cons "" (ee-find-epackages-links))) ; ?
-       ;; by buffer name
-       ((ee-intro-bufferp)     (cons "" (ee-find-intro-links)))     ; M-h M-i
-       ((ee-freenode-bufferp)  (cons "" (ee-find-freenode-links)))  ; ?
-       ((ee-ecolors-bufferp)   (cons "" (ee-find-ecolors-links)))   ; ?
-       ((ee-efaces-bufferp)    (cons "" (ee-find-efaces-links)))    ; ?
-       ((ee-pdftext-bufferp)   (cons "" (ee-find-pdftext-links)))   ; ?
-       ;; by buffer name, when it is "*Help*"
-       ((ee-efunctiondescr-bufferp) (cons "" (ee-find-efunctiondescr-links)))
-       ((ee-efacedescr-bufferp)     (cons "" (ee-find-efacedescr-links)))
-       ((ee-evardescr-bufferp)      (cons "" (ee-find-evardescr-links)))
-       ((ee-epackage-bufferp)       (cons "" (ee-find-epackage-links)))
-       ;; other cases
-       ((ee-file-bufferp)      (cons "" (ee-find-file-links)))    ; M-h f
-       (t (list "" "Not implemented!" "See:"
-                '(find-efunction 'ee-find-here-links)))
-       ))
-
-(defun find-here-links-test (sexp)
-"See: (find-links-intro \"`find-here-links'\")"
-  (find-wset "13o_2o_o" sexp '(find-here-links)))
-
-;; (find-man "1 cat")
-;; (progn (find-man "1 cat") (buffer-name))
-;; (find-eevfile "eev-rcirc.el")
-
-(defun ee-find-here-links0 ()
-  `(,(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" "")
+;; For debugging.
+;; TODO: remember how to use this.
 ;;
-(defun find-here-links (&rest pos-spec-list)
-"Visit a temporary buffer containing hyperlinks pointing to here."
-  (interactive)
-  (apply 'find-elinks
-   `(;; The first line of a find-here-links buffer DOES NOT
-     ;; regenerates the buffer - instead the first lines point to
-     ;; help pages.
-     ,@(ee-find-here-links0)
-     ,@(ee-find-here-links)
-     )
-   pos-spec-list))
+;; (defun find-here-links-test (sexp)
+;; "See: (find-links-intro \"`find-here-links'\")"
+;;   (find-wset "13o_2o_o" sexp '(find-here-links)))
+
 
-;; Test: (find-here-links)
-;; (progn (find-enode "Screen") (find-here-links))
 
 
 
@@ -432,11 +459,6 @@ See: (find-here-links-intro \"5. `find-here-links-1'\")"
 
 
 
-
-
-
-
-
 (provide 'eev-hlinks)
 
 



reply via email to

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