elpher.git
3 years agoMake byte-compiler happy again
Étienne Deparis [Sun, 25 Jul 2021 14:17:40 +0000 (16:17 +0200)]
Make byte-compiler happy again

Also alphabetically sort function and variable names

3 years agoCleanup.
plugd [Sat, 24 Jul 2021 21:05:08 +0000 (23:05 +0200)]
Cleanup.

3 years agoPrevent corruption of ansi interpreter state.
plugd [Sat, 24 Jul 2021 20:59:18 +0000 (22:59 +0200)]
Prevent corruption of ansi interpreter state.

3 years agoMoved variable closer to use.
plugd [Sat, 24 Jul 2021 20:59:01 +0000 (22:59 +0200)]
Moved variable closer to use.

3 years agoFixed rogue connection timer issue.
plugd [Sat, 24 Jul 2021 20:08:00 +0000 (22:08 +0200)]
Fixed rogue connection timer issue.

3 years agoRemoved unused regexp and fixed spelling error.
plugd [Sat, 24 Jul 2021 20:07:33 +0000 (22:07 +0200)]
Removed unused regexp and fixed spelling error.

3 years agoUpdated bookmarks section of manual.
plugd [Fri, 23 Jul 2021 13:35:24 +0000 (15:35 +0200)]
Updated bookmarks section of manual.

3 years agoAdded automatic importing of legacy bookmarks files.
plugd [Fri, 23 Jul 2021 13:26:11 +0000 (15:26 +0200)]
Added automatic importing of legacy bookmarks files.

3 years agoImproved behaviour of history-all/visited-pages.
plugd [Fri, 23 Jul 2021 12:29:57 +0000 (14:29 +0200)]
Improved behaviour of history-all/visited-pages.

3 years ago(Temporarily?) removed link numbering code.
plugd [Fri, 23 Jul 2021 08:31:27 +0000 (10:31 +0200)]
(Temporarily?) removed link numbering code.

3 years agoREADME edit.
plugd [Fri, 23 Jul 2021 08:17:44 +0000 (10:17 +0200)]
README edit.

3 years agoUpdated issues file.
plugd [Fri, 23 Jul 2021 08:12:52 +0000 (10:12 +0200)]
Updated issues file.

3 years agoBack to original g,o,O bindings.
plugd [Thu, 22 Jul 2021 14:23:31 +0000 (16:23 +0200)]
Back to original g,o,O bindings.

3 years agoEmphasise Alex's contributions in the README.
plugd [Thu, 22 Jul 2021 10:19:16 +0000 (12:19 +0200)]
Emphasise Alex's contributions in the README.

3 years agoSwitched version number to 3.0.0.
plugd [Thu, 22 Jul 2021 10:14:06 +0000 (12:14 +0200)]
Switched version number to 3.0.0.

3 years agoMore delinting.
plugd [Thu, 22 Jul 2021 09:20:44 +0000 (11:20 +0200)]
More delinting.

3 years agoReplaced link to bookmarks on start page.
plugd [Thu, 22 Jul 2021 08:32:54 +0000 (10:32 +0200)]
Replaced link to bookmarks on start page.

3 years agoMore de-linting.
plugd [Wed, 21 Jul 2021 22:36:46 +0000 (00:36 +0200)]
More de-linting.

3 years agoImproved keybinding compatibility between evil/non-evil.
plugd [Wed, 21 Jul 2021 21:36:51 +0000 (23:36 +0200)]
Improved keybinding compatibility between evil/non-evil.

3 years agoRefactored and expanded link factoring to apply to non-gemini pages.
plugd [Wed, 21 Jul 2021 20:08:59 +0000 (22:08 +0200)]
Refactored and expanded link factoring to apply to non-gemini pages.

3 years agoSome linting.
plugd [Wed, 21 Jul 2021 16:49:09 +0000 (18:49 +0200)]
Some linting.

