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

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

[elpa] externals/hyperbole cc0493a 14/20: * hactypes.el (link-to-web-sea


From: Robert Weiner
Subject: [elpa] externals/hyperbole cc0493a 14/20: * hactypes.el (link-to-web-search): Added so Hyperbole global and explicit buttons can execute web searches.
Date: Tue, 9 Aug 2016 19:17:08 +0000 (UTC)

branch: externals/hyperbole
commit cc0493ac37c3084835bf87a948fee916b6b64f56
Author: Bob Weiner <address@hidden>
Commit: Bob Weiner <address@hidden>

    * hactypes.el (link-to-web-search): Added so Hyperbole global and explicit 
buttons can execute web searches.
      hsettings.el (hyperbole-read-web-search-arguments): Added and used in 
hyperbole-web-search and link-to-web-search.
      DEMO (Sample Explicit Buttons and Types):
      man/hyperbole.texi (Action Types): Documented link-to-web-search.
    
    * INSTALL, README, README.md, README.md.html: Added Browsing the Source 
section with ftp tarball download information.
    
    * hpath.el (hpath:delimited-possible-path): Added non-ascii quote 
characters to possible delimiters.
               (hpath:delete-trailer): Added quoting characters to deletion to 
fix bug where remote pathname retrieval
        would include a trailing quote mark.
    
    * hargs.el (hargs:delimited): Added support for up to 2-line delimited 
regions as long as point is on the first line.
        Normalized any newline followed by whitespace to a single space in the 
string returned.
        Added (require 'hypb).
---
 .hypb              |  Bin 2548 -> 2681 bytes
 Changes            |   15 +++++++
 DEMO               |    9 ++--
 HY-ABOUT           |    2 +-
 HY-ANNOUNCE        |  118 ++++++++++++++++++++++++++++++++++++++++++++++++----
 HY-NEWS            |   13 +++++-
 HY-WHY.kotl        |   34 ++++++++-------
 INSTALL            |   15 +++++++
 Makefile           |    2 +-
 README.md          |   15 ++++++-
 README.md.html     |   14 +++++++
 hactypes.el        |   10 ++++-
 hargs.el           |   13 +++---
 hpath.el           |    6 +--
 hsettings.el       |   32 +++++++-------
 hversion.el        |    2 +-
 hyperbole.el       |    4 +-
 man/hyperbole.texi |   14 +++++--
 man/version.texi   |    2 +-
 19 files changed, 260 insertions(+), 60 deletions(-)

diff --git a/.hypb b/.hypb
index 3d0e2d6..d5ddee3 100644
Binary files a/.hypb and b/.hypb differ
diff --git a/Changes b/Changes
index 3576069..7f9bb15 100644
--- a/Changes
+++ b/Changes
@@ -2,6 +2,21 @@
 
 2016-08-08  Bob Weiner  <address@hidden>
 
+* hactypes.el (link-to-web-search): Added so Hyperbole global and explicit 
buttons can execute web searches.
+  hsettings.el (hyperbole-read-web-search-arguments): Added and used in 
hyperbole-web-search and link-to-web-search.
+  DEMO (Sample Explicit Buttons and Types):
+  man/hyperbole.texi (Action Types): Documented link-to-web-search.
+
+* INSTALL, README, README.md, README.md.html: Added Browsing the Source 
section with ftp tarball download information.
+
+* hpath.el (hpath:delimited-possible-path): Added non-ascii quote characters 
to possible delimiters.
+           (hpath:delete-trailer): Added quoting characters to deletion to fix 
bug where remote pathname retrieval
+    would include a trailing quote mark.
+
+* hargs.el (hargs:delimited): Added support for up to 2-line delimited regions 
as long as point is on the first line.
+    Normalized any newline followed by whitespace to a single space in the 
string returned.
+    Added (require 'hypb).
+
 * hys-org.el (defib org-mode, org-mode:help): Ensured trigger only in org-mode 
and simplified logic.
              (org-heading-at-p): Deleted and used org-at-heading-p instead.
 
diff --git a/DEMO b/DEMO
index db564aa..e7d4b3f 100644
--- a/DEMO
+++ b/DEMO
@@ -374,8 +374,8 @@ files and directories, then remote pathnames of the form:
 will be recognized by Hyperbole.
 
 Once you have Tramp configured for loading and are on the Internet, you can
-click on any of the following to browse the contents of the Hyperbole
-distribution:
+click on any of the following to jump to the ftp site of Hyperbole tarball
+distributions:
 
         "/address@hidden:/pub/gnu/hyperbole/"
         ftp.gnu.org:/pub/gnu/hyperbole/
@@ -677,7 +677,7 @@ remember a Hyperbole term?  Check out the Hyperbole Manual 
<(glossary)>.
 
 Here is a <(keyboard macro)> button.  It displays documentation for the
 first Emacs Lisp function that follows it, e.g. (hbut:report).  You can see
-that a button label can consist of a number of words, up to a set <(maximum
+that a button label may consist of many characters, up to a set <(maximum
 length)>.
 
 A <(shell command)> button can do many things, such as display the length of
@@ -695,6 +695,9 @@ advantage of this feature.  Note how a separate window is 
used when you
 activate file link buttons.  Most basic Hyperbole action types display their
 results in this manner.
 
+You can create buttons that run specific web searches such as a Wikipedia
+query on an <(electric car)> with the `link-to-web-search' action type.
+
 You can make a button an alias for another by using the `link-to-ebut'
 action type.  This <(factorial alias)> button does whatever the earlier
 <(factorial)> button does.
diff --git a/HY-ABOUT b/HY-ABOUT
index 7eb38da..00cd435 100644
--- a/HY-ABOUT
+++ b/HY-ABOUT
@@ -1,7 +1,7 @@
                          ABOUT GNU HYPERBOLE
                   Designed and Written by Bob Weiner
                 https://www.gnu.org/software/hyperbole/
-                            Version 6.0.1
+                            Version 6.0.2
 
 GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
 an efficient and programmable hypertextual information management
diff --git a/HY-ANNOUNCE b/HY-ANNOUNCE
index ef6baa4..b3a88bb 100644
--- a/HY-ANNOUNCE
+++ b/HY-ANNOUNCE
@@ -1,8 +1,8 @@
-            ANNOUNCE: GNU Hyperbole 6.0.1 for Emacs 24.4 to 25 is released
+            ANNOUNCE: GNU Hyperbole 6.0.2 for Emacs 24.4 to 25 is released
 
 GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is an
 amazing programmable hypertextual information management system implemented as
-a GNU Emacs package.  This is the first public release in 2016.  Hyperbole has
+a GNU Emacs package.  This is the second public release in 2016.  Hyperbole has
 been greatly expanded and modernized for use with the latest Emacs 25
 releases; it supports GNU Emacs 24.4 or above.  It contains an extensive set
 of improvements that can greatly boost your day-to-day productivity with Emacs
@@ -96,6 +96,21 @@ The GNU Hyperbole project home page gives a more extensive 
description:
 "https://www.gnu.org/software/hyperbole/";.
 
 ===========================================================================
+*                       Browsing the Source
+===========================================================================
+
+To explore the Hyperbole source code rather than installing it for use,
+download a tar.gz source archive from either:
+
+    ftp://ftp.gnu.org/gnu/hyperbole/
+
+or
+
+    http://ftpmirror.gnu.org/hyperbole/
+
+which will find the closest mirror of the GNU ftp site and show it to you.
+
+===========================================================================
 *                          Package Installation
 ===========================================================================
 
@@ -338,19 +353,106 @@ wherever the Hyperbole package directory is on your 
system; often this is:
                                         -- Craig Smith
 
 ===========================================================================
-*                 What's New in GNU Hyperbole
+*                 What's New in GNU Hyperbole V6.0.2
 ===========================================================================
 
-NOTE: Version 6.0.1 is the first public release by the author, Bob Weiner,
-since version 4.18.  All version 5 releases made this year were test releases,
-so you should look through all of the V5 news items to understand all that is
-new in V6 as well.  In other words, all news items listed below are new for
-2016.
+  BUTTONS
+
+    - pathname Implicit Button Type: generalized to handle hash-style links to
+      HTML files, to Github Markdown # sections and to Emacs outline *
+      sections.  So an Action Key press on any of the following links displays
+      the link referent:
+            "man/hyperbole.html#Questions-and-Answers"
+           "README.md#why-was-hyperbole-developed"
+           "DEMO#HTML Markdown and Emacs Outline Hash Links"
+      Even links split across 2 lines like this now work: "DEMO#Social Media
+      Hashtags and Usernames", as long as point is on the first line.
+
+      Within HTML and Markdown files, in-file hash links without any file name
+      prefix work as well.
+
+      HTML hash-links are case-sensitive; other hash-links are not.  Hash links
+      typically use dashes in place of the spaces that referents may contain,
+      but if the link is enclosed in quotes, Hyperbole allows spaces to be used
+      as well.  In fact, it is best practice to always enclose hash-style links
+      in quotes so Hyperbole can distinguish them from other similar looking
+      constructs, such as social media hashtags (see "(hyperbole)Social 
Media").
+
+      Pathnames surrounded by literal non-ASCII quote marks now work as well.
+      For example, ‘http://ftp.gnu.org/gnu/hyperbole/’.
+
+    - New Implicit Button Type, markdown-internal-link, displays any in-file
+      Markdown link referent, aside from pathnames and urls.  Together with
+      other types, all Markdown links can now be followed by the Action Key.
+
+    - social-reference Implicit Button Type: Disabled this type within quoted
+      strings (all modes) and within parentheses (markdown-mode), so in-file
+      hash link references are not matched as social hash tags.  Made the list
+      of modes a variable, hibtypes-social-inhibit-modes.
+
+    - New link-to-web-search Action Type: Allows global and explicit buttons
+      to link to specific web term searches from `hyperbole-web-search-alist'.
+
+    - org-mode Implicit Button Type: Improved to invoke org-meta-return when
+      not on an Org link or outline heading.
+
+  DOCUMENTATION
+
+    - Added pointer to HyControl video and {C-c \} binding which invokes
+      HyControl window control.
+
+    - README File: New Org-mode user testimonial.
+
+    - DEMO File: Added description and exercise using the new Find/Web menu.
+
+    - Added README.md.html introduction with images combining README, INSTALL
+      and HY-ABOUT information.
+
+    - Full set of hand-written changes are now in the file "Changes".  The
+      former name, ChangeLog, is now auto-generated from the version controlled
+      'git log' but not as complete.
+
+  KEYS
+
+    - New variables, action-key-eol-function and assist-key-eol-function, used
+      to control what the Action and Assist Keys do at the end of a line.
+      Default behaviors remain as before but now one can set these to do
+      something other than scrolling, if desired.  See "(hyperbole)Smart Key -
+      Smart Scrolling"
+
+    - When in HyControl, pressing {ESC} now quits in addition to {q}.
+
+  MENUS
+
+    - New submenu, Find/Web, for quick access to major web search engines.
+      The Find/Web menu looks like this:
+        Web> Amazon Bing Dictionary Elisp Facebook Google Hub(git) Images Maps 
RFCs StackOverflow Twitter Wikipedia Youtube
+
+      Hyperbole binds the key {C-c /} for quick access to this menu, if it is
+      not already bound prior to Hyperbole's initialization. The
+      Cust/Web-Search menu, {C-h h c w}, sets the option,
+      hyperbole-web-search-browser-function, which determines whether web
+      search results are displayed within Emacs or with an external web
+      browser.  A short video introduction to the Find/Web menu may be found at
+      https://youtu.be/8lMlJed0-OM.
+
+      Advanced users can change the search engines listed in the Find/Web menu
+      with M-x customize-variable RET hyperbole-web-search-alist RET.  Changes
+      are automatically reflected in the Hyperbole menus once applied.
+      Remember each search engine name must begin with a unique letter and each
+      URL must have a %s format field indicating where to place the web search
+      term when a search is performed.  See "(hyperbole)Web Search Engines".
 
 ===========================================================================
 *                            V6.0.0 - V6.0.1
 ===========================================================================
 
+NOTE: Version 6.0.1 was the first public release by the author, Bob Weiner,
+since version 4.18.  All version 5 releases made this year were test releases,
+so you should look through all of the V5 news items to understand all that is
+new in V6 as well.  In other words, all news items listed below are new for
+2016.
+
   BUTTONS
 
     - New implicit button type for social media hashtag or username
diff --git a/HY-NEWS b/HY-NEWS
index ec5b863..e9ad7ce 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -11,11 +11,14 @@
 
     - pathname Implicit Button Type: generalized to handle hash-style links to
       HTML files, to Github Markdown # sections and to Emacs outline *
-      sections.  So an Action Key on any of the following links displays the
-      link referent:
+      sections.  So an Action Key press on any of the following links displays
+      the link referent:
             "man/hyperbole.html#Questions-and-Answers"
            "README.md#why-was-hyperbole-developed"
            "DEMO#HTML Markdown and Emacs Outline Hash Links"
+      Even links split across 2 lines like this now work: "DEMO#Social Media
+      Hashtags and Usernames", as long as point is on the first line.
+
       Within HTML and Markdown files, in-file hash links without any file name
       prefix work as well.
 
@@ -26,6 +29,9 @@
       in quotes so Hyperbole can distinguish them from other similar looking
       constructs, such as social media hashtags (see "(hyperbole)Social 
Media").
 
+      Pathnames surrounded by literal non-ASCII quote marks now work as well.
+      For example, ‘http://ftp.gnu.org/gnu/hyperbole/’.
+
     - New Implicit Button Type, markdown-internal-link, displays any in-file
       Markdown link referent, aside from pathnames and urls.  Together with
       other types, all Markdown links can now be followed by the Action Key.
@@ -35,6 +41,9 @@
       hash link references are not matched as social hash tags.  Made the list
       of modes a variable, hibtypes-social-inhibit-modes.
 
+    - New link-to-web-search Action Type: Allows global and explicit buttons
+      to link to specific web term searches from `hyperbole-web-search-alist'.
+
     - org-mode Implicit Button Type: Improved to invoke org-meta-return when
       not on an Org link or outline heading.
 
diff --git a/HY-WHY.kotl b/HY-WHY.kotl
index 3bdf057..6f3f0d0 100644
--- a/HY-WHY.kotl
+++ b/HY-WHY.kotl
@@ -4,13 +4,17 @@
    1. Create a library of documents, link them on-the-fly and retrieve
       any one at the touch of a button containing its short id.
 
-   2. Display and edit local or remote files and directories simply by
+   2. Utilize a single key to follow URLs with section links, Markdown
+      links, Emacs outline heading links, Org mode links, file and
+      directory links and program identifier references.
+
+   3. Display and edit local or remote files and directories simply by
       pressing on their names.  Hyperbole will automatically embed
       certain key variables in link pathnames so that as these links
       are moved from site to site and the variable values change at
       each site, the links automatically maintain proper linkages.
 
-   3. Full-text search for any contact-related information across
+   4. Full-text search for any contact-related information across
       thousands of contacts in under a second.  The fastest contact
       manager you have ever used, with hierarchical entries so you can
       easily find everyone on a particular team or within an
@@ -18,42 +22,42 @@
       while still seeing name, phone number and email information.
       Edit entries with a single key press.
 
-   4. Hyperbole has some radically cool ways to select regions of
+   5. Hyperbole has some radically cool ways to select regions of
       structured text or source code and to copy or move them between
       buffers with a single mouse drag or two key presses.  These
       selectable things include: delimited pairs of (), @address@hidden, <>, []
       and quote marks, source code functions, source code comments and
       matching tag pairs in HTML and SGML modes.
 
-   5. Use the fantastic, auto-numbered Koutliner with per-item links
+   6. Use the fantastic, auto-numbered Koutliner with per-item links
       and rapidly changeable views.
 
-   6. Rapid control over what is displayed where in multiple windows
-      and frames with Hyperbole' HyControl module.
+   7. Rapid control over what is displayed where in multiple windows
+      and frames with the Hyperbole HyControl system.
 
-     6a. Use a quick mouse key press to scroll any window line to the
+     7a. Use a quick mouse key press to scroll any window line to the
          top or bottom of a window, to see exactly what you want on
          screen.
 
-     6b. For each frame, store a series of window configurations
+     7b. For each frame, store a series of window configurations
          (layouts) that each allow for working with a set of specific
          buffers, rapidly moving among them.
 
-     6c. Easily adjust the height and width of windows as needed.
+     7c. Easily adjust the height and width of windows as needed.
 
-     6d. Quick clicks on different areas of a buffer's modeline will
+     7d. Quick clicks on different areas of a buffer's modeline will
          rotate through your working list of buffers, changing what
          each window displays.  A popup menu gives you quick access to
          Hyperbole commands plus frame, window and buffer selection
          and management commands.  GNU documentation manuals may be
          shown and navigated with a single mouse key.
 
-     6e. A single mouse drag swaps what is displayed in each of two
+     7e. A single mouse drag swaps what is displayed in each of two
          windows, even across frames.
 
 
 "ben" ;; kvspec:current
-16 ;; id-counter
+18 ;; id-counter
 alpha ;; label-type
 4 ;; label-min-width
 ". " ;; label-separator
@@ -61,9 +65,11 @@ alpha ;; label-type
 
 ;; depth-first kcell attributes
 [[0
-  (creator "address@hidden" create-time "20160613:15:02:38" id-counter 16 file 
"/Users/bk/sw-dev/emacs/hyperbole-5.12/HY-WHY.kotl")]
+  (creator nil create-time "20160806:03:21:53" id-counter 18 file 
"/Users/bk/sw-dev/emacs/hyperbole-6.0.1/HY-WHY.kotl")]
  [1
   (creator "address@hidden" create-time "20160524:15:04:17" no-fill t)]
+ [17
+  (creator "address@hidden" create-time "20160809:03:31:21" no-fill t)]
  [2
   (creator "address@hidden" create-time "20160524:15:04:24" no-fill t)]
  [9
@@ -84,4 +90,4 @@ alpha ;; label-type
   (creator "address@hidden" create-time "20160530:15:10:41" no-fill t)]
  [12
   (creator "address@hidden" create-time "20160530:15:14:46" no-fill t)]
- nil nil nil nil nil]
+ nil nil nil nil nil nil]
diff --git a/INSTALL b/INSTALL
index 3d316c9..47c2e9e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -12,6 +12,21 @@
 # This file is part of GNU Hyperbole.
 
 ===========================================================================
+*                       Browsing the Source
+===========================================================================
+
+To explore the Hyperbole source code rather than installing it for use,
+download a tar.gz source archive from either:
+
+    ftp://ftp.gnu.org/gnu/hyperbole/
+
+or
+
+    http://ftpmirror.gnu.org/hyperbole/
+
+which will find the closest mirror of the GNU ftp site and show it to you.
+
+===========================================================================
 *                         Installation
 ===========================================================================
 
diff --git a/Makefile b/Makefile
index ef5b751..a668fed 100644
--- a/Makefile
+++ b/Makefile
@@ -52,7 +52,7 @@
 
 # This ver setup won't work under any make except GNU make, so set it manually.
 #HYPB_VERSION = "`head -3 hversion.el | tail -1 | sed -e 's/.*|\(.*\)|.*/\1/'`"
-HYPB_VERSION = 6.0.1
+HYPB_VERSION = 6.0.2
 
 # Emacs executable used to byte-compile .el files into .elc's.
 # Possibilities include: emacs, infodock, xemacs, etc.
diff --git a/README.md b/README.md
index 19076b2..fd705ce 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# GNU Hyperbole - Version 6.0.1
+# GNU Hyperbole - Version 6.0.2
 
 <!-- START doctoc generated TOC -->
 **Table of Contents**
@@ -39,6 +39,19 @@ explains the many ways it differs from and is complementary 
to Org mode.
 
 ![Hyperbole screenshot of the Koutliner, DEMO file and 
HyRolo](man/im/hyperbole-cv.png)
 
+## Browsing the Source
+
+To explore the Hyperbole source code rather than installing it for use,
+download a tar.gz source archive from either:
+
+  - <ftp://ftp.gnu.org/gnu/hyperbole/>
+
+or
+
+  - <http://ftpmirror.gnu.org/hyperbole/>
+
+which will find the closest mirror of the GNU ftp site and show it to you.
+
 ## Installation
 
 Once you have Emacs set up at your site, GNU Hyperbole may be
diff --git a/README.md.html b/README.md.html
index 65f8e48..d182443 100644
--- a/README.md.html
+++ b/README.md.html
@@ -451,6 +451,7 @@ pre[class*="language-"] {
 
 <ul>
 <li><a href="#summary">Summary</a></li>
+<li><a href="#browsing-the-source">Browsing the Source</a></li>
 <li><a href="#installation">Installation</a></li>
 <li><a href="#invocation">Invocation</a></li>
 <li><a href="#details">Details</a></li>
@@ -487,6 +488,19 @@ explains the many ways it differs from and is 
complementary to Org mode.</p>
 
 <p><img src="man/im/hyperbole-cv.png" alt="Hyperbole screenshot of the 
Koutliner, DEMO file and HyRolo"></p>
 
+<h2 id="browsing-the-source">Browsing the Source</h2>
+
+<p>To explore the Hyperbole source code rather than installing it for use,
+    download a tar.gz source archive from either:</p>
+
+<ul><li><a 
href="ftp://ftp.gnu.org/gnu/hyperbole/";>ftp://ftp.gnu.org/gnu/hyperbole/</a></li></ul>
+
+<p>or</p>
+
+<ul><li><a 
href="http://ftpmirror.gnu.org/hyperbole/";>http://ftpmirror.gnu.org/hyperbole/</a></li></ul>
+
+<p>which will find the closest mirror of the GNU ftp site and show it to 
you.</p>
+
 <h2 id="installation">Installation</h2>
 
 <p>Once you have Emacs set up at your site, GNU Hyperbole may be
diff --git a/hactypes.el b/hactypes.el
index af1a7b7..29cf6a7 100644
--- a/hactypes.el
+++ b/hactypes.el
@@ -16,7 +16,7 @@
 ;;; ************************************************************************
 
 (eval-and-compile (mapc #'require '(hbut hpath hargs hmail)))
-(eval-when-compile (require 'comint))
+(eval-when-compile (mapc #'require '(comint hsettings)))
 
 ;;; ************************************************************************
 ;;; Standard Hyperbole action types
@@ -454,6 +454,14 @@ Returns t if found, nil if not."
                    nodename)))
     (hact 'link-to-file buffer-file-name node-point)))
 
+(defact link-to-web-search (service-name search-term)
+  "Searches web SERVICE-NAME for SEARCH-TERM.
+Uses `hyperbole-web-search-alist' to match each service to its search url.
+Uses `hyperbole-web-search-browser-function' and the `browse-url'
+package to display search results."
+  (interactive (hyperbole-read-web-search-arguments))
+  (hyperbole-web-search service-name search-term))
+
 (defact man-show (topic)
   "Displays man page on TOPIC, which may be of the form <command>(<section>).
 If using the Superman manual entry package, see the documentation for
diff --git a/hargs.el b/hargs.el
index 0aad223..61d0415 100644
--- a/hargs.el
+++ b/hargs.el
@@ -26,6 +26,7 @@
 ;;; ************************************************************************
 
 (require 'hpath)
+(require 'hypb)
 (require 'set)
 
 ;;; ************************************************************************
@@ -91,7 +92,7 @@ interactive form or takes no arguments."
 
 (defun hargs:delimited (start-delim end-delim
                        &optional start-regexp-flag end-regexp-flag 
list-positions-flag)
-  "Returns a single line, delimited string that point is within, or nil.
+  "Returns a normalized, single line, delimited string that point is within, 
or nil.
 START-DELIM and END-DELIM are strings that specify the argument
 delimiters.  With optional START-REGEXP-FLAG non-nil, START-DELIM is
 treated as a regular expression.  END-REGEXP-FLAG is similar.
@@ -115,7 +116,8 @@ With optional LIST-POSITIONS-FLAG, return list of 
(string-matched start-pos end
                  (funcall end-search-func end-delim opoint t))
        (setq start nil))
       (when start
-       (end-of-line) (setq limit (1+ (point)))
+       (forward-line 2)
+       (setq limit (point))
        (goto-char opoint)
        (and (funcall end-search-func end-delim limit t)
             (setq end (match-beginning 0))
@@ -126,9 +128,10 @@ With optional LIST-POSITIONS-FLAG, return list of 
(string-matched start-pos end
                 (setq end (1- end))
               t)
             (< start end)
-            (if list-positions-flag
-                (list (buffer-substring start end) start end)
-              (buffer-substring start end)))))))
+            (let ((string (hypb:replace-match-string "[\n\r]\\s-*" 
(buffer-substring start end) " " t)))
+              (if list-positions-flag
+                  (list string start end)
+                string)))))))
 
 (defun hargs:get (interactive-entry &optional default prior-arg)
   "Prompts for an argument, if need be, from INTERACTIVE-ENTRY, a string.
diff --git a/hpath.el b/hpath.el
index 609da6e..695a079 100644
--- a/hpath.el
+++ b/hpath.el
@@ -494,7 +494,7 @@ double quotes, open and close single quote, whitespace, or 
Texinfo file referenc
 With optional NON-EXIST, nonexistent local paths are allowed.  Absolute 
pathnames must begin with a `/' or `~'."
   (or (hargs:delimited "\"" "\"") 
       ;; Filenames in Info docs or Python files
-      (hargs:delimited "[\`\']" "\'" t)
+      (hargs:delimited "[`'‘]" "[`'’]" t t)
       ;; Filenames in TexInfo docs
       (hargs:delimited "@file{" "}")
       ;; Any existing whitespace delimited filename at point.
@@ -1217,10 +1217,10 @@ Returns \"anonymous\" if no default user is set."
        (t "anonymous")))
 
 (defun hpath:delete-trailer (string)
-  "Return string minus any trailing .?#!*() characters."
+  "Return string minus any trailing .?#!*() or quoting characters."
   (save-match-data
     (if (and (stringp string) (> (length string) 0)
-            (string-match "[.?#!*()]+\\'" string))
+            (string-match "[.?#!*()`'\"]+\\'" string))
        (substring string 0 (match-beginning 0))
       string)))
 
diff --git a/hsettings.el b/hsettings.el
index e5bfa79..37a26cc 100644
--- a/hsettings.el
+++ b/hsettings.el
@@ -107,6 +107,16 @@ down a windowful."
   (hyperbole-menubar-menu)
   (hyperbole-minibuffer-menu))
 
+(defun hyperbole-read-web-search-arguments (&optional service-name search-term)
+  "Read from the keyboard a list of (web-search-service-string 
search-term-string) if not given as arguments."
+  (let ((completion-ignore-case t))
+    (while (or (not (stringp service-name)) (equal service-name ""))
+      (setq service-name (completing-read "Search service: " 
hyperbole-web-search-alist
+                                         nil t)))
+    (while (or (not (stringp search-term)) (equal search-term ""))
+     (setq search-term (read-string (format "Search %s for: " service-name))))
+    (list service-name search-term)))
+
 (defun hyperbole-web-search (&optional service-name search-term)
   "Search web SERVICE-NAME for SEARCH-TERM.
 Both arguments are optional and are prompted for when not given or when null.
@@ -114,20 +124,14 @@ Uses `hyperbole-web-search-alist' to match each service 
to its search url.
 Uses `hyperbole-web-search-browser-function' and the `browse-url'
 package to display search results."
   (interactive)
-  (let ((completion-ignore-case t))
-    (while (or (not (stringp service-name)) (equal service-name ""))
-      (setq service-name (completing-read "Search service: " 
hyperbole-web-search-alist
-                                         nil t))))
-  (while (or (not (stringp search-term)) (equal search-term ""))
-    (setq search-term (read-string (format "Search %s for: " service-name))))
-  (if (assoc service-name hyperbole-web-search-alist)
-      (let ((browse-url-browser-function
-            hyperbole-web-search-browser-function))
-       (browse-url
-        (format (cdr (assoc service-name hyperbole-web-search-alist))
-                search-term)))
-    (user-error "(Hyperbole): Invalid web search service `%s' or search term 
`%s'"
-               service-name search-term)))
+  (cl-multiple-value-bind (service-name search-term)
+      (hyperbole-read-web-search-arguments service-name search-term)
+    (if (assoc service-name hyperbole-web-search-alist)
+       (let ((browse-url-browser-function
+              hyperbole-web-search-browser-function))
+         (browse-url (format (cdr (assoc service-name 
hyperbole-web-search-alist))
+                             search-term)))
+      (user-error "(Hyperbole): Invalid web search service `%s'" 
service-name))))
 
 (defcustom hyperbole-web-search-browser-function browse-url-browser-function
   "*Function of one url argument called by any Hyperbole Find/Web search."
diff --git a/hversion.el b/hversion.el
index 949d252..7242de6 100644
--- a/hversion.el
+++ b/hversion.el
@@ -23,7 +23,7 @@
 ;;; Public variables
 ;;; ************************************************************************
 
-(defconst hyperb:version "6.0.1" "GNU Hyperbole revision number.")
+(defconst hyperb:version "6.0.2" "GNU Hyperbole revision number.")
 
 ;;;###autoload
 (defvar hyperb:microcruft-os-p
diff --git a/hyperbole.el b/hyperbole.el
index a3d4fab..7a952ca 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -6,8 +6,8 @@
 ;; Maintainer:       Bob Weiner <address@hidden>
 ;;                  Mats Lidell <address@hidden>
 ;; Created:          06-Oct-92 at 11:52:51
-;; Released:         27-Jul-16
-;; Version:          6.0.1
+;; Released:         09-Aug-16
+;; Version:          6.0.2
 ;; Keywords:         comm, convenience, files, frames, hypermedia, languages, 
mail, matching, mouse, multimedia, outlines, tools, wp
 ;; Package:          hyperbole
 ;; Package-Requires: ((emacs "24.4"))
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 15dd09a..c615436 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -152,7 +152,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
 
 <PRE>
 Edition 6.0.2
-Printed August 8, 2016.
+Printed August 9, 2016.
 
   Published by the Free Software Foundation, Inc.
   Author:    Bob Weiner
@@ -176,7 +176,7 @@ Printed August 8, 2016.
 
 @center The Everyday Hypertextual Information Manager
 
address@hidden Edition 6.0.2, August 8, 2016.
address@hidden Edition 6.0.2, August 9, 2016.
 
 @sp 2
 @noindent
@@ -443,7 +443,7 @@ Smart Keyboard Keys
 @chapter Introduction
 
 This edition of the GNU Hyperbole Manual is for use with any version
-6.01 or greater of GNU Hyperbole.  Hyperbole runs atop GNU Emacs 24.3
+6.0.2 or greater of GNU Hyperbole.  Hyperbole runs atop GNU Emacs 24.3
 or higher.  It will trigger an error if your Emacs is older.
 
 This chapter summarizes the structure of the rest of the manual,
@@ -1566,6 +1566,14 @@ Returns @samp{t} if found, @samp{nil} if not.
 @item link-to-texinfo-node
 Displays the Texinfo node with NODENAME (a string) from the current buffer.
 
address@hidden actypes link-to-web-search
address@hidden link, web search
address@hidden web search link
address@hidden link-to-web-search
+Searches web SERVICE-NAME for SEARCH-TERM.  Uses 
@code{hyperbole-web-search-alist}
+to match each service to its search url.  Uses 
@code{hyperbole-web-search-browser-function}
+and the @code{browse-url} package to display search results.
+
 @findex actypes man-show
 @vindex sm-notify
 @item man-show
diff --git a/man/version.texi b/man/version.texi
index 770e7c8..c78c2a1 100644
--- a/man/version.texi
+++ b/man/version.texi
@@ -1,4 +1,4 @@
address@hidden UPDATED August 8, 2016
address@hidden UPDATED August 9, 2016
 @set UPDATED-MONTH AUG 2016
 @set EDITION 6.0.2
 @set VERSION 6.0.2



reply via email to

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