[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole 05c6149932 1/2: Small updates in prep for maj
From: |
ELPA Syncer |
Subject: |
[elpa] externals/hyperbole 05c6149932 1/2: Small updates in prep for major release |
Date: |
Sun, 10 Mar 2024 12:58:16 -0400 (EDT) |
branch: externals/hyperbole
commit 05c6149932476f784633f2c6295099b4db075c11
Author: bw <rsw@gnu.org>
Commit: bw <rsw@gnu.org>
Small updates in prep for major release
---
ChangeLog | 13 ++
HY-ANNOUNCE | 83 ++++-----
MANIFEST | 1 -
Makefile | 4 +-
hactypes.el | 5 +-
hload-path.el | 10 +-
hmail.el | 9 +-
hsys-org.el | 8 +-
hui.el | 8 +-
hvm.el | 547 ----------------------------------------------------------
hypb.el | 5 +-
hyperbole.el | 9 +-
12 files changed, 80 insertions(+), 622 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6981d20f6c..dc09b9bbcf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2024-03-10 Bob Weiner <rsw@gnu.org>
+
+* hload-path.el (make-directory-autoloads): Remove 'ext:' since this is an
Emacs
+ built-in library available in version 28 and above.
+
+* hvm.el: Remove from Hyperbole as VM (the mail reader) is a very old package
that is
+ not available in normal package distributions today.
+
+* hsys-org.el (hsys-org-search-internal-link-p,
+ hsys-org-search-radio-target-link-p):
+ hactypes.el (link-to-org-id-marker): Conditionalize call of
'org-fold-show-context'
+ on whether 'org-fold' feature exists.
+
2024-03-08 Mats Lidell <matsl@gnu.org>
* test/hmouse-drv-tests.el
(hmouse-drv--hmouse-choose-link-and-referent-windows--two-windows-same-frame)
diff --git a/HY-ANNOUNCE b/HY-ANNOUNCE
index 16cccc15d3..da6eacb709 100644
--- a/HY-ANNOUNCE
+++ b/HY-ANNOUNCE
@@ -1,22 +1,29 @@
From: Bob Weiner <rsw@gnu.org>
To: gnu-emacs-sources@gnu.org, emacs-tangents@gnu.org,
hyperbole-users@gnu.org, hyperbole-announce@gnu.org
-Subject: GNU Hyperbole Major Release 9
+Subject: GNU Hyperbole Major Release 9 (V9.0.1)
--text follows this line--
========================================================================
* Overview
========================================================================
-GNU Hyperbole 9.0.0, the Rhapsody release, is now available on GNU ELPA.
+GNU Hyperbole 9.0.1, the Rhapsody release, is now available on GNU ELPA.
And oh what a release it is: extensive new features, new video demos,
org and org roam integration, Markdown and Org file support in HyRolo,
recursive directory and wildcard file scanning in HyRolo and much more.
-Hyperbole is a unique hypertextual information management Emacs package
-that works across all Emacs modes, letting the computer do the hard work
-while you benefit from its sophisticated context-sensitive linking and
-navigation capabilities. Hyperbole has always been one of the best
-documented Emacs packages. With Version 9 comes excellent test coverage:
-over 340 automated tests to ensure quality. We hope you'll give it a try.
+Hyperbole is a unique hypertextual information management Emacs
+package that works across all Emacs modes, letting the computer do the
+hard work while you benefit from its sophisticated context-sensitive
+linking and navigation capabilities.
+
+Hyperbole has always been one of the best documented Emacs packages.
+With Version 9 comes excellent test coverage: over 400 automated tests
+are run with every update against every major version of Emacs since
+version 27, to ensure quality. We hope you'll give it a try.
+
+========================================================================
+* What's New
+========================================================================
What's new in this release is described here:
@@ -25,8 +32,8 @@ What's new in this release is described here:
Everything back until release 8.0.0 is new since the last major release
announcement (almost a year and a half ago), so updates are extensive.
-If you prefer video introductions, visit the videos linked to below; otherwise,
-skip to the next section.
+If you prefer video introductions, visit the videos linked to below;
+otherwise, skip to the next section.
|--------------------------------------------------+------------------------------|
| GNU Hyperbole Videos | Web Link
|
@@ -66,34 +73,32 @@ skip to the next section.
Hyperbole is like Markdown for hypertext. Hyperbole automatically
recognizes dozens of common patterns in any buffer regardless of mode
-and can instantly activate them as hyperbuttons with a single key:
-email addresses, URLs, grep -n outputs, programming backtraces,
-sequences of Emacs keys, programming identifiers, Texinfo and Info
-cross-references, Org links, Markdown links and on and on. All you do
-is load Hyperbole and then your text comes to life with no extra
-effort or complex formatting.
-
-Hyperbole interlinks all your working information within Emacs for
-fast access and editing, not just within special modes. Every button
-is automatically assigned a type and new types can be developed for
-your own buttons with simple function definitions. You can create
-your own buttons by simply dragging between two buffers.
-
-But Hyperbole is also a hub controller for your information supplying
-built-in capabilities of contact management/hierarchical record
-lookup, legal-numbered outlines with hyperlinkable views and a unique
-window and frame manager. It is even Org-compatible so you can use
-all of Org's capabilities together with Hyperbole.
-
-Hyperbole is unique, powerful, extensively documented, and free. Like
-Emacs, Org, Counsel and Helm, Hyperbole has many different uses all
-based around the theme of reducing cognitive load and improving your
-everyday information management. It reduces cognitive load by using
-a single Action Key, {M-RET}, across many different contexts
-which automatically chooses the best action
-
-Then as you grow with it across time, it helps you build new capabilities
-that continue to speed your work.
+and transparently turns them into hyperbuttons you can instantly
+activate with a single key. Email addresses, URLs, grep -n outputs,
+programming backtraces, sequences of Emacs keys, programming
+identifiers, Texinfo and Info cross-references, Org links, Markdown
+links and on and on. All you do is load Hyperbole and then your text
+comes to life with no extra effort or complex formatting.
+
+Hyperbole interlinks your working information across all major modes
+within Emacs for fast access and editing. Every button is
+automatically assigned a type and new types can be developed for your
+own buttons with simple function definitions. You can create your own
+buttons by simply dragging between two buffers.
+
+But Hyperbole is also a personal information manager with built-in
+capabilities of contact management/hierarchical record lookup,
+legal-numbered outlines with hyperlinkable views and a unique window
+and frame manager. It is even Org-compatible so you can use all of
+Org's capabilities together with Hyperbole.
+
+Hyperbole is unique, powerful, extensively documented, and free. It
+stays out of your way but is always a key press away when you need it.
+Like Emacs, Org, Counsel and Helm, Hyperbole has many different uses
+all based around the theme of reducing cognitive load and improving
+your everyday information management. It reduces cognitive load by
+using a single Action Key, {M-RET}, across many different contexts to
+perform the best default action in each.
========================================================================
* Installing and Using Hyperbole
@@ -111,7 +116,7 @@ Then to invoke its minibuffer menu, use:
{C-h h} or {M-x hyperbole RET}
The best way to get a feel for many of its capabilities is to invoke the
-all new, interactive DEMO and explore sections of interest:
+all new, interactive FAST-DEMO and explore sections of interest:
{C-h h d d}
diff --git a/MANIFEST b/MANIFEST
index 6c8dab71a8..371c52ebde 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -70,7 +70,6 @@ set.el - General mathematical operators for
unordered sets
hmh.el - GNU Hyperbole buttons in mail reader: Mh
hrmail.el - GNU Hyperbole buttons in mail reader: Rmail
hsmail.el - GNU Hyperbole buttons in mail composer: mail
-hvm.el - GNU Hyperbole buttons in mail reader: Vm
* --- HYPERBOLE KOUTLINER ---
kotl/MANIFEST - Summary of Koutliner files
diff --git a/Makefile b/Makefile
index 767dd5a33b..9572827f90 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
# Author: Bob Weiner
#
# Orig-Date: 15-Jun-94 at 03:42:38
-# Last-Mod: 3-Mar-24 at 18:29:05 by Bob Weiner
+# Last-Mod: 10-Mar-24 at 11:50:28 by Bob Weiner
#
# Copyright (C) 1994-2023 Free Software Foundation, Inc.
# See the file HY-COPY for license information.
@@ -193,7 +193,7 @@ EL_COMPILE = hact.el hactypes.el hargs.el hbdata.el
hbmap.el hbut.el \
hyrolo-demo.el hyrolo-logic.el hyrolo-menu.el hyrolo.el
hywconfig.el set.el hypb-ert.el \
hui-dired-sidebar.el hypb-maintenance.el hui-em-but.el
hui-register.el
-EL_SRC = $(EL_COMPILE) hvm.el
+EL_SRC = $(EL_COMPILE)
EL_KOTL = kotl/kexport.el kotl/kfile.el kotl/kfill.el kotl/kimport.el
kotl/klabel.el \
kotl/klink.el kotl/kmenu.el kotl/kotl-mode.el kotl/kotl-orgtbl.el \
diff --git a/hactypes.el b/hactypes.el
index ecf9b52ea4..d42f16ea84 100644
--- a/hactypes.el
+++ b/hactypes.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 23-Sep-91 at 20:34:36
-;; Last-Mod: 4-Mar-24 at 00:24:53 by Bob Weiner
+;; Last-Mod: 10-Mar-24 at 11:28:18 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -632,7 +632,8 @@ See doc of `ibtypes::org-id' for usage."
(org-mark-ring-push)
(hact 'link-to-buffer-tmp (marker-buffer marker) marker)
(move-marker marker nil)
- (org-fold-show-context))
+ (when (featurep 'org-fold) ;; newer Org versions
+ (org-fold-show-context)))
(defact link-to-regexp-match (regexp n source &optional buffer-p)
"Find REGEXP's Nth occurrence in SOURCE and display location at window top.
diff --git a/hload-path.el b/hload-path.el
index 98a5d645a9..fb554a3e55 100644
--- a/hload-path.el
+++ b/hload-path.el
@@ -3,11 +3,11 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 29-Jun-16 at 14:39:33
-;; Last-Mod: 21-Jan-24 at 23:38:30 by Bob Weiner
+;; Last-Mod: 10-Mar-24 at 12:07:48 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
-;; Copyright (C) 1992-2022 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2024 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
@@ -21,7 +21,7 @@
;;; ************************************************************************
(defvar generated-autoload-file)
-(declare-function make-directory-autoloads "ext:autoload")
+(declare-function make-directory-autoloads "autoload")
;;; ************************************************************************
;;; Public variables
@@ -149,10 +149,6 @@ directory or directories specified."
;; Menu items could call this function before Info is loaded.
(autoload 'Info-goto-node "info" "Jump to specific Info node." t)
-;; Auto-autoload doesn't work for next item because it is defined
-;; within a condition-case, so autoload it here.
-(autoload 'Vm-init "hvm" "Initializes Hyperbole Vm support." t)
-
(defun hyperb:autoloads-exist-p ()
"Return t if all Hyperbole autoload files exist or nil otherwise."
(and (file-readable-p (expand-file-name "hyperbole-autoloads.el" hyperb:dir))
diff --git a/hmail.el b/hmail.el
index b0a4180a39..53647877ac 100644
--- a/hmail.el
+++ b/hmail.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 9-Oct-91 at 18:38:05
-;; Last-Mod: 20-Jan-24 at 15:38:10 by Mats Lidell
+;; Last-Mod: 10-Mar-24 at 11:52:34 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -51,11 +51,10 @@
(defcustom hmail:init-function nil
"*Function (a symbol) to initialize Hyperbole support for a mail
reader/composer.
-Valid values are: nil, Mh-init, Rmail-init or Vm-init."
+Valid values are: nil, Mh-init or Rmail-init."
:type '(choice (const nil)
(const Mh-init)
- (const Rmail-init)
- (const Vm-init))
+ (const Rmail-init))
:group 'hyperbole-commands)
(defvar hmail:composer 'message-mode
@@ -176,7 +175,7 @@ Otherwise, return nil."
func-suffix-list))))
(defun hmail:invoke (&optional address cc subject)
- "Invoke user preferred mail composer: vm-mail, mh-send or mail.
+ "Invoke user preferred mail composer: mh-send or mail.
Optional arguments are ADDRESS, CC list and SUBJECT of mail."
;; Next 3 lines prevent blank lines between fields due to
;; fill-region-as-paragraph within mail-setup.
diff --git a/hsys-org.el b/hsys-org.el
index 7e3386dfbd..5f28aad176 100644
--- a/hsys-org.el
+++ b/hsys-org.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 2-Jul-16 at 14:54:14
-;; Last-Mod: 18-Feb-24 at 23:44:42 by Mats Lidell
+;; Last-Mod: 10-Mar-24 at 11:31:56 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -501,7 +501,8 @@ White spaces are insignificant. Return t if a link is
found, else nil."
(backward-char)
(let ((object (org-element-context)))
(when (eq (org-element-type object) 'link)
- (org-fold-show-context 'link-search)
+ (when (featurep 'org-fold) ;; newer Org versions
+ (org-fold-show-context 'link-search))
(goto-char (or (previous-single-property-change (point) 'face)
(point-min)))
(throw :link-match t))))
(goto-char origin)
@@ -522,7 +523,8 @@ White spaces are insignificant. Return t if a target link
is found, else nil."
(backward-char)
(let ((object (org-element-context)))
(when (eq (org-element-type object) 'link)
- (org-fold-show-context 'link-search)
+ (when (featurep 'org-fold) ;; newer Org versions
+ (org-fold-show-context 'link-search))
(throw :radio-match t))))
(goto-char origin)
nil)))
diff --git a/hui.el b/hui.el
index 57ab3ec033..b2a1e8e728 100644
--- a/hui.el
+++ b/hui.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 19-Sep-91 at 21:42:03
-;; Last-Mod: 25-Feb-24 at 11:56:14 by Bob Weiner
+;; Last-Mod: 10-Mar-24 at 10:07:01 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -732,9 +732,9 @@ Use `hui:gbut-create' to create a global explicit button."
(interactive "sCreate global implicit button named: \nsButton text (with any
delimiters): ")
(let (but-buf
opoint
- delimited-label)
+ delimited-name)
(save-excursion
- (setq delimited-label (concat ibut:label-start name ibut:label-end)
+ (setq delimited-name (concat ibut:label-start name ibut:label-end)
but-buf (hpath:find-noselect (gbut:file)))
(hui:buf-writable-err but-buf "gibut-create")
;; This prevents movement of point which might be useful to user.
@@ -744,7 +744,7 @@ Use `hui:gbut-create' to create a global explicit button."
(unless (bolp)
(insert "\n"))
(setq opoint (point))
- (insert delimited-label ": " text "\n")
+ (insert delimited-name ": " text "\n")
(save-excursion
(goto-char (+ opoint (length ibut:label-start)))
;; Create button object from ibut at point
diff --git a/hvm.el b/hvm.el
deleted file mode 100644
index bc05b3d846..0000000000
--- a/hvm.el
+++ /dev/null
@@ -1,547 +0,0 @@
-;;; hvm.el --- GNU Hyperbole buttons in mail reader: Vm -*- lexical-binding:
t; -*-
-;;
-;; Author: Bob Weiner
-;;
-;; Orig-Date: 10-Oct-91 at 01:51:12
-;; Last-Mod: 18-Feb-24 at 12:33:39 by Mats Lidell
-;;
-;; SPDX-License-Identifier: GPL-3.0-or-later
-;;
-;; Copyright (C) 1991-2021 Free Software Foundation, Inc.
-;; See the "HY-COPY" file for license information.
-;;
-;; This file is part of GNU Hyperbole.
-
-;;; Commentary:
-;;
-;; Automatically configured for use in "hyperbole.el".
-;; If hsettings loading fails prior to initializing Hyperbole Vm support,
-;;
-;; {M-x Vm-init RET}
-;;
-;; will do it.
-;;
-
-;;; Code:
-;;; ************************************************************************
-;;; Other required Elisp libraries
-;;; ************************************************************************
-
-;; VM is not available as a regular Emacs package, so it is somewhat
-;; difficult to install properly. Requiring it below will therefore
-;; often trigger an error and prevent Hyperbole from properly
-;; loading, so prevent this error with a condition-case around this
-;; whole file.
-
-(condition-case nil
-(progn
-
-(require 'hload-path)
-
-(eval-and-compile
- (require 'hmail)
- (load "hsmail")
- (when (require 'vm nil t)
- (or (and (fboundp 'vm-edit-message) (fboundp 'vm-edit-message-end))
- (load "vm-edit"))
- (vm-session-initialization))) ;; this requires all of vm's modules
-
-;;; ************************************************************************
-;;; Public variables
-;;; ************************************************************************
-
-;; Current versions of VM define this next variable in "vm-vars.el". We
-;; define it here for earlier VM versions.
-(defvar vm-edit-message-mode nil
- "*Major mode to use when editing messages in VM.")
-
-;; "hmail.el" procedures will branch improperly if a regular mode, like VM's
-;; default `text-mode', is used for editing.
-(setq vm-edit-message-mode 'vm-edit-mode)
-
-;;; ************************************************************************
-;;; Public functions
-;;; ************************************************************************
-
-(defun vm-edit-mode ()
- "Major mode for editing vm mail messages.
-Special commands:\\{vm-edit-message-map}
-Turning on vm-edit-mode calls the value of the variable vm-edit-message-hook,
-if that value is non-nil."
- (interactive)
- (kill-all-local-variables)
-;; (use-local-map vm-edit-message-map)
- (setq mode-name "VM Edit")
- (setq major-mode 'vm-edit-mode)
- (setq local-abbrev-table text-mode-abbrev-table)
- (set-syntax-table text-mode-syntax-table)
-;; (run-hooks 'vm-edit-message-hook)
- )
-
-;;;###autoload
-(defun Vm-init ()
- "Initialize Hyperbole support for Vm mail reading."
- (interactive)
- (setq hmail:composer 'mail-mode
- hmail:lister 'vm-summary-mode
- hmail:modifier 'vm-edit-mode
- hmail:reader 'vm-mode)
- ;;
- ;; Setup public abstract interface to Hyperbole defined mail
- ;; reader-specific functions used in "hmail.el".
- ;;
- (rmail:init)
- ;;
- ;; Setup private abstract interface to mail reader-specific functions
- ;; used in "hmail.el".
- ;;
- (defalias 'rmail:get-new 'vm-get-new-mail)
- (defalias 'rmail:msg-forward 'vm-forward-message)
- (defalias 'rmail:summ-msg-to 'vm-follow-summary-cursor)
- (defalias 'rmail:summ-new 'vm-summarize)
- (if (called-interactively-p 'interactive)
- (message "Hyperbole VM mail reader support initialized.")))
-
-(defun Vm-msg-hdrs-full (toggled)
- "If TOGGLED is non-nil, toggle full/hidden headers, else show full headers."
- (save-excursion
- (if (or toggled
- (let ((exposed (= (point-min)
- (vm-start-of (car vm-message-pointer)))))
- (not exposed)))
- (progn (vm-expose-hidden-headers)
- (setq toggled t)))
- toggled))
-
-(defun Vm-msg-narrow ()
- "Narrows mail reader buffer to current message.
-This includes Hyperbole button data."
- (save-excursion
- (vm-select-folder-buffer)
- (narrow-to-region (point-min) (Vm-msg-end))))
-
-(defun Vm-msg-next () (vm-next-message 1))
-
-(defun Vm-msg-num ()
- "Return number of vm mail message that point is within, in physical message
order."
- (interactive)
- (let ((count 1)
- (case-fold-search))
- (save-excursion
- (save-restriction
- (widen)
- (while (re-search-backward Vm-msg-start-regexp nil t)
- (setq count (1+ count)))))
- count))
-
-(defun Vm-msg-prev () (vm-previous-message 1))
-
-(defun Vm-msg-to-p (mail-msg-id mail-file)
- "Set current buffer to start of msg with MAIL-MSG-ID in MAIL-FILE.
-Return t if successful, else nil or signal error."
- (if (not (file-readable-p mail-file))
- nil
- (vm-visit-folder mail-file)
- (widen)
- (goto-char 1)
- (if (let ((case-fold-search))
- (re-search-forward (concat rmail:msg-hdr-prefix
- (regexp-quote mail-msg-id)) nil t))
- ;; Found matching msg
- (progn
- (setq buffer-read-only t)
- (vm-goto-message-at-point)
- t))))
-
-(defun Vm-msg-widen ()
- "Widens buffer to full current message including Hyperbole button data."
- (save-excursion
- (vm-select-folder-buffer)
- (narrow-to-region (point-min) (Vm-msg-end))))
-
-(defun Vm-to ()
- "Set current buffer to a mail reader buffer."
- (and (eq major-mode 'vm-summary-mode) (set-buffer vm-mail-buffer)))
-
-(defun Vm-Summ-delete ()
- (vm-follow-summary-cursor)
- (vm-delete-message 1))
-
-(defalias 'Vm-Summ-expunge 'vm-expunge-folder)
-
-(defalias 'Vm-Summ-goto 'vm-follow-summary-cursor)
-
-(defun Vm-Summ-to ()
- "Set current buffer to a mail listing buffer."
- (and (eq major-mode 'vm-mode) (set-buffer vm-summary-buffer)))
-
-(defun Vm-Summ-undelete-all ()
- (message
- "(Vm-Summ-undelete-all: Vm doesn't have an undelete all msgs function."))
-
-;;; ************************************************************************
-;;; Private functions
-;;; ************************************************************************
-
-(defun Vm-msg-end ()
- "Return end point for current Vm message, including Hyperbole button data.
-Has side-effect of widening buffer."
- (save-excursion
- (goto-char (point-min))
- (widen)
- (if (let ((case-fold-search))
- (re-search-forward Vm-msg-start-regexp nil t))
- (match-beginning 0)
- (point-max))))
-
-;; Redefine version of this function from "vm-page.el" to hide any
-;; Hyperbole button data whenever a message is displayed in its entirety.
-(defun vm-show-current-message ()
- (save-excursion
- (save-excursion
- (goto-char (point-min))
- (hmail:msg-narrow (point-min) (Vm-msg-end)))
- (and vm-honor-page-delimiters
- (save-excursion
- (if (search-forward page-delimiter nil t)
- (progn
- (goto-char (match-beginning 0))
- (not (looking-at (regexp-quote hmail:hbdata-sep))))))
- (progn
- (if (looking-at page-delimiter)
- (forward-page 1))
- (vm-narrow-to-page))))
- ;; don't mark the message as read if the user can't see it!
- (if (vm-get-buffer-window (current-buffer))
- (progn
- (setq vm-system-state 'showing)
- (cond ((vm-new-flag (car vm-message-pointer))
- (vm-set-new-flag (car vm-message-pointer) nil)))
- (cond ((vm-unread-flag (car vm-message-pointer))
- (vm-set-unread-flag (car vm-message-pointer) nil)))
- (vm-update-summary-and-mode-line)
- (vm-howl-if-eom))
- (if (fboundp 'hproperty:but-create) (hproperty:but-create))
- (vm-update-summary-and-mode-line)))
-
-;; Redefine version of this function from "vm-page.el" to treat end of
-;; text (excluding Hyperbole button data) as end of message.
-(defun vm-scroll-forward-internal (arg)
- (let ((direction (prefix-numeric-value arg))
- (w (selected-window)))
- (condition-case error-data
- (progn (scroll-up arg) nil)
- (error
- (if (or (and (< direction 0)
- (> (point-min) (vm-text-of (car vm-message-pointer))))
- (and (>= direction 0)
- (/= (point-max)
- (save-restriction
- (hmail:hbdata-start
- (point-min)
- (vm-text-end-of
- (car vm-message-pointer)))))))
- (progn
- (vm-widen-page)
- (if (>= direction 0)
- (progn
- (forward-page 1)
- (set-window-start w (point))
- nil )
- (if (or (bolp)
- (not (save-excursion
- (beginning-of-line)
- (looking-at page-delimiter))))
- (forward-page -1))
- (beginning-of-line)
- (set-window-start w (point))
- 'tryagain))
- (if (eq (car error-data) 'end-of-buffer)
- (if vm-auto-next-message
- 'next-message
- (set-window-point w (point))
- 'end-of-message)))))))
-
-;; Redefine version of this function from "vm-page.el" (called by
-;; vm-scroll-* functions). Make it keep Hyperbole button data hidden.
-(defun vm-widen-page ()
- (if (or (> (point-min) (vm-text-of (car vm-message-pointer)))
- (/= (point-max) (vm-text-end-of (car vm-message-pointer))))
- (hmail:msg-narrow (vm-vheaders-of (car vm-message-pointer))
- (if (or (vm-new-flag (car vm-message-pointer))
- (vm-unread-flag (car vm-message-pointer)))
- (vm-text-of (car vm-message-pointer))
- (vm-text-end-of (car vm-message-pointer))))))
-
-;; Redefine version of this function from "vm-edit.el" to hide
-;; Hyperbole button data when insert edited message from temporary buffer.
-(advice-add 'vm-edit-message :after
- (lambda () (&rest _) (hmail:msg-narrow)))
-
-;;; Redefine version of this function from "vm-edit.el" to hide
-;;; Hyperbole button data when insert edited message from temporary buffer.
-(defun vm-edit-message-end ()
- "End the edit of a message and copy the result to its folder."
- (interactive)
- (if (null vm-message-pointer)
- (error "This is not a VM message edit buffer"))
- (if (null (buffer-name (vm-buffer-of (car vm-message-pointer))))
- (error "The folder buffer for this message has been killed"))
- (let ((pos-offset (- (point) (point-min))))
- ;; make sure the message ends with a newline
- (goto-char (point-max))
- (and (/= (preceding-char) ?\n) (insert ?\n))
- ;; munge message separators found in the edited message to
- ;; prevent message from being split into several messages.
- (vm-munge-message-separators (vm-message-type-of (car vm-message-pointer))
- (point-min) (point-max))
- ;; for From_-with-Content-Length recompute the Content-Length header
- (if (eq (vm-message-type-of (car vm-message-pointer))
- 'From_-with-Content-Length)
- (let ((buffer-read-only nil)
- length)
- (goto-char (point-min))
- ;; first delete all copies of Content-Length
- (while (and (re-search-forward vm-content-length-search-regexp nil t)
- (null (match-beginning 1))
- (progn (goto-char (match-beginning 0))
- (vm-match-header vm-content-length-header)))
- (delete-region (vm-matched-header-start) (vm-matched-header-end)))
- ;; now compute the message body length
- (goto-char (point-min))
- (search-forward "\n\n" nil 0)
- (setq length (- (point-max) (point)))
- ;; insert the header
- (goto-char (point-min))
- (insert vm-content-length-header " " (int-to-string length) "\n")))
- (let ((edit-buf (current-buffer))
- (mp vm-message-pointer))
- (if (buffer-modified-p)
- (progn
- (widen)
- (with-current-buffer (vm-buffer-of (vm-real-message-of (car mp)))
- (if (not (memq (vm-real-message-of (car mp)) vm-message-list))
- (error "The original copy of this message has been expunged"))
- (vm-save-restriction
- (widen)
- (goto-char (vm-headers-of (vm-real-message-of (car mp))))
- (let ((vm-message-pointer mp)
- opoint
- (buffer-read-only nil))
- (setq opoint (point))
- (insert-buffer-substring edit-buf)
- (delete-region
- (point) (vm-text-end-of (vm-real-message-of (car mp))))
- (vm-discard-cached-data)
- (hmail:msg-narrow))
- (vm-set-edited-flag-of (car mp) t)
- (vm-set-edit-buffer-of (car mp) nil))
- (set-buffer (vm-buffer-of (car mp)))
- (if (eq (vm-real-message-of (car mp))
- (vm-real-message-of (car vm-message-pointer)))
- (progn
- (vm-preview-current-message)
- ;; Try to position the cursor in the message
- ;; window close to where it was in the edit
- ;; window. This works well for non MIME
- ;; messages, but the cursor drifts badly for
- ;; MIME and for refilled messages.
- (vm-save-buffer-excursion
- (and vm-presentation-buffer
- (set-buffer vm-presentation-buffer))
- (vm-save-restriction
- (vm-save-buffer-excursion
- (widen)
- (let ((osw (selected-window))
- (new-win (vm-get-visible-buffer-window
- (current-buffer))))
- (unwind-protect
- (if new-win
- (progn
- (select-window new-win)
- (goto-char (vm-headers-of
- (car vm-message-pointer)))
- (ignore-errors (forward-char pos-offset))))
- (if (not (eq osw (selected-window)))
- (select-window osw))))))))
- (vm-update-summary-and-mode-line))))
- (message "No change."))
- (vm-display edit-buf nil '(vm-edit-message-end)
- '(vm-edit-message-end reading-message startup))
- (set-buffer-modified-p nil)
- (kill-buffer edit-buf))))
-
-
-;;; Define this function if the VM version in use doesn't have it.
-(or (fboundp 'vm-goto-message-at-point)
-(defun vm-goto-message-at-point ()
- "In a VM folder buffer, select the message that contain point."
- (cond ((fboundp 'vm-update-search-position)
- (vm-update-search-position t)
- ;; vm-show-current-message only adjusts (point-max),
- ;; it doesn't change (point-min).
- (narrow-to-region
- (vm-vheaders-of (car vm-message-pointer))
- (point-max))
- (vm-show-current-message)
- (setq vm-system-state 'reading))
- ((fboundp 'vm-isearch-update)
- (vm-isearch-update)
- (narrow-to-region
- (vm-vheaders-of (car vm-message-pointer))
- (point-max))
- (vm-show-current-message)
- (setq vm-system-state 'reading))
- (t (error "Vm search code is missing, can't continue")))))
-
-;; Hide any Hyperbole button data when reply to or forward a message.
-;; See "vm-reply.el".
-(var:append 'vm-mail-mode-hook '(hmail:msg-narrow))
-
-;; Redefine this function from "vm-folder.el" called whenever new mail is
-;; incorporated so that it will highlight Hyperbole buttons when possible.
-;; Returns list of new messages if there were any new messages, nil otherwise.
-(defun vm-assimilate-new-messages (&optional
- dont-read-attributes
- gobble-order
- labels first-time)
- (let ((tail-cons (vm-last vm-message-list))
- b-list new-messages)
- (save-excursion
- (vm-save-restriction
- (widen)
- (if (fboundp 'hproperty:but-create)
- (hproperty:but-create))
- (vm-build-message-list)
- (if (or (null tail-cons) (cdr tail-cons))
- (progn
- (if (not vm-assimilate-new-messages-sorted)
- (setq vm-ml-sort-keys nil))
- (if dont-read-attributes
- (vm-set-default-attributes (cdr tail-cons))
- (vm-read-attributes (cdr tail-cons)))
- ;; Yuck. This has to be done here instead of in the
- ;; vm function because this needs to be done before
- ;; any initial thread sort (so that if the thread
- ;; sort matches the saved order the folder won't be
- ;; modified) but after the message list is created.
- ;; Since thread sorting is done here this has to be
- ;; done here too.
- (if gobble-order
- (vm-gobble-message-order))
- (if (or (vectorp vm-thread-obarray)
- vm-summary-show-threads)
- (vm-build-threads (cdr tail-cons))))))
- (setq new-messages (if tail-cons (cdr tail-cons) vm-message-list))
- (vm-set-numbering-redo-start-point new-messages)
- (vm-set-summary-redo-start-point new-messages))
- ;; Only update the folders summary count here if new messages
- ;; have arrived, not when we're reading the folder for the
- ;; first time, and not if we cannot assume that all the arrived
- ;; messages should be considered new. Use gobble-order as a
- ;; first time indicator along with the new messages being equal
- ;; to the whole message list.
- (if (and new-messages dont-read-attributes
- (or (not (eq new-messages vm-message-list))
- (null gobble-order)))
- (vm-modify-folder-totals buffer-file-name 'arrived
- (length new-messages)))
- ;; copy the new-messages list because sorting might scramble
- ;; it. Also something the user does when
- ;; vm-arrived-message-hook is run might affect it.
- ;; vm-assimilate-new-messages returns this value so it must
- ;; not be mangled.
- (setq new-messages (copy-sequence new-messages))
- ;; add the labels
- (if (and new-messages labels (boundp
'vm-burst-digest-messages-inherit-labels)
- vm-burst-digest-messages-inherit-labels)
- (let ((mp new-messages))
- (while mp
- (vm-set-labels-of (car mp) (copy-sequence labels))
- (setq mp (cdr mp)))))
- (if (and new-messages vm-summary-show-threads)
- (progn
- ;; get numbering and summary of new messages done now
- ;; so that the sort code only has to worry about the
- ;; changes it needs to make.
- (vm-update-summary-and-mode-line)
- (vm-sort-messages "thread")))
- (if (and new-message
- (or vm-arrived-message-hook vm-arrived-messages-hook)
- ;; Run the hooks only if this is not the first
- ;; time vm-assimilate-new-messages has been called
- ;; in this folder.
- (not first-time))
- (let ((new-messages new-messages))
- ;; seems wise to do this so that if the user runs VM
- ;; commands here they start with as much of a clean
- ;; slate as we can provide, given we're currently deep
- ;; in the guts of VM.
- (vm-update-summary-and-mode-line)
- (if vm-arrived-message-hook
- (while new-messages
- (vm-run-message-hook (car new-messages)
- 'vm-arrived-message-hook)
- (setq new-messages (cdr new-messages))))
- (run-hooks 'vm-arrived-messages-hook)))
- (if (and new-messages vm-virtual-buffers)
- (save-excursion
- (setq b-list vm-virtual-buffers)
- (while b-list
- ;; buffer might be dead
- (if (buffer-name (car b-list))
- (let (tail-cons)
- (set-buffer (car b-list))
- (setq tail-cons (vm-last vm-message-list))
- (vm-build-virtual-message-list new-messages)
- (if (or (null tail-cons) (cdr tail-cons))
- (progn
- (if (not vm-assimilate-new-messages-sorted)
- (setq vm-ml-sort-keys nil))
- (if (vectorp vm-thread-obarray)
- (vm-build-threads (cdr tail-cons)))
- (vm-set-summary-redo-start-point
- (or (cdr tail-cons) vm-message-list))
- (vm-set-numbering-redo-start-point
- (or (cdr tail-cons) vm-message-list))
- (if (null vm-message-pointer)
- (progn (setq vm-message-pointer vm-message-list
- vm-need-summary-pointer-update t)
- (if vm-message-pointer
- (vm-preview-current-message))))
- (if vm-summary-show-threads
- (progn
- (vm-update-summary-and-mode-line)
- (vm-sort-messages "thread")))))))
- (setq b-list (cdr b-list)))))
- (if (and new-messages vm-ml-sort-keys)
- (vm-sort-messages vm-ml-sort-keys))
- new-messages ))
-
-;; Redefine version of `vm-force-mode-line-update' from "vm-folder.el"
-;; to highlight Hyperbole buttons in summary buffers.
-(defun vm-force-mode-line-update ()
- "Force a mode line update in all frames."
- (if vm-summary-buffer
- (with-current-buffer vm-summary-buffer
- (if (fboundp 'hproperty:but-create) (hproperty:but-create))))
- (if (fboundp 'force-mode-line-update)
- (force-mode-line-update t)
- (with-current-buffer (other-buffer)
- (set-buffer-modified-p (buffer-modified-p)))))
-
-;;; ************************************************************************
-;;; Private variables
-;;; ************************************************************************
-
-(defvar Vm-msg-start-regexp "\n\nFrom \\|\n\001\001\001\001"
- "Regular expression that begins a Vm mail message.")
-
-(provide 'hvm))
-(error nil))
-
-;; Local Variables:
-;; no-byte-compile: t
-;; End:
-
-;;; hvm.el ends here
diff --git a/hypb.el b/hypb.el
index dda1410240..5157c2d26c 100644
--- a/hypb.el
+++ b/hypb.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 6-Oct-91 at 03:42:38
-;; Last-Mod: 18-Feb-24 at 23:50:41 by Mats Lidell
+;; Last-Mod: 10-Mar-24 at 11:51:55 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -29,7 +29,6 @@
(defvar mh-e-RCS-id)
(defvar pm-version)
-(defvar vm-version)
(declare-function helm-info "ext:helm")
(declare-function helm-apropos "ext:helm")
@@ -341,8 +340,6 @@ Use optional OUT-BUF if present, else the current buffer."
(when (and (boundp 'hmail:reader) hmail:reader)
(insert (format "\tMail Reader: %s\n"
(cond ((eq hmail:reader 'rmail-mode) "RMAIL")
- ((eq hmail:reader 'vm-mode)
- (concat "VM " vm-version))
((and (eq hmail:reader 'mh-show-mode)
(string-match "v ?\\([0-9]+.[0-9]+\\)"
mh-e-RCS-id))
diff --git a/hyperbole.el b/hyperbole.el
index 2ef83eb0a6..bdcb684403 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -8,7 +8,7 @@
;; Maintainer: Mats Lidell <matsl@gnu.org>
;; Maintainers: Robert Weiner <rsw@gnu.org>, Mats Lidell <matsl@gnu.org>
;; Created: 06-Oct-92 at 11:52:51
-;; Last-Mod: 19-Feb-24 at 12:31:45 by Bob Weiner
+;; Last-Mod: 10-Mar-24 at 11:53:00 by Bob Weiner
;; Released: 03-Dec-23
;; Version: 8.0.2pre
;; Keywords: comm, convenience, files, frames, hypermedia, languages,
mail, matching, mouse, multimedia, outlines, tools, wp
@@ -432,17 +432,10 @@ frame, those functions by default still return the prior
frame."
;; Mh-e
(var:append 'mh-inc-folder-hook '(Mh-init))
;;
-;; VM support is based on V5.72 beta of VM. If you have a version of VM
-;; earlier than 5.70 beta, you should either upgrade or comment out the
-;; following line so that Hyperbole support for VM is not enabled.
-(var:append 'vm-mode-hook '(Vm-init))
-;;
;; Hyperbole mail composer support configuration.
;;
(var:append 'message-mode-hook (list (lambda () (require 'hsmail))))
(var:append 'mh-letter-mode-hook (list (lambda () (require 'hsmail))))
-(var:append 'vm-mail-mode-hook (list (lambda () (require 'hsmail))))
-
;;; ************************************************************************
;;; URL Browsing
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/hyperbole 05c6149932 1/2: Small updates in prep for major release,
ELPA Syncer <=