1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-14 07:20:35 -08:00
Commit graph

126994 commits

Author SHA1 Message Date
Alan Mackenzie
33f856ba01 C Mode: Fix mis-fontification of macro invocation as function declaration
This happened with a macro invocation which was followed by a statement block
in braces.

* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): CASE 11: distinguish
between contexts nil and top, being less permissive in the former case.
(c-just-after-func-arglist-p): call c-forward-decl-or-cast-1 with context top.
2016-09-16 10:47:55 +00:00
Eli Zaretskii
7123896626 Improve the doc string of 'format'
* src/editfns.c (Fformat): Fix ambiguity in the doc string's usage
of a literal period.  (Bug#24407)
2016-09-16 12:55:15 +03:00
Eli Zaretskii
3462fe7335 Improve doc strings in whitespace.el
* lisp/whitespace.el (whitespace-mode, whitespace-newline-mode)
(global-whitespace-mode, global-whitespace-newline-mode): Improve
the doc strings.  (Bug#24413)
2016-09-16 12:46:15 +03:00
Eli Zaretskii
e95d0d15bb Improve detectability of 'next-logical-line' and 'previous-logical-line'
* lisp/simple.el (next-line, previous-line): Mention
'next-logical-line' and 'previous-logical-line' in the doc
strings.  (Bug#24443)
2016-09-16 12:31:41 +03:00
Paul Eggert
8226ac0ae4 Update from gnulib
This incorporates:
2016-09-16 extensions: fix typo in comment
2016-09-16 stdio: don't redefine __USE_MINGW_ANSI_STDIO
* m4/extensions.m4, m4/stdio_h.m4: Copy from gnulib.
2016-09-16 00:56:15 -07:00
Paul Eggert
0bbf00c7f3 Prefer now-standard int width macros
* src/data.c (ULL_WIDTH):
* src/lisp.h (EMACS_INT_WIDTH, BITS_PER_BITS_WORD):
* src/lread.c (read_integer):
* src/term.c (produce_glyphless_glyph):
* src/xterm.c (x_send_scroll_bar_event):
Use *_WIDTH macros instead of CHAR_BIT * sizeof.
* src/data.c (ULL_WIDTH): Rename from BITS_PER_ULL for consistency
with the *_WIDTH standard macros.  All uses changed.
* src/gmalloc.c (INT_BIT): Remove.  All uses replaced with INT_WIDTH.
* src/lisp.h (EMACS_INT_WIDTH): Rename from BITS_PER_EMACS_INT
for consistency with the *_WIDTH standard macros.  All uses changed.
(BITS_PER_CHAR): Remove; all uses replaced by CHAR_BIT.  This must
be the same as CHAR_WIDTH and avoids confusion with Elisp
char-width, which counts columns not bits.
(BITS_PER_SHORT): Remove; all uses replaced by SHRT_WIDTH.
(BITS_PER_LONG): Remove; all uses replaced by LONG_WIDTH.
* src/lread.c: Do not include limits.h since CHAR_BIT is no longer
used directly.
2016-09-15 15:55:30 -07:00
Paul Eggert
8f4b6a20bf Update from gnulib
This incorporates:
2016-09-15 stdint: support new _WIDTH macros
2016-09-15 limits-h: new module
2016-09-15 sys_types: avoid glibc 2.25 warnings about major()
2016-09-15 extensions: port to more ISO C TSes
2016-09-13 intprops: new macro TYPE_WIDTH
2016-09-13 extensions: port to recent ISO C TRs
* .gitignore: Add lib/limits.h.
* doc/misc/texinfo.tex, lib/ftoastr.h, lib/intprops.h:
* lib/stdint.in.h, m4/extensions.m4, m4/stdint.m4, m4/stdio_h.m4:
* m4/sys_types_h.m4: Copy from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
* lib/limits.in.h, m4/limits-h.m4: New files, copie from gnulib.
* nt/gnulib.mk: Merge changes from lib/gnulib.mk.
2016-09-15 15:55:30 -07:00
Michael Albinus
3c586e182c Rework fixing Bug#24432
* lisp/net/tramp.el (tramp-get-buffer): Set connection property
"process-buffer" in order to mark connection as active.

* lisp/net/tramp-cache.el (tramp-get-hash-table)
(tramp-set-connection-property)
(tramp-dump-connection-properties): Do not use "active" property.
(tramp-list-connections): Use "process-buffer" property.

* lisp/net/tramp-cmds.el (tramp-cleanup-connection): Flush process
properties prior deletion of process.
2016-09-15 09:24:07 +02:00
Johan Bockgård
5b6066d942 * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix debug spec (Bug#24430). 2016-09-14 21:50:31 +02:00
Johan Bockgård
0eb85a5091 * lisp/emacs-lisp/edebug.el (defun): Fix debug spec. 2016-09-14 21:01:08 +02:00
Eli Zaretskii
fc77d04659 Avoid compiler warning on MS-Windows due to clone_file
* src/fileio.c (clone_file): Condition on !WINDOWSNT, since the
call to it is not compiled in that build, and having it defined
causes compiler warnings.
2016-09-14 20:46:59 +03:00
Eli Zaretskii
5ad238bf28 Avoid aborts in GC due to abort_on_gc
* src/lisp.h:
* src/print.c (Fprin1_to_string):
* src/eval.c (signal_or_quit):
* src/alloc.c (garbage_collect_1): Remove declarations, setting,
and testing the value of abort_on_gc.  It is no longer needed, and
using it causes rare aborts in GC for no good reason.  (Bug#23912)
2016-09-14 20:41:04 +03:00
Michael Albinus
def4f1ec99 ; Complete fixing Bug#24432 2016-09-14 14:52:54 +02:00
Michael Albinus
8af1763d1f Fix Bug#24432
* lisp/net/tramp-cache.el (tramp-get-hash-table): Initialize a
connection as inactive.
(tramp-set-connection-property): Make the connection active.
(tramp-dump-connection-properties): Don't save "active" property.
(tramp-list-connections): List only active connections.  (Bug#24432)
2016-09-14 11:49:56 +02:00
Lars Ingebrigtsen
9345e638f1 Don't bug out on all-whitespace URLs
* lisp/net/shr.el (shr-expand-url): Don't bug out on
degenerate all-whitespace URLs.
2016-09-14 11:11:34 +02:00
Katsumi Yamaoka
3b9cbacf61 sieve-manage.el: Rename sieve-manage-ignore-broken-tls
* lisp/net/sieve-manage.el (sieve-manage-ignore-starttls):
Rename from sieve-manage-ignore-broken-tls.  If it is set,
sieve-manage will never use STARTTLS even if the server says
it is capable (but may be broken).
2016-09-14 00:07:21 +00:00
Paul Eggert
4a0d8b4cad Port to ISO/IEC TS 18661-1:2014
* src/character.h (CHARACTER_WIDTH): Rename from CHAR_WIDTH.
All uses changed.
2016-09-13 15:31:04 -07:00
Tino Calancha
3988ceaa1c dired-jump: Expand file-name before dired-goto-file call
Command dired-goto-file requires its argument to be an absolute
file name.  Interactively FILE-NAME is read with read-file-name,
which could return an abbreviated file name (Bug#24409).
* lisp/dired-x.el (dired-jump): Use expand-file-name on FILE-NAME.
Clarify in doc string the meaning of arg FILE-NAME.
2016-09-14 00:04:32 +09:00
Tino Calancha
469fcaa7f8 Add test for Bug#21454
* test/lisp/legacy/files-tests.el (files-test-bug-21454): New test.
2016-09-13 18:01:38 +09:00
Katsumi Yamaoka
ead76c4603 * lisp/net/sieve-manage.el (sieve-manage-ignore-broken-tls): Add :version. 2016-09-12 23:41:25 +00:00
TSUCHIYA Masatoshi
5f00d529dc sieve.el: Make the buffer to edit unmodified initially (bug#24423)
* lisp/net/sieve.el (sieve-edit-script):
Make the buffer to edit be not modified-p initially (bug#24423).
2016-09-12 23:08:02 +00:00
TSUCHIYA Masatoshi
b26e342782 sieve-manage.el: Allow user to avoid STARTTLS capability test (bug#24422)
* lisp/net/sieve-manage.el
(sieve-manage-ignore-broken-tls): New user option.
(sieve-manage-open-server):
Don't test STARTTLS capability if the option is set (bug#24422).
2016-09-12 23:06:43 +00:00
Michal Nazarewicz
ee98ca67f8 Fix compiler thinking width and height may be unitialised in frame.c
This fixes the following warning:

	frame.c: In function ‘x_set_frame_parameters’:
	frame.c:3329:25: error: ‘width’ may be used uninitialized in
		this function [-Werror=maybe-uninitialized]
	       adjust_frame_size (f, width_change ? width : -1,
                         ^

* src/frame.c (x_set_frame_parameters): Drop width_changed and
height_changed variables in favour of storing that information in
width and height variables.
2016-09-12 21:57:36 +02:00
Michal Nazarewicz
ef474bd3d6 Fix compiler thinking tmpdir may be unitialised in emacsclient
This fixes the following warning:

	emacsclient.c: In function ‘set_local_socket’:
	/usr/include/x86_64-linux-gnu/bits/string3.h:111:3: error:
		‘tmpdir’ may be used uninitialized in this function
		[-Werror=maybe-uninitialized]
	   return __builtin___stpcpy_chk (__dest, __src, __bos (__dest));
	   ^
	emacsclient.c:1197:17: note: ‘tmpdir’ was declared here
	     const char *tmpdir;

* lib-src/emacsclient.c (set_local_socket): Get rid of use_tmpdir
variable and instead use tmpdir being non-NULL as sign that it should
be used.
2016-09-12 21:57:36 +02:00
Tino Calancha
5d7433aba3 image-dired: Signal an error before calling a missing executable
Reverts commit ca473907
Add a defun to check if an executable exists, and call it
on each function using an external program: when the executable
is not available signal an error.
See discussion on:
https://lists.gnu.org/archive/html/emacs-devel/2016-09/msg00135.html
* lisp/image-dired.el (image-dired--check-executable-exists): New defun.
Throw and error when the executable arg is missing.
(image-dired-display-image, image-dired-rotate-thumbnail)
(image-dired-rotate-original, image-dired-set-exif-data)
(image-dired-get-exif-data):
Use it.
2016-09-13 04:28:42 +09:00
Eli Zaretskii
2675c79db5 Fix daemon shutdown when emacs-kill-hooks ask questions
* lisp/server.el (server-start): Put the server's kill-emacs-hook
last, to allow other hooks to have a frame to interact with the
user.  (Bug#24326)
2016-09-12 21:25:09 +03:00
Paul Eggert
6d6d9cd607 * src/casefiddle.c (casify_word): Simplify. 2016-09-12 08:18:56 -07:00
Paul Eggert
6fdecd4a49 * src/casefiddle.c (casify_word): Return Qnil. 2016-09-12 08:07:12 -07:00
Michal Nazarewicz
728e40088d Refactor common code in {upcase,downcase,capitalize}-word functions
* src/casefiddle.c (operate_on_word): Removed in favour of…
(casify_word) …new function which does what operate_on_word did plus
what all of the common code from *-word functions.
(upcase-word, downcase-word, capitalize-word): Move code common between
those functions (pretty much the whole body of those functions) into
casify_word and use that instead of now deleted operate_on_word.
2016-09-12 13:25:13 +02:00
Paul Eggert
74c5b73521 * doc/lispref/files.texi: Remove @vindex. 2016-09-11 19:55:41 -07:00
Paul Eggert
073048d5de Remove unnecessary ref to coreutils manual
* doc/lispref/files.texi: Document write-region-inhibit-fsync.
2016-09-11 15:44:05 -07:00
Alan Mackenzie
c417f08b16 Correctly fontify C++ direct initializations with parens inside functions
Or, more clearly, when something looks like a function declaration and it's
inside a function, fontify it as a direct initialization.

For this purpose, introduce a "brace stack" for each buffer, where an entry on
the brace stack states how deeply nested a particular position is inside
braces inside a "top level", which includes classes and namespaces.

Also introduce a new "context", "top", with which c-font-lock-declarations
signals to c-forward-decl-or-cast-1 that point is at the top level.

* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): add
c-truncate-bs-cache.
(c-flat-decl-block-kwds, c-brace-stack-thing-key, c-brace-stack-no-semi-key)
(c-type-decl-operator-prefix-key): new language constants/variables.

* lisp/progmodes/cc-engine.el (c-bs-interval, c-bs-cache, c-bs-cache-limit)
(c-bs-prev-pos, c-bs-prev-stack): New mostly local variables for the brace
stack cache.
(c-init-bs-cache, c-truncate-bs-cache, c-truncate-bs-cache, c-brace-stack-at)
(c-bs-at-toplevel-p): New functions which manipulate the brace stack (cache).
(c-find-decl-prefix-search): Keep track of whether we're at top level.
(c-find-decl-spots): New local variable cfd-top-level which records what it
says.  On calling cfd-fun, pass cfd-top-level as an additional argument.
(c-forward-declarator): Add new element DECORATED to the result list.  Set it
to non-nil when a match for c-type-decl-operator-prefix-key is found.
(c-forward-decl-or-cast-1): Handle the newly introduced context "top".
Introduce "CASE 9.5", which recognizes direct initializations.

* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare)
(c-font-lock-enum-tail, c-font-lock-cut-off-declarators)
(c-font-lock-enclosing-decls, c-simple-decl-matchers, c-basic-matchers-after):
Add appropriate `not-top' argument to calls to c-font-lock-declarators.
(c-font-lock-declarators): Additional parameter `not-top'.  Use not-top to
participate in the decision whether to fontify an identifier as a function or
a variable.
(c-font-lock-declarations): The internal lambda function takes an additional
argument `toplev' from c-find-decl-spots, which it uses in determining the
"context" of a declaration.  Add appropriate `not-top' argument to calls to
c-font-lock-declarators.
(c-font-lock-objc-methods): Add extra parameter to internal lambda function,
like for c-font-lock-declarators.

* lisp/progmodes/cc-mode.el (c-basic-common-init): Initialize the brace stack
cache.
2016-09-11 21:09:08 +00:00
Eli Zaretskii
f95ca1268d Avoid signaling errors when computing "Stop" in GDB menu
* lisp/progmodes/gdb-mi.el (gdb-show-stop-p): Don't assume
'gdb-running-threads-count' must have a numeric value.
(Bug#24414)
2016-09-11 22:07:47 +03:00
Philipp Stephani
7edaa77c5e Stop calling ‘byte-compile-log-warning’
For errors, use ‘byte-compile-report-error’ instead so that the error
is registered and causes compilation to fail (Bug#24359).

For warnings, use ‘byte-compile-warn’ instead so that
‘byte-compile-error-on-warn’ is honored (Bug#24360).

* lisp/emacs-lisp/macroexp.el (macroexp--funcall-if-compiled)
(macroexp--warn-and-return): Use ‘byte-compile-warn’ instead of
‘byte-compile-log-warning’.

* lisp/emacs-lisp/bytecomp.el (byte-compile-form, byte-compile-unfold-bcf)
(byte-compile-setq, byte-compile-funcall): Use
‘byte-compile-report-error’ instead of ‘byte-compile-log-warning’.
(byte-compile-log-warning): Convert comment to documentation
string.  Explain that the function shouldn’t be called directly.
(byte-compile-report-error): Add optional FILL argument.

* lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use)
(cconv--analyze-function, cconv-analyze-form): Use
‘byte-compile-warn’ instead of ‘byte-compile-log-warning’.

* lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Use
‘byte-compile-warn’ instead of ‘byte-compile-log-warning’.

* lisp/subr.el (add-to-list): Use ‘byte-compile-report-error’ instead
of ‘byte-compile-log-warning’.
(do-after-load-evaluation): Use ‘byte-compile-warn’ instead of
‘byte-compile-log-warning’.
2016-09-11 18:12:33 +02:00
Paul Eggert
5fd1f7f931 * etc/NEWS: Remove comment lost in emacs-25 merge. 2016-09-10 19:14:44 -07:00
Paul Eggert
31407634f7 Document file synchronization issues
* doc/lispref/files.texi (Files and Storage): New section.
2016-09-10 19:14:44 -07:00
Paul Eggert
9b21d9f911 copy-file now uses GNU/Linux file cloning
From a suggestion by Kieran Colford (see Bug#23904).
* configure.ac: Check for linux/fs.h.
* src/fileio.c [HAVE_LINUX_FS_H]: Include sys/ioctl.h and linux/fs.h.
(clone_file): New function.
(Fcopy_file): Use it.
2016-09-10 19:14:44 -07:00
Alan Third
0fca290ddf Invert y coord of NS image files (bug#7847)
* src/nsterm.m (ns_dumpglyphs_image): Invert y co-ordinate of the image
when compositing.
2016-09-10 23:49:02 +01:00
Noam Postavsky
68f4b52927 Don't require isearch-update before isearch-done
It is useful to be able to call `isearch-done' unconditionally to
ensure a non-isearching state.

* lisp/isearch.el (isearch-done): Check that `isearch--current-buffer'
is a live buffer before using it (Bug #21091).
* test/lisp/isearch-tests.el (isearch--test-done): Test it.
2016-09-10 09:13:09 -04:00
Simen Heggestøyl
367f8568bc * lisp/emacs-lisp/ring.el: Use lexical-binding
* lisp/emacs-lisp/ring.el (ring-elements): Don't use the RESULT
argument of `dotimes' when the iteration variable isn't referred by
it.
(ring-member): Don't pass nil as the RESULT argument of `dotimes'
since it's the default.
2016-09-09 18:46:55 +02:00
Michal Nazarewicz
8634efa381 Split regex character class test into smaller chunks
Having one test for all character classes it is not always trivial to
determine which class is failing.  This happens when failure is caused
by ‘(should (equal (point) (point-max)))’ not being met.

With per-character class tests, it is immidiatelly obvious which test
causes issues plus tests for all classes are run even if some of them
fail.

* test/src/regex-tests.el (regex-character-classes): Delete and split
into…
(regex-tests-alnum-character-class, regex-tests-alpha-character-class,
regex-tests-ascii-character-class, regex-tests-blank-character-class,
regex-tests-cntrl-character-class, regex-tests-digit-character-class,
regex-tests-graph-character-class, regex-tests-lower-character-class,
regex-tests-multibyte-character-class,
regex-tests-nonascii-character-class,
regex-tests-print-character-class, regex-tests-punct-character-class,
regex-tests-space-character-class,
regex-tests-unibyte-character-class,
regex-tests-upper-character-class, regex-tests-word-character-class,
regex-tests-xdigit-character-class): …new tests.
2016-09-09 03:07:15 +02:00
Michal Nazarewicz
4516130d5a Don’t allocate char-table’s extra slots in regexp-out-charset
* lisp/emacs-lisp/regexp-opt.el (regexp-opt-charset): Do not use
'case-table as charmap char-table’s property.  The function has nothing
to do with casing and in addition using 'case-table causes unnecessary
extra slots to be allocated which ‘regexp-opt-charset’ does not use.
2016-09-09 03:07:15 +02:00
Michal Nazarewicz
0e7eb64076 Remove dead loop iterations in regex.c
RE_CHAR_TO_MULTIBYTE(c) yields c for ASCII characters and a byte8
character for c ≥ 0x80.  Furthermore, CHAR_BYTE8_P(c) is true only
for byte8 characters.  This means that

	c = RE_CHAR_TO_MULTIBYTE (ch);
	if (! CHAR_BYTE8_P (c) && re_iswctype (c, cc))

is equivalent to:

	c = c;
	if (! false && re_iswctype (c, cc))

for 0 ⪬ c < 0x80, and

	c = BYTE8_TO_CHAR (c);
	if (! true && re_iswctype (c, cc))

for 0x80 ⪬ c < 0x100.  In other words, the loop never executes for
c ≥ 0x80 and RE_CHAR_TO_MULTIBYTE call is unnecessary for c < 0x80.

* src/regex.c (regex_compile): Simplyfy a for loop by eliminating
dead iterations and unnecessary macro calls.
2016-09-09 03:07:15 +02:00
Michal Nazarewicz
c579b28f62 Replace decimalnump with alphanumericp
decimalnump was used in regex.c only in ISALNUM macro which ored it with
alphabeticp.  Because both of those functions require Unicode general
category lookup, this resulted in unnecessary lookups (if alphabeticp
return false decimalp had to perform another lookup).  Drop decimalnump
in favour of alphanumericp which combines decimelnump with alphabeticp.

* src/character.c (decimalnump): Remove in favour of…
(alphanumericp): …new function.

* src/regex.c (ISALNUM): Use alphanumericp.
2016-09-09 03:07:15 +02:00
Michal Nazarewicz
b1c4c00500 Remove inaccurate comment in regex.c
* src/regex.c (regex_compile): Remove comment indicating that wctype of
some character classes may be negative.  All wctypes are in fact
non-negative.
2016-09-09 03:07:15 +02:00
Michal Nazarewicz
3ffc5f44b0 STRING_CHAR does not unify characters; update documentation
* src/character.h (STRING_CHAR): Update doc.
* src/buffer.h (FETCH_MULTIBYTE_CHAR): Update doc.  While at it, change
the function to use BYTE_POS_ADDR instead of open-coding it.
2016-09-09 03:07:15 +02:00
Simen Heggestøyl
e951aa1459 Add tests for ring.el
* test/lisp/emacs-lisp/ring-tests.el: New file with tests for ring.el.
2016-09-08 19:18:40 +02:00
Martin Rudalics
ba5d32398b New file test/src/marker-tests.el 2016-09-08 08:28:59 +02:00
Paul Eggert
d2f1971dd5 Port flexible array members to GCC + valgrind
These changes are needed to conform to the C standard's rule for
allocating structs containing flexible array members.  C11 says
that malloc (offsetof (struct s, m) + n) does not suffice to
allocate a struct with an n-byte tail; instead, malloc’s arg
should be rounded up to the nearest multiple of alignof (struct s).
Although this is arguably a defect in C11, gcc -O2 + valgrind
sometimes complains when this rule is violated, and when debugging
it’s better to keep valgrind happy.
For details please see the thread containing the message at:
https://gcc.gnu.org/ml/gcc-patches/2016-09/msg00416.html
* lib-src/ebrowse.c, src/alloc.c, src/image.c, src/process.c:
Include flexmember.h.
* lib-src/ebrowse.c (add_sym, add_member, make_namespace)
(register_namespace_alias):
* src/alloc.c (SDATA_SIZE, allocate_string_data):
* src/image.c (xpm_cache_color, imagemagick_create_cache):
* src/process.c (Fmake_network_process):
Use FLEXSIZEOF instead of offsetof and addition.
* src/alloc.c (SDATA_SIZE, vector_alignment):
Use FLEXALIGNOF instead of sizeof (ptrdiff_t).
* src/lisp.h (ALIGNOF_STRUCT_LISP_VECTOR):
Remove, as alloc.c can now calculate this on its own.
2016-09-07 18:10:11 -07:00
Paul Eggert
12a7e0f88e Update from gnulib
This incorporates:
2016-09-07 flexmember: new macro FLEXALIGNOF
2016-09-07 flexmember: port better to GCC + valgrind
2016-08-18 Port modules to use getprogname explicitly
2016-09-02 manywarnings: add -fno-common
* admin/merge-gnulib (GNULIB_TOOL_FLAGS): Don’t avoid flexmember,
since time_rz now uses part of it.  Instead, remove m4/flexmember.m4.
* configure.ac (AC_C_FLEXIBLE_ARRAY_MEMBER): Define away,
since Emacs assumes C99 and therefore removes m4/flexmember.m4.
* lib/euidaccess.c, lib/group-member.c, lib/time_rz.c:
* m4/manywarnings.m4: Copy from gnulib.
* lib/flexmember.h: New file, from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
2016-09-07 18:10:11 -07:00