3 years agoMerge patches curated by Alex.
plugd [Wed, 21 Jul 2021 16:19:51 +0000 (18:19 +0200)]
Merge patches curated by Alex.

3 years agoFixed bugs introduced by last commit.
plugd [Tue, 20 Jul 2021 15:20:07 +0000 (17:20 +0200)]
Fixed bugs introduced by last commit.

3 years agoMisplaced url-unhex was causing trouble.
plugd [Mon, 19 Jul 2021 17:15:41 +0000 (19:15 +0200)]
Misplaced url-unhex was causing trouble.

3 years agoVersion bump. v2.10.3
plugd [Sun, 18 Jul 2021 17:52:06 +0000 (19:52 +0200)]
Version bump.

3 years agoAdded edebug specification for a macro.
plugd [Sun, 18 Jul 2021 17:50:54 +0000 (19:50 +0200)]
Added edebug specification for a macro.

3 years agoHeader-wrapping code was broken for terminal emacs.
plugd [Sun, 18 Jul 2021 17:50:26 +0000 (19:50 +0200)]
Header-wrapping code was broken for terminal emacs.

3 years agoReplaced GUS link with geminispace.info link.
plugd [Fri, 16 Jul 2021 14:45:17 +0000 (16:45 +0200)]
Replaced GUS link with geminispace.info link.

3 years agoAdd history documentation to the info manual
Alex Schroeder [Mon, 12 Jul 2021 06:48:06 +0000 (08:48 +0200)]
Add history documentation to the info manual

Added Daniel Semyonov and Alex Schroeder to the copyright notice.

Removed bookmarks from the Elpher features in the introduction.
Mentioned C-u M-x elpher to create multiple Elpher sessions.

Mentioned the two histories Elpher maintains and document h/H.

3 years agoAdd local and global history menus using h/H
Alex Schroeder [Sun, 11 Jul 2021 21:10:59 +0000 (23:10 +0200)]
Add local and global history menus using h/H

3 years agoReplace Elpher bookmarks with Emacs bookmarks
Alex Schroeder [Tue, 29 Jun 2021 12:33:42 +0000 (14:33 +0200)]
Replace Elpher bookmarks with Emacs bookmarks

The keybindings for x and X disappear. M-x elpher-import-bookmarks
imports the old bookmarks into regular Emacs bookmarks. This deletes
all the old code related to bookmarks! This is a big change.

Update the manual to reflect this.

Add Makefile rules to make HTML and PDF files. Fix the texinfo file.
For the PDF output, we cannot use @kbd inside @keycmd, so the entry
for elpher-prev-link cannot use @keycmd, in order to typeset Shift-TAB
correctly.

3 years agoRevert "Remove an unused local variable"
Alex Schroeder [Wed, 7 Jul 2021 21:26:46 +0000 (23:26 +0200)]
Revert "Remove an unused local variable"

This reverts commit 914f190a3d33214d43d0d1014e65ae022460299b.

fill-prefix is required for adaptive-fill-mode to work correctly when
filling list items that are more than one line.

3 years agoAllow elpher-go to work without an Elpher ebuffer
Alex Schroeder [Tue, 6 Jul 2021 17:31:32 +0000 (19:31 +0200)]
Allow elpher-go to work without an Elpher ebuffer

If elpher-go is the first thing you do, and no *elpher* buffer exists,
you run into an error. Wrapping elpher-visit-page in
elpher-with-clean-buffer fixes this, as this sets up the *elpher*
buffer, and sets elpher-mode.

Alternatively, we could also just set elpher-mode. The key is that we
must do it before elpher-visit-page is called, otherwise this is what
happens: elpher-go → elpher-visit-page → elpher-render-gemini via
elpher-type-map → elpher-render-gemini-map → elpher-with-clean-buffer
which now calls elpher-mode, wiping all the local variables. If,
however, we make sure elpher-mode is active before all of this,
elpher-with-clean-buffer when called from elpher-render-gemini-map
will not call elpher-mode and the local variables remain set.

