Commit graph

65499 commits

Author SHA1 Message Date
Eli Zaretskii
8485d41e19 Fix encoding of saving *Help* buffers
* lisp/help-fns.el (describe-function-1): If we use curved quotes,
set help buffer's buffer-file-coding-system to UTF-8.  (Bug#21780)
2015-10-29 19:37:24 +02:00
Stefan Monnier
84dcdbeb74 * lisp/emacs-lisp/cl-generic.el: Add (major-mode MODE) context
(cl--generic-derived-specializers): New function.
(cl--generic-derived-generalizer): New generalizer.
(cl-generic-generalizers): New specializer (derived-mode MODE).
(cl--generic-split-args): Apply the rewriter, if any.
(cl-generic-define-context-rewriter): New macro.
(major-mode): Use it to define a new context-rewriter, so we can write
`(major-mode MODE)' instead of `(major-mode (derived-mode MODE))'.

* lisp/frame.el (window-system): New context-rewriter so we can write
`(window-system VAL)' instead of (window-system (eql VAL)).
(cl--generic-split-args): Apply the rewriter, if any.
(frame-creation-function): Use the new syntax.

* lisp/term/x-win.el (window-system-initialization)
(handle-args-function, frame-creation-function)
(gui-backend-set-selection, gui-backend-selection-owner-p)
(gui-backend-selection-exists-p, gui-backend-get-selection):
* lisp/term/w32-win.el (window-system-initialization)
(handle-args-function, frame-creation-function)
(gui-backend-set-selection, gui-backend-get-selection)
(gui-backend-selection-owner-p, gui-backend-selection-exists-p):
* lisp/term/pc-win.el (gui-backend-get-selection)
(gui-backend-selection-exists-p, gui-backend-selection-owner-p)
(gui-backend-set-selection, window-system-initialization)
(frame-creation-function, handle-args-function):
* lisp/term/ns-win.el (window-system-initialization)
(handle-args-function, frame-creation-function)
(gui-backend-set-selection, gui-backend-selection-exists-p)
(gui-backend-get-selection):
* lisp/startup.el (handle-args-function):
* lisp/term/xterm.el (gui-backend-get-selection)
(gui-backend-set-selection): Use the new syntax.
2015-10-29 11:06:31 -04:00
Stefan Monnier
be81cc2707 * lisp/emacs-lisp/smie.el: Use declare' for pure'
(smie-precs->prec2, smie-merge-prec2s, smie-bnf->prec2, smie-prec2->grammar):
Use `declare'.
2015-10-29 10:35:08 -04:00
Stefan Monnier
aa1c4ae271 * lisp/emacs-lisp/cl-generic.el: Accomodate future changes
(cl--generic-generalizer): Add `name' field.
(cl-generic-make-generalizer): Add corresponding `name' argument.
(cl-generic-define-generalizer): New macro.
(cl--generic-head-generalizer, cl--generic-eql-generalizer)
(cl--generic-struct-generalizer, cl--generic-typeof-generalizer)
(cl--generic-t-generalizer): Use it.
(cl-generic-ensure-function): Add `noerror' argument.
(cl-generic-define): Use it so we don't follow aliases.
(cl-generic-define-method): Preserve pre-existing ordering of methods.
(cl--generic-arg-specializer): New function.
(cl--generic-cache-miss): Use it.
(cl-generic-generalizers): Only fset a temporary definition
during bootstrap.
(cl--generic-struct-tag, cl--generic-struct-specializers):
Allow extra arguments.

* lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-symbol-generalizer)
(eieio--generic-static-object-generalizer): Use cl-generic-define-generalizer.
(eieio--generic-static-symbol-specializers): Allow extra arguments.

* lisp/emacs-lisp/eieio-core.el (eieio--generic-generalizer)
(eieio--generic-subclass-generalizer): Use cl-generic-define-generalizer.
(eieio--generic-subclass-specializers): Allow extra arguments.
2015-10-29 10:33:36 -04:00
Stefan Monnier
c0d866dd69 * lisp/emacs-lisp/bytecomp.el (compile-defun): Add defvars in scope. 2015-10-29 10:31:40 -04:00
Michael Albinus
270a17fe4d Add "afp" method to Tramp
* doc/misc/tramp.texi (GVFS based methods): Describe `afp' method.

