* 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.
Artur Malabarba [Mon, 26 Oct 2015 00:51:02 +0000 (00:51 +0000)]
* 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.
* 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-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-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-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-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-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>
Artur Malabarba [Sun, 25 Oct 2015 11:24:40 +0000 (11:24 +0000)]
* 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.
Michael Albinus [Sun, 25 Oct 2015 13:18:17 +0000 (14:18 +0100)]
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.
Paul Eggert [Sun, 25 Oct 2015 07:29:42 +0000 (00:29 -0700)]
Revert commit that broke 'make bootstrap'
* lisp/custom.el (custom-declare-variable): Revert commit 79fac080d277fed07b3c192890ad59d36d9f83b6. custom.el needs to work
even when pcase has not been defined yet, when doing bootstrapping.
Paul Eggert [Sun, 25 Oct 2015 06:51:19 +0000 (23:51 -0700)]
Port recent inline functions fix to Standard C
* src/lisp.h (LISP_MACRO_DEFUN, LISP_MACRO_DEFUN_VOID): Remove.
All uses rewritten to define the function directly rather than to
use a macro to define the function. This conforms to Standard C,
which does not allow stray semicolons at the top level. I hope it
also avoids the problems with TAGS. Those macros, though clever,
were pretty confusing anyway, and it wasn’t clear they were worth
the aggravation even without the TAGS problem.
Artur Malabarba [Sun, 25 Oct 2015 00:43:23 +0000 (01:43 +0100)]
* lisp/character-fold.el: Many improvements
(character-fold-search-forward, character-fold-search-backward):
New command
(character-fold-to-regexp): Remove lax-whitespace hack.
(character-fold-search): Remove variable. Only isearch and
query-replace use char-folding, and they both have their own
variables to configure that.
* nt/addpm.c (DdeCommand): Cast pData argument of DdeClientTransaction
to LPBYTE.
(add_registry): Pass NULL to optional lpClass argument of
RegCreateKeyEx, not an empty string.
addpm.c: Do not add obsolete GTK libraries to the path.
* nt/addpm.c (REG_GTK, REG_RUNEMACS_PATH): Delete.
(add_registry): Remove variables `size' and `gtk_key'.
Do not add the GTK DLL directory to the library search path; it is
confusing behavior (in particular, the same Emacs version with and
without invoking addpm will use a different path), and the GTK image
libraries are obsolete anyway.
addpm.c: Replace existing entries, but do not create new ones
* nt/addpm.c (add_registry): If the Emacs registry key exists, replace
existing values from previous versions, but do not add new ones; the
key could exist for other reasons unrelated to old Emacsen, like X-style
resources, or to set some environment variables like HOME or LANG, and
in that case we don't want to populate it with obsolete values.
addpm.c: Don't pass REG_OPTION_NON_VOLATILE to RegOpenKeyEx
* nt/addpm.c (add_registry): Pass 0 to ulOptions argument of
RegOpenKeyEx, not REG_OPTION_NON_VOLATILE. This doesn't change
current behavior because REG_OPTION_NON_VOLATILE is defined to
be 0L anyway, but that option is actually documented only for
RegCreateKeyEx.
Eli Zaretskii [Sat, 24 Oct 2015 15:41:32 +0000 (18:41 +0300)]
Update frame title when scrolling the selected window
* src/window.c (wset_update_mode_line): New function, sets either the
window's update_mode_line flag or the global update_mode_lines
variable.
(Fset_window_start, set_window_buffer, window_scroll_pixel_based)
(window_scroll_line_based): Call it instead of only setting the
window's update_mode_line flag.
Eli Zaretskii [Sat, 24 Oct 2015 14:58:34 +0000 (17:58 +0300)]
An even better fix for bug#21739
* src/window.c (set_window_buffer): If the window is the frame's
selected window, set update_mode_lines, not the window's
update_mode_line flag. (Bug#21739)
* src/buffer.c (Fkill_buffer): Undo last change.
(set_update_modelines_for_buf): Function deleted.
Eli Zaretskii [Sat, 24 Oct 2015 10:27:52 +0000 (13:27 +0300)]
Avoid missing inline functions from lisp.h in TAGS
* src/lisp.h (LISP_MACRO_DEFUN): Mention in the commentary the
need to end each invocation with a semi-colon.
Add a semi-colon at the end of each invocation of LISP_MACRO_DEFUN
and LISP_MACRO_DEFUN_VOID. This is to avoid missing in TAGS
inline functions defined immediately after each invocation, and
also avoid tagging every invocation of these macros.
Eli Zaretskii [Sat, 24 Oct 2015 07:03:07 +0000 (10:03 +0300)]
A better fix for bug#21739
* src/buffer.c (set_update_modelines_for_buf): New function.
(Fkill_buffer): Use it to set the global variable
update_mode_lines if the killed buffer was displayed in some
window. Don't set windows_or_buffers_changed. This is a better
fix for bug#21739 than the previous fix, since it will cause only
redisplay of mode lines, not of entire windows, but will still
catch attention of x_consider_frame_title in xdisp.c, which
redraws the frame title.
Michael Albinus [Fri, 23 Oct 2015 11:14:09 +0000 (13:14 +0200)]
Fix Bug#21669
* lisp/filenotify.el (file-notify-rm-watch): Improve check for
calling low-level functions.
* test/automated/file-notify-tests.el (file-notify--test-timeout):
Decrase to 6 seconds for remote directories.
(file-notify-test02-events): Expect different number of
`attribute-changed' events for the local and remote cases. Apply
short delays between the operations, in order to receive all
events in the remote case. Combine `attribute-change' tests.
(Bug#21669)
Anders Lindgren [Fri, 23 Oct 2015 05:58:02 +0000 (07:58 +0200)]
NextSten maximization and NSTRACE rewrite.
Full-height, full-width, and maximized windows now cover the
entire screen (except the menu bar), including the part where the
system dock is placed. The system zoom animation is no longer
used.
Made NonMaximized->FullWidth->FullHeight->NonMaximized restore the
original size.
* nsterm.m (ns_menu_bar_height): New function, return height of
the menu bar, or 0 when it's hidden.
* nsterm.m (constrain_frame_rect): New function for constraining a
frame.
* nsterm.m (ns_constrain_all_frames): Set frame size explicitly
rather than relying on the system doing it for us by writing back
the current frame size.
* nsterm.m (windowWillUseStandardFrame): Register non-maximized
width or height as new user size. When entering full width or
height, the other size component is taken from the user size.
* nsterm.m (fullscreenState): New method for accessing the
fullscreen state.
* nsterm.m (constrainFrameRect): Restrict frame to be placed under
the menu bar, if present. The old version, sometimes, restricted
the height of a frame to the screen, this version never does this.
* nsterm.m (zoom): Perform zoom by setting the frame to the full
size of the screen (minus the menu bar). The default system
function, with the zoom animation, is no longer used, as the final
frame size doesn't cover the entire screen.
Rework how to constrain resizing to the character grid. The old
system used "resizeIncrements" in NSWindows. However, once a frame
was resized so that it was not aligned to the text grid, it
remained unaligned even after a resize. In addition, it conflicted
when resizing a fullheight window.
* nsterm.m (windowWillResize): Restrict frame size to text grid,
unless when pixelwise frame resizing is enabled.
* nsterm.m (updateFrameSize, initFrameFromEmacs)
(toggleFullScreen, handleFS): Don't set resizeIncrements.
Redesign the NS trace system. The call structure is represented
using indentations and vertical lines. The NSTRACE macro accepts
printf-style arguments. New macros for printing various
information.
* nsterm.h (NSTRACE_ENABLED): Macro to enable trace system.
* nsterm.h (NSTRACE, NSTRACE_WHEN, NSTRACE_UNLESS): Macros to
start a new block (typically a function), accept printf-style
arguments.
* nsterm.h (NSTRACE_MSG): Macro for extra information, accepts
printf-style arguments.
* nsterm.h (NSTRACE_what): Macros for printing various types.
* nsterm.h (NSTRACE_FMT_what): Macro with printf format string
snippets.
* nsterm.h (NSTRACE_ARG_what): Macros for passing printf-style
arguments, corresponds to NSTRACE_FMT_what.
* nsterm.h (NSTRACE_RETURN): Macro to print return value, accept
printf-style arguments.
* nsterm.h (NSTRACE_RETURN_what): Macros to print return value for
various types.
* lisp/gnus/auth-source.el: Add eval-and-compile to autoloads for
epg-context-set-passphrase-callback, epg-decrypt-string, and
epg-encrypt-string; require epg when compiling for the setf-method
for epg-context-armor. (bug#21724)
Tassilo Horn [Thu, 22 Oct 2015 15:01:57 +0000 (17:01 +0200)]
Improve doc-view wrt. auto-revert-mode
* lisp/doc-view.el (doc-view-revert-buffer): Don't revert when file is
corrupted (bug#21729).
(doc-view-mode): Set doc-view-revert-buffer as revert-buffer-function.
Paul Eggert [Thu, 22 Oct 2015 03:22:34 +0000 (20:22 -0700)]
New lispref section “Security Considerations”
This attempts to document some of the issues recently discussed
on emacs-devel, and to indicate other such issues. The section
could be a lot longer.
* doc/lispref/os.texi (Security Considerations):
New node.
* doc/lispref/elisp.texi (Top):
* doc/lispref/processes.texi (Shell Arguments):
* lisp/subr.el (shell-quote-argument):
* src/callproc.c (syms_of_callproc):
Reference it.
Paul Eggert [Thu, 22 Oct 2015 03:10:40 +0000 (20:10 -0700)]
Merge from gnulib
This incorporates:
2015-10-18 stdalign: work around pre-4.9 GCC x86 bug
2015-10-18 time_rz: avoid warning from bleeding-edge gcc's -Wnonnull
* doc/misc/texinfo.tex, lib/stdalign.in.h, lib/time_rz.c:
Copy from gnulib.
Artur Malabarba [Wed, 21 Oct 2015 16:07:08 +0000 (17:07 +0100)]
* lisp/isearch.el: Rename word search to regexp-function search
`isearch-word' went well beyond its original purpose, and the name
no longer makes sense. It is now called
`isearch-regexp-function', and it's value should always be a
function that converts a string to a regexp (though setting it to
t is still supported for now).
(isearch-word): Make obsolete.
(isearch-regexp-function): New variable.
(isearch-mode, isearch-done, isearch--state, isearch--set-state)
(with-isearch-suspended, isearch-toggle-regexp)
(isearch-toggle-word, isearch-toggle-symbol)
(isearch-toggle-character-fold, isearch-query-replace)
(isearch-occur, isearch-highlight-regexp)
(isearch-search-and-update, isearch-message-prefix)
(isearch-search-fun-default, isearch-search)
(isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search):
Use it.
(isearch-lazy-highlight-regexp-function): New var.
(isearch-lazy-highlight-word): Make obsolete.
(isearch--describe-regexp-mode): New function.
(isearch--describe-word-mode): Make obsolete.
* lisp/info.el (Info-isearch-search): Use the new var.
* lisp/replace.el (replace-search, replace-highlight): Use the new
var.
* lisp/obsolete/longlines.el (longlines-search-function): Use the
new var.
* lisp/hexl.el (hexl-isearch-search-function): Use the new var.
* lisp/cedet/semantic/senator.el (senator-isearch-search-fun): Use
the new var.
Oleh Krehel [Wed, 21 Oct 2015 14:39:36 +0000 (16:39 +0200)]
Add dired-do-compress-to command bound to "c"
* lisp/dired-aux.el (dired-shell-command): Use the caller's
`default-directory', return the result of `process-file'.
(dired-compress-file-suffixes): Add comment on why "tar -zxf" isn't
used by default.
(dired-compress-files-alist): New defvar.
(dired-do-compress-to): New command.
* lisp/dired.el (dired-mode-map): Bind `dired-do-compress-to' to "c".
(dired-do-compress-to): Add an autoload entry.
Paul Eggert [Wed, 21 Oct 2015 01:27:05 +0000 (18:27 -0700)]
Include-file cleanup for src directory
Omit ‘#include "foo.h"’ unless the file needs foo.h (Bug#21707).
In a few cases, add ‘#include "foo.h"’ if the file needs foo.h
but does not include it directly. As a general rule, a source
file should include foo.h if it needs the interfaces that foo.h
defines.
* src/alloc.c: Don’t include process.h. Include dispextern.h,
systime.h.
* src/atimer.c: Don’t include blockinput.h.
* src/buffer.c: Include coding.h, systime.h. Don’t include
keyboard.h, coding.h.
* src/callint.c: Don’t include commands.h, keymap.h.
* src/callproc.c: Don’t include character.h, ccl.h, composite.h,
systty.h, termhooks.h.
* src/casetab.c: Don’t include character.h.
* src/category.c: Don’t include charset.h, keymap.h.
* src/ccl.h: Don’t include character.h.
* src/character.c: Don’t include charset.h.
* src/charset.c: Don’t include disptab.h.
* src/chartab.c: Don’t include ccl.h.
* src/cm.c: Don’t include frame.h, termhooks.h.
* src/cmds.c: Don’t include window.h, dispextern.h.
* src/coding.c: Don’t include window.h, frame.h.
* src/composite.c: Include composite.h. Don’t include window.h,
font.h.
* src/data.c: Don’t include syssignal.h, termhooks.h, font.h.
* src/dbusbind.c: Don’t include frame.h.
* src/decompress.c: Don’t include character.h.
* src/dired.c: Don’t include character.h, commands.h, charset.h.
* src/dispnew.c: Don’t include character.h, indent.h, intervals.h,
process.h, timespec.h. Include systime.h.
* src/doc.c: Include coding.h. Don’t include keyboard.h.
* src/editfns.c: Include composite.h. Don’t include frame.h.
* src/emacs.c: Include fcntl.h, coding.h. Don’t include
commands.h, systty.h..
* src/fileio.c: Don’t include intervals.h, dispextern.h.
Include composite.h.
* src/filelock.c: Don’t include character.h, systime.h.
* src/fns.c: Don’t include time.h, commands.h, keyboard.h,
keymap.h, frame.h, blockinput.h, xterm.h. Include composite.h.
* src/font.c: Include termhooks.h.
* src/font.h: Don’t include ccl.h, frame.h. Add forward decls of
struct composition_it, struct face, struct glyph_string.
* src/fontset.c: Don’t include buffer.h, ccl.h, keyboard.h,
intervals.h, window.h, termhooks.h.
* src/frame.c: Don’t include character.h, commands.h, font.h.
* src/frame.h: Don’t include dispextern.h.
* src/fringe.c: Don’t include character.h.
* src/ftcrfont.c: Don’t include dispextern.h, frame.h,
character.h, charset.h, fontset.h.
* src/ftfont.c: Don’t include frame.h, blockinput.h, coding.h,
fontset.h.
* src/ftxfont.c: Don’t include dispextern.h, character.h,
charset.h, fontset.h.
* src/gfilenotify.c: Don’t include frame.h, process.h.
* src/gtkutil.c: Include dispextern.h, frame.h, systime.h.
Don’t include syssignal.h, buffer.h, charset.h, font.h.
* src/gtkutil.h: Don’t include frame.h.
* src/image.c: Include fcntl.h and stdio.h instead of sysstdio.h.
Don’t include character.h.
* src/indent.c: Don’t include keyboard.h, termchar.h.
* src/inotify.c: Don’t include character.h, frame.h.
* src/insdel.c: Include composite.h. Don’t include blockinput.h.
* src/intervals.c: Don’t include character.h, keyboard.h.
* src/intervals.h: Don’t include dispextern.h, composite.h.
* src/keyboard.c: Don’t include sysstdio.h, disptab.h, puresize.h.
Include coding.h.
* src/keyboard.h: Don’t incldue systime.h.
* src/keymap.c: Don’t include charset.h, frame.h.
* src/lread.c: Include dispextern.h and systime.h.
Don’t include frame.h. Include systime.h.
* src/macros.c: Don’t include commands.h, character.h, buffer.h.
* src/menu.c: Include character.h, coding.h. Don’t include
dispextern.h.
* src/menu.h: Don’t include systime.h.
* src/minibuf.c: Don’t include commands.h, dispextern.h, syntax.h,
intervals.h, termhooks.h.
* src/print.c: Include coding.h. Don’t include keyboard.h,
window.h, dispextern.h, termchar.h, termhooks.h, font.h.
Add forward decl of struct terminal.
* src/process.c: Don’t include termhooks.h, commands.h,
dispextern.h, composite.h.
* src/region-cache.c: Don’t include character.h.
* src/scroll.c: Don’t include keyboard.h, window.h.
* src/search.c: Don’t include category.h, commands.h.
* src/sound.c: Don’t include dispextern.h.
* src/syntax.c: Don’t include command.h, keymap.h.
* src/sysdep.c: Don’t include window.h, dispextern.h.
* src/systime.h: Use ‘#ifdef emacs’, not ‘#ifdef EMACS_LISP_H’,
* src/term.c: Don’t include systty.h, intervals.h, xterm.h.
* src/terminal.c: Include character.h.
Don’t include charset.h, coding.h.
* src/textprop.c: Don’t include character.h.
* src/undo.c: Don’t include character.h, commands.h, window.h.
* src/unexsol.c: Don’t include character.h, charset.h.
* src/widget.c: Include widget.h. Don’t include keyboard.h,
window.h, dispextern.h, blockinput.h, character.h, font.h.
* src/widgetprv.h: Don’t include widget.h.
* src/window.c: Don’t include character.h, menu.h, intervals.h.
* src/xdisp.c: Include composite.h, systime.h. Don’t include
macros.h, process.h.
* src/xfaces.c: Don’t include charset.h, keyboard.h, termhooks.h,
intervals.h.
* src/xfns.c: Don’t include menu.h, character.h, intervals.h,
epaths.h, fontset.h, systime.h, atimer.h, termchar.h.
* src/xfont.c: Don’t include dispextern.h, fontset.h, ccl.h.
* src/xftfont.c: Don’t include dispextern.h, character.h, fontset.h.
* src/xgselect.c: Don’t include timespec.h, frame.h.
Include systime.h.
* src/xgselect.h: Don’t include time.h.
Use a forward decl to struct timespec instead.
* src/xmenu.c: Don’t include keymap.h, character.h, charset.h,
dispextern.h. Include systime.h.
* src/xml.c: Don’t include character.h.
* src/xrdb.c [USE_MOTIF]: Don’t include keyboard.h.
* src/xselect.c: Don’t include dispextern.h, character.h,
buffer.h, process.h.
* src/xsmfns.c: Don’t include systime.h, sysselect.h.
* src/xterm.c: Don’t include syssignal.h, charset.h, disptab.h,
intervals.h process.h, keymap.h, xgselect.h. Include composite.h.
Paul Eggert [Wed, 21 Oct 2015 01:16:47 +0000 (18:16 -0700)]
(/ N) now returns the reciprocal of N
This is more compatible with Common Lisp and XEmacs (Bug#21690). See:
http://lists.gnu.org/archive/html/emacs-devel/2015-10/msg01053.html
* lisp/color.el (color-hue-to-rgb, color-hsl-to-rgb)
(color-xyz-to-srgb, color-xyz-to-lab):
* lisp/emacs-lisp/cl-extra.el (cl-float-limits):
* lisp/net/shr-color.el (shr-color-hue-to-rgb)
(shr-color-hsl-to-rgb-fractions):
Exploit the change to simplify the code a bit.
* lisp/emacs-lisp/bytecomp.el (byte-compile-quo):
Don’t complain about single-argument calls to ‘/’.
* src/data.c (arith_driver, float_arith_driver):
Implement the change.
Oleh Krehel [Fri, 16 Oct 2015 14:44:20 +0000 (16:44 +0200)]
Update the way directories are compressed
* lisp/dired-aux.el (dired-compress-file-suffixes): Update the recipe
for *.tar.gz decompression to use a pipe.
Add an entry for the default directory compression (to *.tar.g).
(dired-compress-file): Update.
See https://lists.gnu.org/archive/html/emacs-devel/2015-10/msg00949.html.
Nicolas Petton [Mon, 19 Oct 2015 22:11:30 +0000 (00:11 +0200)]
New function seq-position
* lisp/emacs-lisp/seq.el (seq-position): New function.
* test/automated/seq-tests.el: New tests for seq-position.
* doc/lispref/sequences.texi: Add documentation for `seq-position'.
Eli Zaretskii [Mon, 19 Oct 2015 13:15:30 +0000 (16:15 +0300)]
Resurrect image loading under auto-image-file-mode
* src/image.c (x_find_image_fd): Handle the case of -2 returned by
'openp' specially. This special case was lost in the changes on
2015-08-18. (Bug#21685)
Eli Zaretskii [Mon, 19 Oct 2015 07:04:50 +0000 (10:04 +0300)]
Fix return value of 'set-file-extended-attributes'
* lisp/files.el (set-file-extended-attributes): Return non-nil
when setting either ACLs or SELinux context succeeds. Document
the return value. (Bug#21699)
* doc/lispref/files.texi (Changing Files): Document the return
value of set-file-extended-attributes.
Eli Zaretskii [Sat, 17 Oct 2015 12:10:58 +0000 (15:10 +0300)]
Avoid crashes when redisplayng a window changes faces or fonts
* src/xdisp.c (redisplay_internal): If redisplaying the selected
window or one of the frames turns on the frame's 'redisplay' flag,
redisplay again. (Bug#21428)
* src/frame.c (x_set_font): Set the frame's 'fonts_changed' flag.
Paul Eggert [Sat, 17 Oct 2015 02:01:36 +0000 (19:01 -0700)]
Fix quoting of data within htmlfontify doc
* doc/misc/htmlfontify.texi (Data Structures, Customization):
Fix quoting of data structures. A Lisp quote is needed only
when data appears within Lisp code.
Artur Malabarba [Fri, 16 Oct 2015 22:54:38 +0000 (23:54 +0100)]
* emacs-lisp/package.el: Reload archive-contents if priorities change
(package--old-archive-priorities): New variable.
(package-read-all-archive-contents, package-menu--refresh): Use it
to decide when the `package-archive-contents' needs to be read
again.
Paul Eggert [Fri, 16 Oct 2015 21:54:09 +0000 (14:54 -0700)]
Make src headers idempotent and standalone
Redo src/*.h so that each include file is idempotent (that is, can
be included multiple times with the latter inclusions having no
effect) and standalone (that is, can be included by itself,
with no include file other than config.h needed as a prerequisite).
This is standard practice in GNU programs nowadays.
* lwlib/lwlib-widget.h, src/buffer.h, src/category.h, src/character.h:
* src/charset.h, src/coding.h, src/commands.h, src/disptab.h:
* src/fontset.h, src/gnutls.h, src/indent.h, src/keymap.h, src/macros.h:
* src/regex.h [emacs]:
* src/syntax.h, src/systty.h, src/termhooks.h:
Include lisp.h, for Lisp_Object.
* src/buffer.h, src/category.h, src/cm.h, src/commands.h, src/disptab.h:
* src/indent.h, src/intervals.h, src/keyboard.h, src/macros.h:
* src/process.h, src/puresize.h, src/region-cache.h, src/syntax.h:
* src/syssignal.h, src/sysstdio.h, src/systty.h, src/termchar.h:
* src/termopts.h, src/tparam.h, src/unexec.h:
Protect against multiple inclusion.
* src/buffer.h: Include character.h, for STRING_CHAR.
* src/emacsgtkfixed.h (struct frame):
* src/fontset.h (struct face):
* src/region-cache.h (struct buffer):
* src/termhooks.h (struct glyph):
* src/xsettings.h (struct x_display_info):
Add possibly-forward decl.
* src/syntax.h: Include buffer.h, for BVAR.
* src/sysselect.h: Include lisp.h, for eassume.
* src/termchar.h: Include <stdio.h>, for FILE.
* src/widget.h: Include <X11/IntrinsicP.h>, for Widget.
* src/xsettings.h: Include <X11/Xlib.h>, for XEvent.