3 years agoAdd defun to make the start page
Alex Schroeder [Tue, 6 Jul 2021 17:30:44 +0000 (19:30 +0200)]
Add defun to make the start page

Change the two places where a start-page is made to use it.

3 years agoChange browse-url advice for older releases
Alex Schroeder [Fri, 2 Jul 2021 07:31:33 +0000 (09:31 +0200)]
Change browse-url advice for older releases

package does not offer browse-url-default-handlers, but if you set
The code used to advise browse-url-default-browser if your browse-url
browse-url-browser-function to something else, like eww-browse-url,
then that advice did not apply. The code now advises the function set
in the browse-url-browser-function variable, meaning that it should
advise the right function.

Also added a small doc string to the lambda used as advice.

3 years agoSmall documentation fixes
Daniel Semyonov [Wed, 30 Jun 2021 22:47:08 +0000 (01:47 +0300)]
Small documentation fixes

3 years agoAdd missing auto-generated files to .gitignore
Daniel Semyonov [Wed, 30 Jun 2021 23:13:09 +0000 (02:13 +0300)]
Add missing auto-generated files to .gitignore

3 years agoRemove 'with-eval-after-load' block for 'browse-url'
Daniel Semyonov [Wed, 30 Jun 2021 23:09:45 +0000 (02:09 +0300)]
Remove 'with-eval-after-load' block for 'browse-url'

It is not necessary (tested with 'emacs -Q').

3 years agoOrganize integrations section
Daniel Semyonov [Wed, 30 Jun 2021 22:48:33 +0000 (01:48 +0300)]
Organize integrations section

Mark different sections with comments.
Move all declarations for byte compilation to 'eval-when-compile'
blocks at the start of the appropriate sections.

3 years agoBackfill read-answer for Emacs 26.1
Alex Schroeder [Wed, 30 Jun 2021 13:11:05 +0000 (15:11 +0200)]
Backfill read-answer for Emacs 26.1

3 years agoEnable adaptive-fill-mode
Alex Schroeder [Wed, 30 Jun 2021 12:30:45 +0000 (14:30 +0200)]
Enable adaptive-fill-mode

When filling long list items or quotes, all lines except for the first
one should be indented by two spaces. Adaptive fill mode handles that.

3 years agoFix browse-url for not up-to-date Emacs version
Étienne Deparis [Wed, 30 Jun 2021 07:54:02 +0000 (09:54 +0200)]
Fix browse-url for not up-to-date Emacs version

On archlinux, even with Emacs 27.2, browse-url package still does not have
browse-url-default-handlers variable.

3 years agoAnother whitespace/indent cleaning
Étienne Deparis [Wed, 30 Jun 2021 07:22:22 +0000 (09:22 +0200)]
Another whitespace/indent cleaning

3 years agoAdd targets in Makefile to build compile lisp file and autoloads
Étienne Deparis [Wed, 30 Jun 2021 07:20:30 +0000 (09:20 +0200)]
Add targets in Makefile to build compile lisp file and autoloads

3 years agoBig refactoring of org related functions
Étienne Deparis [Wed, 30 Jun 2021 07:14:45 +0000 (09:14 +0200)]
Big refactoring of org related functions

3 years agoSupport elpher in mu4e
Étienne Deparis [Mon, 28 Jun 2021 17:01:27 +0000 (19:01 +0200)]
Support elpher in mu4e

3 years agoAdd back with-eval-after-load
Étienne Deparis [Wed, 30 Jun 2021 07:03:30 +0000 (09:03 +0200)]
Add back with-eval-after-load

- It avoid non-mandatory requirements
- Use feature instead of filename for with-eval-after-load, compared to the
  historic implementation

3 years agoCleanup 'thing-at-point' integration
Daniel Semyonov [Tue, 29 Jun 2021 15:31:33 +0000 (18:31 +0300)]
Cleanup 'thing-at-point' integration

Don't use 'with-eval-after-load'.

