Commit graph

652 commits

Author SHA1 Message Date
Paul Eggert
fdcf46d33e Merge from origin/emacs-25
0377fe2 ; Spelling fixes
f253695 Update docs for `customize-mode'
4395aaa Fix documentation of 'assoc-string' and 'compare-strings'
ab0ebb9 ; Only load .elc file in tests.
a98aa02 Error on multibyte characters in HTTP request
ea512a7 * lisp/gnus/mm-decode.el (mm-convert-shr-links): Mask keys th...
8297331 ; Revert "Ensure undo-boundary after insert-file-contents."
dc5e65b Unset GIT_DIR when calling Git commands
6cdd8f7 Ensure undo-boundary after insert-file-contents.
4793f5f Clarify documentation of 'line-spacing' and 'line-height'
5f37572 Fix removal of variables from process-environment
e5e886d * admin/authors.el (authors-ignored-files, authors-valid-file...
db0777b * admin/authors.el (authors-aliases, authors-fixed-case): Add...

# Conflicts:
#	doc/lispref/modes.texi
#	lisp/gnus/mm-decode.el
2016-06-26 00:16:25 +02:00
Dmitry Gutov
a98aa02a5d Error on multibyte characters in HTTP request
* lisp/url/url-http.el (url-http-create-request): Check the
constructed request in the end to verify that it does not contain
multibyte characters (bug#23750).
2016-06-22 21:20:23 +03:00
Dmitry Gutov
07a986ea7e ; Revert "Prohibit multibyte characters in url-http-data"
This reverts commit 2ede29575f.

In favor of a better solution to be pushed to emacs-25.
2016-06-22 21:10:11 +03:00
Dmitry Gutov
2ede29575f Prohibit multibyte characters in url-http-data
It didn't work anyway, but this makes any such errors more obvious
by catching them earlier.

* lisp/url/url-http.el (url-http-create-request):
Use string-to-unibyte (bug#23750).
2016-06-19 21:06:39 +03:00
Stefan Monnier
276a6545ad * lisp/url/url-http.el: Use lexical-binding
(url-http-simple-after-change-function): Use buffer-size rather than `nd'.
(url-http-wait-for-headers-change-function): Remove unused var
`content-length'.
(url-http): Remove unused vars `host' and `port'.
2016-05-23 20:09:33 -04:00
Paul Eggert
ccd5156c42 Pacify byte-compiler in lisp/url
* lisp/url/url-misc.el, lisp/url/url-file.el (mm-disable-multibyte):
Add decl.
2016-05-18 00:49:29 -07:00
Paul Eggert
65c8c7cb96 Pacify ‘make check-declare’
* lisp/cedet/srecode/insert.el (data-debug-new-buffer)
(data-debug-insert-stuff-list, data-debug-insert-thing):
* lisp/emulation/viper-ex.el (viper-change-state-to-vi)
(viper-change-state-to-emacs):
* lisp/emulation/viper-macs.el (viper-change-state-to-vi):
* lisp/org/ob-asymptote.el (orgtbl-to-generic):
* lisp/org/ob-awk.el (orgtbl-to-generic):
* lisp/org/ob-core.el (org-edit-src-code, orgtbl-to-generic):
* lisp/org/ob-emacs-lisp.el (orgtbl-to-generic):
* lisp/org/ob-exp.el (org-element-context):
* lisp/org/ob-gnuplot.el (org-time-string-to-time)
(orgtbl-to-generic):
* lisp/org/ob-haskell.el (org-export-to-file):
* lisp/org/ob-latex.el (org-create-formula-image)
(org-latex-compile):
* lisp/org/ob-python.el (run-python):
* lisp/org/ob-sh.el (orgtbl-to-generic):
* lisp/org/ob-tangle.el (org-link-escape, org-back-to-heading):
* lisp/org/org-colview.el (org-agenda-redo):
* lisp/org/org-feed.el (url-retrieve-synchronously):
* lisp/org/org-info.el (Info-find-node):
* lisp/org/org-list.el (org-previous-line-empty-p):
* lisp/org/org-macs.el (org-string-match-p):
* lisp/org/org.el (org-beamer-mode):
Fix prototype to match current definition.
* lisp/emacs-lisp/advice.el (function-called-at-point):
* lisp/progmodes/prolog.el (compilation-shell-minor-mode):
Fix typo: extra '.
* lisp/emacs-lisp/cl-generic.el (cl-defmethod):
Insert ,' to pacify check-declare.
* lisp/org/ob-comint.el (tramp-flush-directory-property):
* lisp/org/ob-tangle.el (org-babel-update-block-body):
* lisp/org/org-bibtex.el (org-babel-trim):
* lisp/org/org-pcomplete.el (org-export-backend-options):
* lisp/org/org-protocol.el (org-publish-get-project-from-filename):
Fix file name in declare-function.
* lisp/org/ob-comint.el (with-parsed-tramp-file-name)
* lisp/org/ob-core.el (with-parsed-tramp-file-name):
* lisp/org/org.el (org-beamer-mode):
* lisp/url/url-http.el (gnutls-negotiate):
Append ‘t’ to declare-function, since the declaration isn’t a defun.
* lisp/org/ob-core.el (show-all):
Declare outline-show-all instead, since it is the
non-obsolete version of this function.
(org-save-outline-visibility): Remove; not needed.
* lisp/org/ob-scheme.el (run-geiser, geiser-mode)
(geiser-eval-region, geiser-repl-exit):
* lisp/org/ox-org.el (htmlize-buffer):
Prepend "ext:" to file name, since it is not part of Emacs.
* lisp/org/ob-sh.el (org-babel-comint-in-buffer)
* lisp/org/org-gnus.el (nnimap-group-overview-filename):
Remove decl, since function was removed.
* lisp/org/ob-sh.el (org-babel-comint-with-output):
* lisp/org/org-macro.el (org-with-wide-buffer):
Omit unnecessary (and mismatching) decl.
* lisp/org/org-agenda.el (calendar-absolute-from-iso):
* lisp/org/org-clock.el (calendar-iso-to-absolute):
Declare calendar-iso-to-absolute instead, since it is the
non-obsolete version of this function.
* lisp/org/org-compat.el (w32-focus-frame):
Remove decl, since function is now obsolete.
2016-05-14 19:57:44 -07:00
Eli Zaretskii
586b21393f * lisp/url/url.el (url-retrieve-synchronously): Doc fix. (Bug#23411) 2016-05-01 18:24:51 +03:00
Tao Fang
7b9a5c2a45 Fix: (void-variable url-http-response-status)
* lisp/url/url-http.el
(url-https-proxy-after-change-function): Display the error
message before doing the callback to avoid a void variable
situation (bug#23290).
2016-04-26 01:24:44 +02:00
Lars Magne Ingebrigtsen
77ba0f1c5a `url-retrieve-synchronously' now takes an optional timeout parameter
* doc/misc/url.texi (Retrieving URLs): Document optional parameters.

* lisp/url/url.el (url-retrieve-synchronously): Allow passing
in a timeout parameter (bug#22940).
2016-04-26 00:47:51 +02:00
Clément Pit--Claudel
234ef3b432 Compute User-Agent dynamically in url-http
* url-http.el (url-http-user-agent-string): Compute User-Agent
string dynamically.
(url-http--user-agent-default-string): New function.

* url-vars.el (url-privacy-level): Allow `emacs' in list of
information not to send.
(url-user-agent): Add nil and `default' options; do not
pre-compute value.
2016-04-24 14:51:33 +02:00
Lars Magne Ingebrigtsen
0d7aad1b30 Revert "Backport HTTPS proxy fix"
This reverts commit 2d1a6054b1.

It's too late in the Emacs 25 release cycle to add things like this to
Emacs 25.1.  It's border line new feature.
2016-04-06 18:36:18 +02:00
Tao Fang
2d1a6054b1 Backport HTTPS proxy fix
Cherry-picked from 3c623c26ae

Backport:
2016-04-06 13:45:26 +02:00
Tao Fang
3c623c26ae Allow URL using HTTPS proxies using CONNECT
* lisp/url/url-http.el (url-http-find-free-connection): Allow
using proxies (bug#11788).
(url-http-end-of-document-sentinel): Ditto.
(url-http): The protocol may change from http to https and
vice versa.
(url-https-proxy-connect): Allow using CONNECT proxies for https.
2016-04-04 22:21:34 +02:00
Lars Ingebrigtsen
7c1e6ebfcb Allow binding `url-mime-accept-string'
* lisp/url/url-http.el (url-http): Allow binding
`url-mime-accept-string' (bug#22855).

Backport:

(cherry picked from commit 144bb0cf32)
2016-03-01 14:50:01 +11:00
Lars Ingebrigtsen
144bb0cf32 Allow binding `url-mime-accept-string'
* lisp/url/url-http.el (url-http): Allow binding
`url-mime-accept-string' (bug#22855).
2016-03-01 14:49:26 +11:00
Lars Ingebrigtsen
dfcdc1cbed Allow deleting all non-matching cookies
* lisp/url/url-cookie.el (url-cookie-delete-cookies): Allow
keeping matching cookies (bug#22720).
2016-02-23 12:51:24 +11:00
Lars Ingebrigtsen
f577f59a52 Fix merge conflicts in network-stream-tests.el 2016-02-22 15:06:33 +11:00
Lars Ingebrigtsen
3e67708d72 Add a function to delete URL cookies
* doc/misc/url.texi (Cookies): Document
url-cookie-delete-cookies.

* lisp/url/url-cookie.el (url-cookie-delete-cookies): New function.
2016-02-21 16:57:04 +11:00
Lars Ingebrigtsen
1bbffcd9d7 Remove debugging 2016-02-16 13:24:47 +11:00
Lars Ingebrigtsen
7f3441cc33 Do most of the coding system setup earlier
* src/process.c (Fmake_network_process): Set the read/write
coding systems here, so that special bindings work.
(Fmake_network_process): Complete the coding system setup here.
2016-02-16 13:01:05 +11:00
Lars Ingebrigtsen
204847702b Use :nowait t in url-gw
* lisp/url/url-gw.el (url-open-stream): Just use :nowait t,
since we're not differentiating.
2016-02-15 15:59:49 +11:00
Lars Ingebrigtsen
da66e55850 Ensure progress when fetching from the queue
* lisp/url/url-queue.el (url-queue-check-progress): Ensure
that we have progress when fetching queued requests (bug#22576).
2016-02-08 17:13:01 +11:00
Lars Ingebrigtsen
12702b312b Make url.el use async DNS
* lisp/url/url-gw.el (url-open-stream): Use non-blocking DNS.

* src/process.c (syms_of_process): Add a `dns' subfeature for
make-network-process.
2016-02-05 14:03:26 +11:00
Nicolas Petton
46dfdd831b Do not ignore redirections of 301, 302 and 307 status codes
The current version of HTTP/1.1 (RFC 7231) no longer requires
confirmation on 301, 302 or 307 status codes, therefore we do not have
to ignore redirects for other requests than GET and HEAD.

* lisp/url/url-http.el (url-http-parse-headers): Do not ignore 301, 302
and 307 redirects for other requests than GET and HEAD.
2016-02-04 21:43:42 +01:00
Lars Ingebrigtsen
cecf6c9ac5 Rework the mechanisms for async GnuTLS connections
* lisp/net/gnutls.el (open-gnutls-stream): Compute the
gnutls-boot parameters and pass them to the process object.
(gnutls-negotiate): New parameter :return-keywords that won't
connect to anything, just compute the keywords.

* lisp/url/url-http.el (url-http): Revert async TLS sentinel
hack, which is no longer necessary.

* src/gnutls.c (Fgnutls_asynchronous_parameters): Rename from
gnutls-mark-process.

* src/process.c (connect_network_socket): If we're connecting to
an asynchronous TLS socket, complete the GnuTLS boot sequence here.

* src/process.h: New parameter gnutls_async_parameters.
2016-01-31 02:32:21 +01:00
Lars Ingebrigtsen
0f47153b97 Implement asynchronous GnuTLS connections
* doc/misc/emacs-gnutls.texi (Help For Developers): Mention
the nowait parameter.

* lisp/net/gnutls.el (open-gnutls-stream): Allow asynchronous
connections with the new nowait parameter.

* lisp/net/network-stream.el (network-stream-open-tls): Pass
on :nowait to open-gnutls-stream.

* lisp/url/url-http.el (url-http): Don't overwrite the
sentinel created by open-gnutls-stream.

* src/gnutls.c (Fgnutls_mark_process): New function.

* src/process.c (send_process): Don't write to GnuTLS sockets that
haven't been initialised yed.

* src/process.h: New slot gnutls_wait_p.
2016-01-31 01:34:45 +01:00
John Wiegley
6acd2aa02c - 2016-01-18 22:56:33 -08:00
Glenn Morris
30d465b060 Fix some custom types.
* lisp/gnus/gnus-fun.el (gnus-x-face-omit-files, gnus-face-omit-files):
* lisp/gnus/gnus.el (gnus-valid-select-methods):
* lisp/mail/rmail.el (rmail-get-coding-function):
* lisp/net/newst-treeview.el (newsticker-groups-filename):
* lisp/progmodes/hideif.el (hide-ifdef-exclude-define-regexp):
* lisp/textmodes/tildify.el (tildify-space-predicates):
* lisp/url/url-tramp.el (url-tramp-protocols):
Fix custom types.
2016-01-12 20:32:20 -05:00
John Wiegley
1dd4f26ab6 Merge from origin/emacs-25
ef33bc7 Spelling and grammar fixes
9c3dbab Fix copyright years by hand
0e96320 Update copyright year to 2016
2016-01-11 22:48:07 -08:00
Paul Eggert
0e963201d0 Update copyright year to 2016
Run admin/update-copyright.
2016-01-01 01:34:24 -08:00
John Wiegley
9f2f14a072 Merge emacs-25 into master (using imerge) 2015-12-29 21:40:28 -08:00
Jose A. Ortega Ruiz
499dac5497 Fix URL auth error message
* lisp/url/url-http.el (url-http-handle-authentication): Make the error
message more correct (bug#20069).

Copyright-paperwork-exempt: yes
2015-12-29 01:27:48 +01:00
Lars Ingebrigtsen
8b61c22ea1 IDNA-related fixes for the URL library
* lisp/url/url-http.el (url-http-create-request): IDNA-encode
the Host: header.

* lisp/url/url-util.el (url-encode-url): Don't hex-encode
domain names, but leave them as UTF-8, so that they can be
IDNA-encoded later when contacting the host.
2015-12-29 00:11:06 +01:00
James Stout
57029f3d84 Make chunked encoding trailer detection more compliant
* lisp/url/url-http.el
(url-http-chunked-encoding-after-change-function): Make
trailer detection more compliant (bug#16345).

Copyright-paperwork-exempt: yes
2015-12-28 20:55:36 +01:00
Alain Schneble
8dea6fe5b5 Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
* test/lisp/url/url-parse-tests.el: Add tests covering url-generic-parse-url.
* test/lisp/url/url-expand-tests.el: Add tests covering url-expand-file-name.
* lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment
information in URL-struct.
* lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty
path and query into nil path and query, respectively.
* lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn
empty path into an absolute ("/") path.
* lisp/url/url-expand.el (url-expand-file-name): Properly resolve
fragment-only URIs. Do not just return them unchanged.
* lisp/url/url-expand.el (url-default-expander): An empty path in the relative
reference URI should not drop the last segment.

Backport:

(cherry picked from commit b792ecea17)
2015-12-26 14:53:08 +01:00
Eli Zaretskii
bda3c4600b Document 'url-user-agent'.
* lisp/url/url-http.el (url-user-agent): Move from here...
* lisp/url/url-vars.el (url-user-agent): ...to here.  This is to
keep all the URL defcustoms in one place, and also have it defined
whenever the URL library is loaded.

* doc/misc/url.texi (Customization): Document 'url-user-agent'.
2015-12-26 15:31:32 +02:00
Alain Schneble
b792ecea17 Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
* test/lisp/url/url-parse-tests.el: Add tests covering url-generic-parse-url.
* test/lisp/url/url-expand-tests.el: Add tests covering url-expand-file-name.
* lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment
information in URL-struct.
* lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty
path and query into nil path and query, respectively.
* lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn
empty path into an absolute ("/") path.
* lisp/url/url-expand.el (url-expand-file-name): Properly resolve
fragment-only URIs. Do not just return them unchanged.
* lisp/url/url-expand.el (url-default-expander): An empty path in the relative
reference URI should not drop the last segment.
2015-12-26 00:50:25 +01:00
Lars Ingebrigtsen
0697719d73 Let url use default file modes when copying files
* lisp/url/url-handlers.el (url-copy-file): Use default file
modes when copying files (bug#11400).
2015-12-25 22:36:32 +01:00
Devon Sean McCullough
344303c8d9 Doc fix for url-http
* lisp/url/url-http.el (url-http): Document better return values
  (bug#13187) (tiny change)
2015-12-25 22:21:22 +01:00
Lars Ingebrigtsen
24228d28dc Allow http://user:pass@foo/ URLs again
* lisp/url/url-auth.el (url-basic-auth): Allow explicit
user/passwords in URLs (bug#19046).

Backport:

(cherry picked from commit b563715a2d)
2015-12-25 20:22:02 +01:00
Lars Ingebrigtsen
b563715a2d Allow http://user:pass@foo/ URLs again
* lisp/url/url-auth.el (url-basic-auth): Allow explicit
user/passwords in URLs (bug#19046).
2015-12-25 20:21:46 +01:00
Samer Masterson
f41c54b763 Autoload url-insert-buffer-contents
* lisp/url/url-handlers.el: Add autoload cookie so that
`package-list-packages' doesn't bug out (bug#21927) (tiny change)

Backport:

(cherry picked from commit 7a7b5b492f)
2015-12-25 19:05:21 +01:00
Samer Masterson
7a7b5b492f Autoload url-insert-buffer-contents
* lisp/url/url-handlers.el: Add autoload cookie so that
`package-list-packages' doesn't bug out (bug#21927) (tiny change)
2015-12-25 19:04:55 +01:00
Lars Ingebrigtsen
eeff251924 Don't store cookies with empty names
* lisp/url/url-cookie.el (url-cookie-store): Refuse to store
cookies with empty names (bug#21936).

Backport:

(cherry picked from commit 9f0fd7cb1a)
2015-12-25 17:03:53 +01:00
Lars Ingebrigtsen
9f0fd7cb1a Don't store cookies with empty names
* lisp/url/url-cookie.el (url-cookie-store): Refuse to store
cookies with empty names (bug#21936).
2015-12-25 06:33:25 +01:00
Eli Zaretskii
bcf4913e06 Allow 'browse-url-emacs' visit non-existent URLs
* lisp/url/url-handlers.el (url-insert-file-contents): Don't
signal an error if VISIT is non-nil, to more faithfully emulate
the behavior of 'insert-file-contents'.  (Bug#22160)
2015-12-19 11:54:18 +02:00
Paul Eggert
ac16149ba4 Fix docstring quoting problems with ‘ '’
Problem reported by Artur Malabarba in:
http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01513.html
Most of these fixes are to documentation; many involve fixing
longstanding quoting glitches that are independent of the
recent substitute-command-keys changes.  The changes to code are:
* lisp/cedet/mode-local.el (mode-local-augment-function-help)
(describe-mode-local-overload):
Substitute docstrings before displaying them.
* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda):
Quote the generated docstring for later substitution.
2015-11-17 15:29:35 -08:00
Artur Malabarba
7cc233e1e3 * lisp/emacs-lisp/package.el: Fix a decoding issue
(package--with-response-buffer): Use `url-insert-buffer-contents'.
The previous code had some issues with decoding. Refactoring that
function allows us to use the decoding from url-handlers while still
treating both sync and async requests the same.

* lisp/url/url-handlers.el (url-insert-file-contents): Move some code to
`url-insert-buffer-contents'.
(url-insert-buffer-contents): New function
2015-11-15 21:35:06 +00:00
Artur Malabarba
d99ccd6dd1 Backport: * lisp/emacs-lisp/package.el: Fix a decoding issue.
* lisp/url/url-handlers.el (url-insert-file-contents): Move some code to
`url-insert-buffer-contents'.
(url-insert-buffer-contents): New function

(package--with-response-buffer): Use `url-insert-buffer-contents'.
The previous code had some issues with decoding. Refactoring that
function allows us to use the decoding from url-handlers while still
treating both sync and async requests the same.
2015-11-15 21:32:47 +00:00