* lisp/net/tramp-gvfs.el (tramp-gvfs-methods): Add "afp" method.
(tramp-gvfs-handle-expand-file-name)
(tramp-gvfs-handler-mounted-unmounted)
(tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec)
(tramp-gvfs-maybe-open-connection): Support also "afp".
(tramp-gvfs-handle-file-attributes): Handle the case of empty
"owner::user" and "owner::group" entries.
2015-10-29 14:05:55 +01:00
Stefan Monnier
d7a67c5a2f (internal--syntax-propertize): Save match-data here (bug#21766)
* lisp/emacs-lisp/syntax.el (internal--syntax-propertize): Save match-data.
* lisp/simple.el (delete-trailing-whitespace): Undo last change.
2015-10-28 22:18:47 -04:00
Dmitry Gutov
ffa41ad2a0 Don't require default-directory to end with a slash
* doc/lispref/files.texi (Magic File Names): Document the change
in unhandled-file-name-directory.

* lisp/url/url-handlers.el
(url-handler-unhandled-file-name-directory): Update accordingly.

* src/buffer.c (default-directory): Update the docsting.

* src/fileio.c (unhandled-file-name-directory): Default to calling
`file-name-as-directory'
(http://lists.gnu.org/archive/html/emacs-devel/2015-10/msg02294.html).
2015-10-29 03:01:45 +02:00
Artur Malabarba
42eb249ebd * lisp/isearch.el: Delete some outdated comments 2015-10-29 00:22:50 +00:00
Vibhav Pant
2765945d61 Fix eshell/clear not working if the output has a small line count
* lisp/eshell/esh-mode.el: (eshell/clear): Use (window-size) as the
number of newlines to be inserted. This fixes the issue where
eshell/clear wouldn't work if the prompt was not at the bottom of the
window, and the output wasn't too long.
2015-10-29 03:08:10 +05:30
Stefan Monnier
db31a88325 * lisp/files.el (write-file): Use vc-refresh-state. 2015-10-28 14:01:18 -04:00
Stefan Monnier
0cbe7a2332 * lisp/autorevert.el (auto-revert-handler): Use vc-refresh-state. 2015-10-28 14:00:59 -04:00
Stefan Monnier
dfa2e4a6e6 * lisp/vc/pcvs.el (cvs-revert-if-needed): Use vc-refresh-state. 2015-10-28 14:00:24 -04:00
Stefan Monnier
d5ee655c17 * lisp/emacs-lisp/macroexp.el: Tweak macroexp-if optimizations
(macroexp-unprogn): Make sure we never return an empty list.
(macroexp-if): Remove unused (and unsafe) optimization.
Optimize (if A T (if B T E)) into (if (or A B) T E) instead, which does
occur occasionally.
2015-10-28 13:59:42 -04:00
Juanma Barranquero
1f02cbea8b Fix bug#21766 and add test
* lisp/simple.el (delete-trailing-whitespace): Save match data when
calling `skip-syntax-backward'.
* test/automated/simple-test.el (simple-delete-trailing-whitespace):
New test.
2015-10-28 18:23:53 +01:00
Artur Malabarba
020e850557 * lisp/character-fold.el (character-fold-to-regexp): Fix case
where string ends in space
2015-10-28 15:50:17 +00:00
Artur Malabarba
7dfe247864 * lisp/emacs-lisp/seq.el (seq-mapn): New function
* doc/lispref/sequences.texi (Sequence Functions): Document seq-mapn
2015-10-28 15:40:23 +00:00
Artur Malabarba
4281f722dd * lisp/character-fold.el: Make compatible with lax-whitespace
(character-fold-to-regexp): Rework internals to play nice with
lax-whitespacing.

When the user types a space, we want to match the table entry for
?\s, which is generally a regexp like "[ ...]".  However, the
`search-spaces-regexp' variable doesn't "see" spaces inside these
regexp constructs, so we need to use "\\( \\|[ ...]\\)" instead (to
manually expose a space).

Furthermore, the lax search engine acts on a bunch of spaces, not
on individual spaces, so if the string contains sequential spaces
like "  ", we need to keep them grouped together like this:
"\\(  \\|[ ...][ ...]\\)".
2015-10-28 15:40:23 +00:00
Artur Malabarba
faace42f8a * lisp/isearch.el: Refactor momentary messages
(isearch--momentary-message): New function.
(isearch-toggle-lax-whitespace, isearch-toggle-case-fold)
(isearch-toggle-invisible): Use it.
2015-10-28 15:10:08 +00:00
Artur Malabarba
12c0edb755 * lisp/isearch.el: Define all toggles with `isearch-define-mode-toggle'
(isearch-define-mode-toggle): New macro.
(isearch-toggle-invisible): Renamed to
`isearch-define-mode-toggle'.
(isearch-toggle-case-fold, isearch-toggle-invisible)
(isearch-toggle-regexp, isearch-toggle-lax-whitespace): Define
with `isearch-define-mode-toggle'.
2015-10-28 15:10:08 +00:00
Michael Albinus
9fd61a5aa2 Avoid using `add-to-list' on a let-local var in tramp-smb.el
* lisp/net/tramp-compat.el (tramp-compat-delete-dups): New defun.
* lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Use it.
2015-10-28 15:31:40 +01:00
Michael Albinus
e1d0eefae8 Revert 692bce5b9e
* lisp/net/tramp-smb.el (tramp-smb-handle-directory-files):
Revert 692bce5b9e, `delete-dups'
does not exist in XEmacs 21.4.
2015-10-28 12:12:51 +01:00
Nicolas Petton
61b63f460d * lisp/emacs-lisp/thunk.el (thunk-delay): Fix the macro. 2015-10-28 09:56:03 +01:00
Tassilo Horn
6e2a4021d3 Prettify TeX macros not ending in a word char
* lisp/textmodes/tex-mode.el (tex--prettify-symbols-compose-p): Prettify
macros which don't end in a word character.
2015-10-28 08:47:26 +01:00
Dmitry Gutov
9db11fa2d6 ; Revert "Don't declare vc-exec-after anymore"
This reverts commit 5e4395544c.

(http://lists.gnu.org/archive/html/emacs-devel/2015-10/msg02009.html)
2015-10-28 02:43:14 +02:00
Dmitry Gutov
b1d39288e5 Pipe Hg commit descriptions through 'tabindent'
* lisp/vc/vc-hg.el (vc-hg-log-format): Pipe commit description
through 'tabindent'.
(vc-hg-log-view-mode): Set tab-width to 2 locally.
(http://lists.gnu.org/archive/html/emacs-devel/2015-10/msg02259.html)
2015-10-28 02:42:51 +02:00
Stefan Monnier
692bce5b9e * lisp/net/tramp-smb.el: Avoid using `add-to-list' on a let-local var
* lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Use `delete-dups'.
* lisp/net/tramp.el (auto-save-file-name-transforms): Declare.
2015-10-27 20:25:55 -04:00
Stefan Monnier
3f4a192ba6 * lisp/international/ccl.el: Use lexical-binding
(ccl-compile-if): Remove unused var `false-ic'.
(ccl-compile-write-repeat): Remove unused var `i'.
(ccl-compile-map-single): Remove unused var `id'.
(ccl-dump, ccl-dump-binary): Use explicit let-binding to bind the
dynamic var `ccl-code'.
2015-10-27 20:23:32 -04:00
Stefan Monnier
449e351b1c * lisp/json.el (json-new-object): Optimize trivial `list' call 2015-10-27 20:19:51 -04:00
Stefan Monnier
4eb1e7f96b * lisp/help.el: Fix bug with incorrect arglist string
(help-add-fundoc-usage): Don't mistake a mis-formatted string for a list.
2015-10-27 20:18:45 -04:00
Stefan Monnier
1ec995ced2 * lisp/gnus/gnus-topic.el: Silence some warnings
(gnus-topic-prepare-topic): Remove unused var `topic'.
(gnus-topic-remove-topic): Mark unused arg `hide'.
(gnus-tmp-header): Declare.
(gnus-topic-goto-missing-group): Remove unused var `entry'.
(gnus-topic-unmark-topic): Mark unused arg `dummy'.
(gnus-topic-copy-matching): Mark unused arg `copyp'.
Move initialization of `topic' into its declaration.
2015-10-27 20:15:31 -04:00
Stephen Leake
e166a701dd Minor CEDET fixes
* lisp/cedet/cedet-global.el (cedet-gnu-global-gtags-call): Handle
warnings from gtags about invalid options.
(cedet-gnu-global-create/update-database): Do incremental update
properly.

* lisp/cedet/ede/generic.el (ede-enable-generic-projects): Get monotone
root right.
2015-10-27 10:41:12 -05:00
Michael Albinus
838023d469 Fall back to polling in autorevert when needed
* lisp/autorevert.el (auto-revert-notify-handler): When a
`stopped' event arrives from file notification, fall back to polling.

* test/automated/file-notify-tests.el
(file-notify-test03-autorevert): Extend test for polling when file
notification ceases to work.
2015-10-27 16:02:26 +01:00
Dmitry Gutov
99ded6be7a Show full commit messages in 'hg log' when appropriate
* lisp/vc/vc-hg.el (vc-hg-log-format): New variable.
(vc-hg-print-log, vc-hg-expanded-log-entry): Use it.
(http://lists.gnu.org/archive/html/emacs-devel/2015-10/msg02191.html)
2015-10-27 14:55:06 +02:00
Nicolas Petton
22579baf62 * lisp/emacs-lisp/map.el: Better docstrings. 2015-10-26 22:23:02 +01:00
Nicolas Petton
5a9842c933 * lisp/emacs-lisp/seq.el: Better docstrings. 2015-10-26 22:17:41 +01:00
Nicolas Petton
7637849321 * lisp/emacs-lisp/seq.el: Rename all seq argumentss to sequence. 2015-10-26 22:17:41 +01:00
Phillip Lord
5c86118b4b * lisp/emacs-lisp/ert.el: Print results without newline escaping 2015-10-26 20:27:16 +00:00
Mark Oteiza
3f828dc76b * lisp/net/eww.el (eww-bookmark-prepare): Use truncate-string-to-width.
`substring' does not account for full width characters.
2015-10-26 12:15:50 -04:00
Michael Albinus
0d9c67236c Further work on `stopped' events in filenotify.el
* doc/lispref/os.texi (File Notifications): Rework examples.

* lisp/filenotify.el (file-notify--rm-descriptor): Optional parameter.
(file-notify--rm-descriptor, file-notify-callback): Improve check
for sending `stopped' event.
(file-notify-add-watch): Check for more events for `inotify'.

* test/automated/file-notify-tests.el
(file-notify--test-expected-events): New defvar.
(file-notify--test-with-events): Use it.
(file-notify--test-cleanup): Make it more robust when deleting
directories.
(file-notify--test-event-test): Check also for watched directories.
(file-notify--test-event-handler): Suppress temporary .#files.
(file-notify-test02-events, file-notify-test04-file-validity):
Rework `stopped' events.
(file-notify-test05-dir-validity): Wait for events when appropriate.
2015-10-26 16:46:48 +01:00
Tassilo Horn
1bab3cefc1 Fix infinite loop in sh-script's SMIE code
* lisp/progmodes/sh-script.el (sh-smie-sh-forward-token): Fix infinite
loop (bug#21747).
2015-10-26 08:01:18 +01:00
Artur Malabarba
3cdeda60c5 * lisp/isearch.el (search-default-regexp-mode): Revert to nil
Character-fold search _still_ doesn't play well with
lax-whitespace.  So disable it by default (again) for now.
2015-10-26 01:38:48 +00:00
Artur Malabarba
6b5fdca716 * lisp/isearch.el: No visual feedback for default search mode
During an isearch where character-folding is the default, we don't
want to take up minibuffer space just to tell the user that
"Char-fold " is on.  The same goes for other modes, if the user
changes the default.  In contrast, if the user toggles OFF the
default mode, they should see "Literal", to distinguish it from
the default mode.

(isearch--describe-regexp-mode): Return "" if describing the
default mode, and return "literal " if describing a plain search
and it is not default.
2015-10-26 00:51:02 +00:00
Artur Malabarba
bd4f04f86c * lisp/simple.el (open-line): Integrate with electric-indent-mode
Also run `post-self-insert-hook' when called interactively.
2015-10-26 00:27:10 +00:00
Artur Malabarba
6939896e2f * lisp/simple.el (open-line): Fix docstring
Also explain apparently redundant line.
2015-10-26 00:27:10 +00:00
Thomas Fitzsimmons
61640f6fbc Sync with soap-client repository, version 3.0.1
* soap-client.el, soap-inspect.el: Bump version to 3.0.1.

* soap-client.el, soap-inspect.el: Update home page.

* soap-client.el, soap-inspect.el: Bump version to 3.0.0.

* soap-inspect.el: Merge in changes from Emacs master branch.

* soap-client.el: Merge in changes from Emacs master branch.

* soap-inspect.el: Shorten first line description.

* soap-client.el: Make a small whitespace fix.

* soap-inspect.el: Update copyright years.

* soap-client.el (soap-encoded-namespaces): Move above first use
in soap-encode-xs-element.

* soap-client.el (soap-type-is-array?): new defun
(soap-encode-xs-element): handle array elements in this function
(soap-encode-xs-complex-type): flag error if asked to encode an
array type, this is handled in `soap-encode-xs-element'

* soap-inspect.el (soap-inspect-xs-attribute-group): Do not print
type for attribute group.

* soap-inspect.el (soap-sample-value-for-xs-attribute-group): New
function.
(soap-inspect-xs-attribute-group): Likewise.

* soap-inspect.el
(soap-resolve-references-for-xs-attribute-group): Resolve
references of attributes in an attribute group.

* soap-client.el (soap-decode-xs-attributes): Process attribute
type directly, not through soap-wsdl-get.

* soap-client.el (soap-xs-parse-attribute): Leave reference nil if
reference attribute is nil.

* soap-client.el (soap-resolve-references-for-xs-attribute):
Convert XML schema attributes to xsd:string.

* soap-inspect.el (soap-sample-value-for-xs-attribute): New
function.
(soap-sample-value-for-xs-simple-type): Prepend attributes to
result.
(soap-sample-value-for-xs-complex-type): Likewise.
(soap-inspect-xs-attribute): New function.
(soap-inspect-xs-simple-type): Print attributes.
(soap-inspect-xs-complex-type): Likewise.

* soap-inspect.el (soap-resolve-references-for-xs-simple-type):
Resolve references for attributes.
(soap-resolve-references-for-xs-complex-type): Likewise.

* soap-client.el (soap-xml-node-find-matching-child): Rename from
soap-xml-node-first-child.
(soap-xs-parse-attribute): Call soap-xml-node-find-matching-child.
(soap-xs-parse-simple-type): Likewise.

* soap-client.el (soap-invoke-async): Add error checking.

* soap-client.el (soap-invoke-internal): New function.
(soap-invoke-async): Call soap-invoke-internal.
(soap-invoke): Likewise.

* soap-client.el (soap-invoke-async): Ensure buffer passed to
url-retrieve callback is killed.

* soap-client.el (soap-parse-wsdl-phase-validate-node): Rename
function.
(soap-parse-wsdl-phase-fetch-imports): Likewise.
(soap-parse-wsdl-phase-parse-schema): Likewise.
(soap-parse-wsdl-phase-fetch-schema): Likewise.
(soap-parse-wsdl-phase-finish-parsing): Likewise.
(soap-parse-wsdl): Update calls.

* soap-client.el (soap-invoke-async): Fix callback invocation.

* soap-client.el (soap-invoke-async): New function.
(soap-invoke): Reimplement using soap-invoke-async.

* soap-client.el (soap-parse-server-response): Improve docstring.
(soap-invoke): Inline call to soap-parse-server-response.

* soap-client.el (soap-decode-xs-complex-type): Prevent incorrect
warning.

* soap-client.el (soap-parse-server-response): Rename
soap-process-url-response.  Destroy the mime part.
(soap-invoke): Call soap-parse-server-response.

* soap-client.el: Update copyright date.

* soap-client.el: Fix checkdoc issues.

* soap-client.el: Fix indentation and long lines.

* soap-client.el (soap-time-format): Remove variable.
(soap-encode-xs-basic-type): Simplify date-time format detection.
(soap-decode-xs-basic-type): Remove soap-time-format support.

* soap-client.el (soap-process-url-response): New function.
(soap-fetch-xml-from-url): Call soap-process-url-response.
(soap-parse-wsdl-phase-1): New function.
(soap-parse-wsdl-phase-2): Likewise.
(soap-parse-wsdl-phase-3): Likewise.
(soap-parse-wsdl-phase-4): Likewise.
(soap-parse-wsdl-phase-5): Likewise.
(soap-parse-wsdl): Call phase functions.

* soap-client.el (soap-decode-xs-basic-type): Remove one-argument
and call.

* soap-client.el (soap-decode-date-time): Improve docstring.

* soap-client.el (soap-xmlschema-imports): Remove variable.
(soap-parse-schema): Add wsdl argument.  Look up XML schema
imports from wsdl.
(soap-load-wsdl): Do not set soap-xmlschema-imports.
(soap-parse-wsdl): Get XML schema imports from wsdl.

* soap-client.el (soap-current-file): Remove variable.
(soap-wsdl): Add current-file slot.
(soap-fetch-xml-from-url): Add wsdl argument.  Look up current
file from wsdl.
(soap-fetch-xml-from-file): Likewise.
(soap-fetch-xml): Likewise.
(soap-load-wsdl): Always create wsdl object first.
(soap-parse-wsdl): Pass wsdl to soap-fetch-xml.

* soap-client.el (soap-xs-element): Add is-group slot.
(soap-xs-parse-element): Set is-group slot.
(soap-resolve-references-for-xs-element): Skip is-group elements.
(soap-xs-complex-type): Add is-group slot.
(soap-xs-parse-complex-type): Set is-group slot.
(soap-xs-parse-sequence): Parse xsd:group elements.
(soap-resolve-references-for-xs-complex-type): Inline elements
from referenced xsd:group nodes.
(soap-parse-schema): Parse xsd:group nodes.

* soap-client.el (soap-invoke): Don't set url-http-version to 1.0.

* soap-client.el (soap-decode-xs-complex-type): Allow choice nodes
to accept multiple values.

* soap-client.el (soap-encode-body): Check parameters argument for
extra header values.

* soap-client.el (soap-well-known-xmlns): Add wsa and wsaw tags.
(soap-operation): Add input-action and output-action slots.
(soap-parse-operation): Parse wsaw:Action nodes.
(soap-encode-body): Encode service-url for WS-Addressing.
(soap-create-envelope): Likewise.
(soap-invoke): Update soap-create-envelope call to provide
service-url argument.

* soap-client.el (soap-decode-xs-complex-type): Support xsi:type
override attribute.
(soap-decode-array): Likewise.

* soap-client.el (soap-parse-schema): Handle location attribute.

* soap-client.el (soap-decode-type): Check that multiRef matched
validation regexp.

* soap-client.el (soap-encode-xs-simple-type): Encode xsd:list
nodes.
(soap-decode-xs-simple-type): Decode xsd:list nodes.

* soap-client.el (soap-get-candidate-elements): Fix reference
handling.

* soap-client.el (soap-xs-simple-type): Add is-list slot.
(soap-xs-parse-simple-type): Call soap-xs-add-list for xsd:list
nodes.
(soap-xs-add-list): New function.

* soap-client.el (soap-encode-xs-element): When a boolean is
expected, interpret nil as "false".

* soap-client.el (soap-make-xs-basic-types): Add gYearMonth,
gYear, gMonthDay, gDay and gMonth.

* soap-client.el (soap-time-format): New variable.
(soap-encode-xs-basic-type): Handle dateTime, time, date,
gYearMonth, gYear, gMonthDay, gDay and gMonth.
(soap-decode-date-time): New function.
(soap-decode-xs-basic-type): Use soap-decode-date-time.

* soap-client.el (soap-encode-xs-basic-type): Validate value after
encoding.
(soap-decode-xs-basic-type): Validate value before decoding.

* soap-client.el (soap-validate-xs-basic-type): New function.
(soap-validate-xs-simple-type): Call soap-validate-xs-basic-type.

* soap-client.el (soap-xs-add-union): Append result to base
instead of overwriting it.
(soap-validate-xs-simple-type): Add union support.

* soap-client.el (soap-xs-add-restriction): Translate pattern to
Emacs regexp using xsdre-translate.
(soap-validate-xs-simple-type): Validate value against pattern.

* soap-client.el (soap-xs-add-union): Preserve WSDL order of
inline simpleType nodes.
(soap-decode-type): Handle union types.

* soap-client.el (soap-decode-xs-attributes): Decode basic-type
attributes.

* soap-client.el (soap-get-xs-attributes-from-groups): renamed
from soap-xs-attribute-group-consolidate, all callers updated
(soap-get-xs-attributes): renamed from
soap-xs-attributes-consolidate, all callers updated

* soap-client.el (soap-xs-type): Add attribute-group slot.
(soap-xs-attribute-group): New type.
(soap-xs-parse-attribute-group): New function.
(soap-resolve-references-for-xs-attribute-group): Likewise.
(soap-xs-add-extension): Handle attribute groups.
(soap-resolve-references-for-xs-simple-type): Likewise.
(soap-xs-parse-complex-type): Likewise.
(soap-xs-parse-extension-or-restriction): Likewise.
(soap-resolve-references-for-xs-complex-type): Likewise.
(soap-xs-attribute-group-consolidate): New function.
(soap-xs-attributes-consolidate): Handle attribute groups.
(soap-parse-schema): Likewise.

* soap-client.el (soap-encode-xs-basic-type): Fix boolean
encoding.

* soap-client.el (soap-encode-xs-complex-type): Print ref element
names in warnings.

* soap-client.el (soap-decode-xs-complex-type): Fix splicing.

* soap-client.el (soap-decode-xs-complex-type): Eliminate invalid
warnings for choice types.

* soap-client.el (soap-encode-xs-complex-type-attributes): Also
encode base type attributes.

* soap-client.el (soap-encode-xs-complex-type): Fix compilation
warning.  Print e-name in warnings, or element if e-name is nil.

* soap-client.el (soap-xs-element): Add alternatives slot.
(soap-xs-parse-element): Set substitution-group.
(soap-resolve-references-for-xs-element): Populate alternatives
slot.
(soap-get-candidate-elements): New function.
(soap-encode-xs-complex-type): Iterate through all candidate
elements.  Handle types with nil type indicator.  Fix warning
logic.

* soap-client.el (soap-current-wsdl): moved declaration earlier in
the file to prevent compiler warning.

* soap-client.el (soap-node-optional): New function.
(soap-node-multiple): Likewise.
(soap-xs-parse-element): Call soap-node-optional and
soap-node-multiple.
(soap-xs-complex-type): Add optional? and multiple? slots.
(soap-xml-get-children-fq): New function.
(soap-xs-element-get-fq-name): Likewise.
(soap-xs-complex-type-optional-p): Likewise.
(soap-xs-complex-type-multiple-p): Likewise.
(soap-xs-attributes-consolidate): Likewise.
(soap-decode-xs-attributes): Likewise.
(soap-decode-xs-complex-type): Decode types with nil type
indicator.  Support children that use local namespaces.  Decode
attributes.  Add type considerations to optional? and multiple?
warnings.

* soap-client.el (soap-xs-parse-extension-or-restriction): Store
parsed attributes.
(soap-encode-xs-complex-type-attributes): Encode custom
attributes.

* soap-client.el (soap-encode-xs-complex-type-attributes): don't
add the xsi:type attribute (Exchange refuses requests which have
this attribute)

* soap-client.el, soap-inspect.el: converted to lexical binding,
corrected compiler warnings about unused function arguments and
local variables.

* soap-client.el (soap-decode-xs-complex-type): Handle nil type
indicator.
(soap-parse-envelope): Handle response headers.
(soap-parse-response): Likewise.  Only return non-nil decoded
values.

* soap-client.el (soap-validate-xs-simple-type): Return validated
value.

* soap-client.el (soap-xs-parse-element)
(soap-xs-parse-simple-type)
(soap-xs-parse-complex-type)
(soap-parse-message)
(soap-parse-operation): add the current namespace to the element
being created
(soap-resolve-references-for-xs-element)
(soap-resolve-references-for-xs-simple-type)
(soap-resolve-references-for-xs-complex-type)
(soap-resolve-references-for-operation): resolve the namespace to
the namespace tag
(soap-make-wsdl): specify a namespace tag when creating the xsd
and soapenc namespaces
(soap-wsdl-resolve-references): don't update namespace tags in
elements here
(soap-parse-port-type): bind the urn: to soap-target-xmlns
(soap-encode-body): don't add nil namespace tags to
soap-encoded-namespaces

* soap-inspect.el: use `soap-make-wsdl` to construct the object
for registering the soap-inspect method.Make debbugs tests pass
* soap-client.el (soap-decode-any-type): use soap-l2fq on the type
name, also skip string only nodes when decoding a structure.
(soap-xs-parse-complex-type): (BUG) dispatch parsing for choice
types too
(soap-encode-body): grab the header value from the param table

* soap-client.el (soap-should-encode-value-for-xs-element): new
function
(soap-encode-xs-element): don't encode nil value unless needed

* soap-client.el (soap-bound-operation): new slot `soap-body`
(soap-parse-binding): parse the message parts required in the body
(soap-encode-body): encode only the parts that are declared to be
part of the body

* soap-client.el (soap-encode-xs-element): use the fq name when
writing out the tag.
(soap-encode-body): remove hack that inserts the xmlns in the
element attributes list.

* soap-client.el (soap-xs-attribute): add "default" slot
(soap-xs-parse-attribute): default slot is set from the XML
"fixed" attribute.
(soap-encode-xs-complex-type-attributes): encode any attributes
that have a default value.  Also, don't put the xsi:nil attribute
when the complex type has no content anyway.

* soap-client.el (soap-well-known-xmlns): add the xml namespace
(soap-local-xmlns): start with the xml namespace
(soap-xml-node-first-child): skip xsd:annotation nodes too
(soap-make-xs-basic-types): more xsd types added
(soap-encode-xs-basic-type, soap-decode-xs-basic-type): handle
"language", "time", "date", "nonNegativeInteger"
(soap-resolve-references-for-xs-element): don't signal an error if
the element does not have a type.
(soap-xs-parse-simple-type): subtypes are handled with ecase,
added stum for xsd:list
(soap-xs-add-union): call soap-l2fq on all union members
(soap-xs-add-extension): call soap-l2fq on the base member
(soap-resolve-references-for-xs-simple-type): don't signal an
error if the simple type has no base.
(soap-resolve-references-for-xs-simple-type): bugfix, call
soap-wsdl-get on each type of the base

* soap-client.el (soap-resolve-references-for-xs-attribute):
referenced type can be eiher a simple type or a basic type
(soap-xs-add-restriction)
(soap-xs-parse-extension-or-restriction): use `soap-l2fq' on base
(soap-make-xs-basic-types)
(soap-encode-xs-basic-type, soap-decode-xs-basic-type): add
support for more XMLSchema basic types
(soap-current-file, soap-xmlschema-imports): new defvars
(soap-parse-schema): add locations from xsd:import tags to
`soap-xmlschema-imports'
(soap-wsdl): make destructor private
(soap-make-wsdl): new defun, SOAP-WSDL object constructor
(soap-wsdl-add-alias): check if we try to replace aliases
(soap-fetch-xml-from-url, soap-fetch-xml-from-file)
(soap-fetch-xml): new defuns
(soap-load-wsdl): updated to load the WSDL from either a file or
an url
(soap-load-wsdl-from-url): now an alias to `soap-load-wsdl'
(soap-parse-wsdl): process wsdl:import tags and imports from
`soap-xmlschema-imports'
* soap-client.el (soap-l2wk): bugfix: call symbolp instead of
symbol-name
(soap-l2fq): make the name part always a string
(soap-name-p): new defun, used for name tests

* soap-inspect.el (soap-sample-value-for-xs-complex-type): supply
sample values for choice types with a special tag
* soap-client.el (soap-encode-xs-complex-type): handle anonymous
elements correctly
(soap-encode-value): accept nodes that have no namespace tag

* soap-client.el (soap-invoke): encode the string for
`url-request-data' as UTF-8. Fixes issue 16

Co-authored-by: Alexandru Harsanyi <AlexHarsanyi@gmail.com>
2015-10-25 17:00:37 -04:00
Eli Zaretskii
ecb069e2f6 * lisp/progmodes/grep.el (grep): Doc fix. (Bug#21754) 2015-10-25 22:05:44 +02:00
Artur Malabarba
2a85bf6a8e * lisp/custom.el (custom-declare-variable): Shorten code again
Without using pcase this time.  We can't use pcase because it is loaded
after custom in loadup.el.  Also add a comment explaining this to future
dummies like me.
2015-10-25 14:39:07 +00:00
Michael Albinus
ab116b19ed Introduce `stopped' event in file notification
* lisp/filenotify.el (file-notify--rm-descriptor): New defun.
(file-notify-rm-watch): Use it.
(file-notify-callback): Implement `stopped' event.
(file-notify-add-watch): Mention `stopped' in the docstring.
Check, that upper directory exists.

* test/automated/file-notify-tests.el (file-notify-test01-add-watch):
Add two test cases.
(file-notify-test02-events): Handle also `stopped' event.
(file-notify-test04-file-validity): Add another test case.
2015-10-25 14:18:17 +01:00
Paul Eggert
0afbc5b2a2 Revert commit that broke 'make bootstrap'
* lisp/custom.el (custom-declare-variable): Revert commit
79fac080d2.  custom.el needs to work
even when pcase has not been defined yet, when doing bootstrapping.
2015-10-25 00:30:16 -07:00