3 years agoCleanup Org integration
Daniel Semyonov [Tue, 29 Jun 2021 15:07:54 +0000 (18:07 +0300)]
Cleanup Org integration

Remove uses of 'with-eval-after-load'.
Remove compatibility with old versions of Org (also bump required
Emacs version to 27.1 accordingly).

3 years agoCleanup 'browse-url' integration
Daniel Semyonov [Tue, 29 Jun 2021 15:02:51 +0000 (18:02 +0300)]
Cleanup 'browse-url' integration

Rename 'browse-url-elpher' to 'elpher-browse-url-elpher'.
Autoload 'elpher-browse-url-elpher'.

3 years agoCleanup various parts of the package
Daniel Semyonov [Tue, 29 Jun 2021 14:59:02 +0000 (17:59 +0300)]
Cleanup various parts of the package

Add more places which need version bumps in RELEASE.
Ensure most warnings and errors reported by the byte compiler,
checkdoc and package-lint are fixed (only cosmetic changes).
Small fixes to the manual.

3 years agoDouble or drop single non-escape regexp backslashes
F. Jason Park [Wed, 3 Mar 2021 09:47:32 +0000 (01:47 -0800)]
Double or drop single non-escape regexp backslashes

3 years agoAdd a RELEASE file
Alex Schroeder [Tue, 29 Jun 2021 06:47:22 +0000 (08:47 +0200)]
Add a RELEASE file

What do I need to remember when releasing a new version? Step 1 is to
remember to increase the version number in all the right places.

3 years agoAdd Daniel to contributors, rename makefile
Alex Schroeder [Tue, 29 Jun 2021 06:40:32 +0000 (08:40 +0200)]
Add Daniel to contributors, rename makefile

The GNU Make documentation says "We recommend 'Makefile' because it
appears prominently near the beginning of a directory listing, right
near other important files such as 'README'." Thus the renaming.

3 years agoAdd a makefile
Daniel Semyonov [Tue, 29 Jun 2021 00:40:11 +0000 (03:40 +0300)]
Add a makefile

Contains three targets - info, package and clean:
- info creates the info manual for the package.
- package creates an installable (via 'M-x package-install-file')
  package archive.
- clean cleans any "build artefacts".
The default (all) target is equivalent to the clean target followed by
the package target.
Add 'config.mk' for build configuration.
Add 'elpher-pkg.el' (could possibly be generated in the future),
required to install as a package.

3 years agoMerge remote-tracking branch 'etienne/fix-various' into main
Alex Schroeder [Mon, 28 Jun 2021 16:44:25 +0000 (18:44 +0200)]
Merge remote-tracking branch 'etienne/fix-various' into main

3 years agoUpdate contributors list on README to reflect header of lisp file
Étienne Deparis [Mon, 28 Jun 2021 16:31:31 +0000 (18:31 +0200)]
Update contributors list on README to reflect header of lisp file

3 years agoFix thing-at-point-uri-schemes error
Alex Schroeder [Mon, 28 Jun 2021 16:30:53 +0000 (18:30 +0200)]
Fix thing-at-point-uri-schemes error

3 years agoAvoid anoying error message on homepage when using elpher-go-current
Étienne Deparis [Mon, 28 Jun 2021 16:20:46 +0000 (18:20 +0200)]
Avoid anoying error message on homepage when using elpher-go-current

3 years agoAdvertize which search engine is used for gemini and directly call search URL
Étienne Deparis [Mon, 28 Jun 2021 16:20:31 +0000 (18:20 +0200)]
Advertize which search engine is used for gemini and directly call search URL

3 years agoBump version in defconst elpher-version
Étienne Deparis [Mon, 28 Jun 2021 16:20:14 +0000 (18:20 +0200)]
Bump version in defconst elpher-version

3 years agoSmall typos and doc changes
Alex Schroeder [Mon, 28 Jun 2021 11:37:18 +0000 (13:37 +0200)]
Small typos and doc changes

- URL schema → URL scheme
- drop "internal variable containing"
- replace '() with nil as that seems more idiomatic

3 years agoupdate url for gemini search engine
Omar Polo [Mon, 28 Jun 2021 10:35:17 +0000 (10:35 +0000)]
update url for gemini search engine

GUS is long dead, long live geminispace.info!

3 years agoJump to a heading using imenu
Omar Polo [Mon, 28 Jun 2021 10:31:10 +0000 (10:31 +0000)]
Jump to a heading using imenu

3 years agoexplain better the meaning of default-url-type
Omar Polo [Mon, 28 Jun 2021 10:08:28 +0000 (10:08 +0000)]
explain better the meaning of default-url-type

"URL type" may be misleading (even though it's how emacs calls it)
when it's actually the schema.

3 years agoMerge remote-tracking branch 'upstream/patch_better_evil_bindings' into main
Alex Schroeder [Mon, 28 Jun 2021 05:49:31 +0000 (07:49 +0200)]
Merge remote-tracking branch 'upstream/patch_better_evil_bindings' into main

3 years agoMerge remote-tracking branch 'upstream/patch_cache-gemini-page-links' into main
Alex Schroeder [Mon, 28 Jun 2021 05:44:29 +0000 (07:44 +0200)]
Merge remote-tracking branch 'upstream/patch_cache-gemini-page-links' into main

3 years agoUse xterm-color instead of ansi-color, if possible
Alex Schroeder [Thu, 23 Jul 2020 14:10:29 +0000 (16:10 +0200)]
Use xterm-color instead of ansi-color, if possible

xterm-color isn't part of Emacs, so require it but if it can't be
found, require ansi-color instead. Then use two aliases that point
either the xterm-color code or to ansi-color code.

3 years agoIncrease version, add copyright info for all
Alex Schroeder [Sun, 27 Jun 2021 20:02:21 +0000 (22:02 +0200)]
Increase version, add copyright info for all

3 years agoOnly add to browse-url-default-handlers if defined
Alex Schroeder [Sun, 27 Jun 2021 20:01:43 +0000 (22:01 +0200)]
Only add to browse-url-default-handlers if defined

On some systems, browse-url does not define
browse-url-default-handlers.

3 years agoMerge remote-tracking branch 'upstream/patch_integrate_with_browse_url' into main
Alex Schroeder [Sun, 27 Jun 2021 19:44:02 +0000 (21:44 +0200)]
Merge remote-tracking branch 'upstream/patch_integrate_with_browse_url' into main

3 years agoMerge remote-tracking branch 'upstream/patch_org-link-support' into main
Alex Schroeder [Sun, 27 Jun 2021 19:42:34 +0000 (21:42 +0200)]
Merge remote-tracking branch 'upstream/patch_org-link-support' into main

3 years agoMerge remote-tracking branch 'upstream/patch_cert_regexp' into main
Alex Schroeder [Sun, 27 Jun 2021 19:41:58 +0000 (21:41 +0200)]
Merge remote-tracking branch 'upstream/patch_cert_regexp' into main

3 years agoMerge remote-tracking branch 'upstream/patch_emacs_tty' into main
Alex Schroeder [Sun, 27 Jun 2021 19:41:33 +0000 (21:41 +0200)]
Merge remote-tracking branch 'upstream/patch_emacs_tty' into main

3 years agoMerge remote-tracking branch 'upstream/patch_customizable_default_url_type' into...
Alex Schroeder [Sun, 27 Jun 2021 19:35:25 +0000 (21:35 +0200)]
Merge remote-tracking branch 'upstream/patch_customizable_default_url_type' into main

3 years agoMerge remote-tracking branch 'upstream/patch_disable-gnutls-verify' into main
Alex Schroeder [Sun, 27 Jun 2021 19:34:58 +0000 (21:34 +0200)]
Merge remote-tracking branch 'upstream/patch_disable-gnutls-verify' into main

3 years agoMerge remote-tracking branch 'upstream/patch_fix_crash_in_nox' into main
Alex Schroeder [Sun, 27 Jun 2021 19:34:28 +0000 (21:34 +0200)]
Merge remote-tracking branch 'upstream/patch_fix_crash_in_nox' into main

3 years agoMerge remote-tracking branch 'upstream/patch_add_autoload_token' into main
Alex Schroeder [Sun, 27 Jun 2021 19:32:47 +0000 (21:32 +0200)]
Merge remote-tracking branch 'upstream/patch_add_autoload_token' into main

3 years agoMerge remote-tracking branch 'upstream/patch_fix_bookmark_save_crash_when_dir_missing...
Alex Schroeder [Sun, 27 Jun 2021 19:32:28 +0000 (21:32 +0200)]
Merge remote-tracking branch 'upstream/patch_fix_bookmark_save_crash_when_dir_missing' into main

3 years agoMerge remote-tracking branch 'upstream/patch_gemini_quoted_face' into main
Alex Schroeder [Sun, 27 Jun 2021 19:31:54 +0000 (21:31 +0200)]
Merge remote-tracking branch 'upstream/patch_gemini_quoted_face' into main

3 years agoMerge remote-tracking branch 'upstream/patch_cleanup' into main
Alex Schroeder [Sun, 27 Jun 2021 19:31:18 +0000 (21:31 +0200)]
Merge remote-tracking branch 'upstream/patch_cleanup' into main

3 years agoSupport for C-u elpher to have multiple buffers
Alex Schroeder [Thu, 2 Jul 2020 09:19:55 +0000 (11:19 +0200)]
Support for C-u elpher to have multiple buffers

3 years agoIntegrate with `browse-url`
Jens Östlund [Sat, 8 May 2021 19:49:28 +0000 (21:49 +0200)]
Integrate with `browse-url`

Enable opening gopher, gemini and finger links in Elpher by using
`browse-url`. As part of this functionality "gemini://" is registered
as a `thing-at-point` URI scheme so gemini links are interpreted as
URLs.

3 years agoStore and follow elpher links in org-mode
Jens Östlund [Sat, 8 May 2021 18:42:20 +0000 (20:42 +0200)]
Store and follow elpher links in org-mode

Store an elpher page org link by executing `org-store-link` and follow
an elpher link within an org-mode buffer by executing
`org-open-at-point`.

Supports gopher, gemini and finger links.

3 years agoFix .key regexp for listing existing certs
F. Jason Park [Thu, 25 Feb 2021 23:51:38 +0000 (15:51 -0800)]
Fix .key regexp for listing existing certs

3 years agoFix "wrong type argument" messages when fetching from Gemini.
Christopher Brannon [Fri, 19 Feb 2021 03:15:13 +0000 (19:15 -0800)]
Fix "wrong type argument" messages when fetching from Gemini.

This is a problem that has affected people using elpher under emacs
in a tty.  I tracked down the cause.  The header filling calculations
fail because the tty font doesn't have a :size property.

There's another proposed fix in patch_header_text_termina, but I
couldn't get that one to work.

3 years agomake default protocol customizable
Omar Polo [Sat, 30 Jan 2021 09:00:06 +0000 (10:00 +0100)]
make default protocol customizable

This adds a defcustom to let user choose what default URL type elpher
should assume when no one is explicitly given, instead of hardcoding
gopher as it is now.

It also improves a bit how scheme-less URL are handled: `M-x elpher-go
example.com/foo/bar' is now parsed into host `example.com' and path
`/foo/bar'.

3 years agoDisable gnutls error verification
Noodles! [Fri, 8 Jan 2021 04:50:52 +0000 (11:50 +0700)]
Disable gnutls error verification

Gemini sites timeout if the user has gnutls-verify-error set.

3 years agoRemove another forgotten and useless local variable
Étienne Deparis [Mon, 7 Dec 2020 17:38:08 +0000 (18:38 +0100)]
Remove another forgotten and useless local variable

It also avoid a crash when displaying page in Emacs without X support

3 years agoAvoid a crash when displaying page in Emacs without X support
Étienne Deparis [Mon, 7 Dec 2020 17:38:08 +0000 (18:38 +0100)]
Avoid a crash when displaying page in Emacs without X support

3 years agoAdd autoload token to ‘elpher-go’ and ‘elpher-bookmarks’ functions
Étienne Deparis [Tue, 24 Nov 2020 12:40:47 +0000 (13:40 +0100)]
Add autoload token to ‘elpher-go’ and ‘elpher-bookmarks’ functions

3 years agoAvoid a crash when saving a new bookmark and elpher-bookarks-file dir is missing
Étienne Deparis [Tue, 24 Nov 2020 07:49:20 +0000 (08:49 +0100)]
Avoid a crash when saving a new bookmark and elpher-bookarks-file dir is missing

As the ‘elpher-bookmarks-file’ is customizable, one can set it to a
non-existent dir (like ‘~/.emacs.d/etc/elpher/bookrmarks’). This commit just
check that the directory part of ‘elpher-bookrmarks-file’ exists before trying
to save it.

4 years agoAdd a new face to customize quoted texts in gemini pages
Étienne Deparis [Sat, 21 Nov 2020 18:03:32 +0000 (19:03 +0100)]
Add a new face to customize quoted texts in gemini pages

4 years agoRemove an unused local variable
Étienne Deparis [Sat, 21 Nov 2020 18:02:13 +0000 (19:02 +0100)]
Remove an unused local variable

4 years agoRemove some trailing whitespaces
Étienne Deparis [Sat, 21 Nov 2020 17:55:43 +0000 (18:55 +0100)]
Remove some trailing whitespaces

4 years agoProvide an option to visit clearnet sites over Tor
Simon Nicolussi [Sun, 4 Oct 2020 16:34:28 +0000 (18:34 +0200)]
Provide an option to visit clearnet sites over Tor

Simply reuse the mechanism to access onion services, with all of its
disadvantages (e.g., connections are opened synchronously).

4 years agoAccess onion services by a SOCKS proxy (e.g., Tor)
Simon Nicolussi [Sun, 4 Oct 2020 15:17:53 +0000 (17:17 +0200)]
Access onion services by a SOCKS proxy (e.g., Tor)

To test this, start the Tor daemon (tor), set the variable socks-server
to the list ("Tor" "localhost" 9050 5), and visit some onion service.

The socks library of Emacs provides a (very limited) alternative to the
regular open-network-stream function. Some of those limitations can be
mitigated by setting the respective options (e.g., the coding system)
later on, instead of when creating the network process object. This is
now done for both indirect and direct connections, for consistency.

TLS is a special case, as the initial connection to the SOCKS server is
typically unencrypted: TLS negotiation only takes place after the proxy
established a connection to the target. The force-ipv4 option is also
a special case, as it is ignored (it obviously cannot work with Tor).

The most serious limitation of the socks library is that opening the
network stream happens synchronously. For this reason, create the timer
before calling socks-open-network-stream. The sentinel function is also
not called automatically in the case of a synchronous open, so call it
explicitly. The appearance of a hanging Emacs is not ideal (even though
users should always be able to abort connection attempts with C-g), but
any improvement probably requires changes in the socks library.

4 years agoFixed reported version number. (Sigh.)
Tim Vaughan [Sat, 19 Sep 2020 10:25:54 +0000 (12:25 +0200)]
Fixed reported version number. (Sigh.)

4 years agoVersion bump. v2.10.2
Tim Vaughan [Sat, 19 Sep 2020 10:09:45 +0000 (12:09 +0200)]
Version bump.

4 years agoMerged Alex Schroeder's header-filling patch. Thanks!!
Tim Vaughan [Sat, 19 Sep 2020 10:08:06 +0000 (12:08 +0200)]
Merged Alex Schroeder's header-filling patch.  Thanks!!