1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00
Commit graph

126955 commits

Author SHA1 Message Date
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
Noam Postavsky
a08ce41ed8 Don't --load directories
* lisp/startup.el (command-line-1): Only pass expanded FILENAME argument
of --load when it refers to a normal file, since `load' doesn't handle
directories (Bug #16406).
2016-09-07 19:02:43 -04:00
Peder O. Klingenberg
55dde6c1a2 Avoid error in icalendar--read-element
* lisp/calendar/icalendar.el (icalendar--read-element): Avoid a regex
stack overflow by not using regex to extract values from calendar
events. (Bug#24315)
2016-09-07 19:02:43 -04:00
Kaushal Modi
32078ec8c4 Fix back-white <-> black-white typo
* lisp/ps-print.el (ps-begin-job): back-white -> black-white (Bug#24308)
2016-09-07 19:02:16 -04:00
Alan Third
3b3bc36b0d Fix cursor at bottom left of rectangle (bug#24364)
* lisp/rect.el (rectangle--col-pos): Don't assume point at EOL doesn't
require rectangle--point-crutches to be set.
2016-09-07 22:29:14 +01:00
Eli Zaretskii
ec12c6705f Fix documentation of convert-standard-filename on MS-Windows
* lisp/files.el (convert-standard-filename): Doc fix.  (Bug#24387)

* etc/NEWS: Suggest a way for mirroring slashes where previously
'convert-standard-filename' was used.
2016-09-07 19:21:08 +03:00
Paul Eggert
5d2ac7435d Use DEV_TTY more consistently
* src/conf_post.h (DEV_TTY): Move from here ...
* src/keyboard.c, src/keyboard.h: ... to here, as it doesn’t need
to be visible everywhere.  Make it a constant.
* src/keyboard.c (handle_interrupt, Fset_quit_char):
* src/process.c (create_process): Prefer DEV_TTY to "/dev/tty".
2016-09-06 17:29:07 -07:00
Eli Zaretskii
644f77b517 Avoid assertion violations when using marker positions
* src/intervals.c (set_point_from_marker): If MARKER comes from
another buffer, recalculate its byte position before using it to
set point.
* src/marker.c (set_marker_internal): If POSITION is a marker from
another buffer, recalculate its byte position before using it.
(Bug#24368)
2016-09-06 19:46:06 +03:00
Alan Mackenzie
dcfcc59533 * lisp/progmodes/cc-engine.el (c-syntactic-re-search-forward): Fix coding bug 2016-09-06 12:40:41 +00:00
Alan Mackenzie
96a80239e7 New options for handling of literals in c-syntactic-re-search-forward
* lisp/progmodes/cc-engine.el (c-syntactic-re-search-forward): `noerror' can
be given the values `before-literal' and `after-literal', so that when a
search fails, and the `bound' is inside a literal, point is left respectively
before or after that literal.
2016-09-06 11:47:16 +00:00
Eli Zaretskii
6acff25280 Avoid assertion violations when scrolling narrowed buffer
* src/window.c (window_scroll_pixel_based):
* src/xdisp.c (pos_visible_p): Don't allow simulated redisplay to
start outside the accessible portion of the buffer.  This avoids
assertion violations when some Lisp narrows the buffer to less
than the current window, and then attempts to scroll the buffer.
2016-09-05 19:57:22 +03:00
Eli Zaretskii
cfaf18a27c Treat SIGINT correctly in GUI sessions on MS-Windows
* src/w32proc.c (sys_signal): Don't reject SIGINT, as it is
supported by MS runtime.
* src/term.c (DEV_TTY): Move from here ...
* src/conf_post.h (DEV_TTY): ... to here.  Separate definitions
for WINDOWSNT and for the rest.
* src/keyboard.c (handle_interrupt_signal): Use DEV_TTY instead of
a literal "/dev/tty".

* etc/NEWS: Mention the behavior change.
2016-09-05 19:50:59 +03:00
Alan Third
62e4dc4660 Fix synthetic bold on macOS retina displays
* src/macfont.m (macfont_draw): Multiply the synthetic bold scaling
factor by the OS window backing scale factor.
2016-09-04 23:06:14 +01:00
Tino Calancha
ca47390727 image-dired: Report when a necessary executable is not found
See discussion on:
https://lists.gnu.org/archive/html/emacs-devel/2016-08/msg00552.html
* lisp/image-dired.el (image-dired-cmd-rotate-original-program)
(image-dired-cmd-create-thumbnail-program)
(image-dired-cmd-create-temp-image-program)
(image-dired-cmd-rotate-thumbnail-program)
(image-dired-cmd-write-exif-data-program)
(image-dired-cmd-read-exif-data-program):
Use executable-find to set the defaut value of this option.
(image-dired-cmd-rotate-original-program): Idem.
Search for program 'convert' if 'jpegtran' is not available.
(image-dired-cmd-rotate-original-options):
Set the default value consistent with the executable in
image-dired-cmd-rotate-original-program.
(image-dired-create-thumb, image-dired-display-image)
(image-dired-rotate-thumbnail, image-dired-rotate-original)
(image-dired-set-exif-data, image-dired-get-exif-data):
Throw and error when the executable used in the function is missing.
(image-dired-next-line, image-dired-previous-line):
Use 'forward-line'.
2016-09-04 22:41:12 +09:00
Tino Calancha
2db3307e8a image-type-from-file-name: Perform a case insensitive match
Fix Bug#24317
* lisp/image.el (image-type-from-file-name): Bind case-fold-search
to a non-nil value to force a case insensitive match.
* lisp/image-dired.el (image-dired-rotate-original):
Use image-type (Bug#24317).
(image-dired-get-exif-file-name): Idem.
Set 'no-exif-data-found' and 'data' in same setq call.
Use file-attribute-modification-time.
2016-09-04 11:09:31 +09:00
Tino Calancha
7c16c89c57 image-increase-size: Fix non-interactive calls
* lisp/image.el (image-increase-size, image-decrease-size):
Compute a floating point division.
Problem reported in:
https://lists.gnu.org/archive/html/emacs-devel/2016-09/msg00067.html
2016-09-04 10:59:07 +09:00
Robert Cochran
2ad16e4bf9 Fix uses of (call-interactively) in lisp/emacs-lisp/checkdoc.el
Passing the prefix argument as the 3rd argument to 'call-interactively'
causes the prefix argument to be interpreted as events, which is not
only wrong, but also causes a type error, as 'current-prefix-arg' can
never be a vector as 'call-interactively' expects.  'call-interactively'
automatically passes its prefix argument to the called function, so just
do that, eliminating faulty behavior.

* lisp/emacs-lisp/checkdoc.el (checkdoc-ispell):
(checkdoc-ispell-current-buffer):
(checkdoc-ispell-interactive):
(checkdoc-ispell-message-text):
(checkdoc-ispell-start):
(checkdoc-ispell-continue):
(checkdoc-ispell-comments):
(checkdoc-ispell-defun):
Do not pass 'current-prefix-arg' to 'call-interactively' as an event
vector; merely allow it to propagate forward to the interactive call.
2016-09-03 12:02:04 -04:00
Richard Stallman
5fbba6ccea Fix mail-combine-fields
* lisp/mail/sendmail.el (mail-combine-fields): Call `save-excursion' to
avoid losing our place in the search loop.
2016-09-03 11:46:50 -04:00
Stefan Monnier
5a4bffb661 Check actual contents before promting about changed file
* lisp/userlock.el (userlock--check-content-unchanged)
(userlock--ask-user-about-supersession-threat): New functions.
* src/filelock.c (lock_file): Use them to avoid spurious prompting.
* doc/lispref/buffers.texi (Modification Time): Update doc of
ask-user-about-supersession-threat.
2016-09-02 11:44:13 -04:00
Michael Albinus
7dc4c3ba3f Make a reference to fakecygpty in the Tramp manual
* doc/misc/tramp.texi (Windows setup hints): Make a reference to
fakecygpty on the Emacs Wiki.
(Frequently Asked Questions): Fix url.
2016-09-02 10:07:09 +02:00
Paul Eggert
a550909948 Don’t create fd >= FD_SETSIZE
This avoids a potential crash if too many subprocesses (Bug#24325).
* src/process.c [HAVE_SETRLIMIT]: Include <sys/resource.h>.
(init_process_emacs): If ulimit -n is greater than FD_SETSIZE,
set it to FD_SETSIZE.
2016-09-01 21:16:03 -07:00
Alan Mackenzie
dda2d6a311 Fix c-declaration-limits to return correct limits in all cases.
This function is the guts of c-indent-defun and c-mark-function.

In particular, when c-defun-tactic is nil, return a correct value rather than
always nil, and when it's 'go-outward, go through an intricate algorithm to
determine the requisite narrowing before the "top-level" defuns go to work.

* lisp/progmodes/cc-cmds.el (c-narrow-to-most-enclosing-decl-block): Enhance
to take additional optional parameter LEVEL, saying how many enclosing levels
of decl-block to narrow to.
(c-declaration-limits): Introduce algorithm to determine narrowing.  Use
c-where-wrt-to-brace-block to determine whether to go back to BOD to determine
lower bound.
2016-09-01 18:12:43 +00:00
Eli Zaretskii
0c94b84708 * nt/inc/ms-w32.h (execve) [MINGW_W64]: Make commentary more accurate. 2016-09-01 20:15:25 +03:00
Eli Zaretskii
51b14b1f53 Avoid compiler warnings with MinGW64 GCC 6
* nt/inc/ms-w32.h (execve) [MINGW_W64]: Make the prototype match
the GCC 6 builtin, to avoid warnings.  For more details, see
http://lists.gnu.org/archive/html/emacs-devel/2016-08/msg00721.html.
2016-09-01 17:12:12 +03:00
Glenn Morris
1d4bb91a3b ; Auto-commit of loaddefs files. 2016-09-01 06:18:15 -04:00
Paul Eggert
39aaf88feb Fix over-substitution of quotes on error
Problem reported by Tino Calancha in:
http://lists.gnu.org/archive/html/emacs-devel/2016-09/msg00000.html
* src/print.c (print_error_message):
Substitute quotes in errmsg only when gotten from a property.
2016-08-31 23:06:16 -07:00
Eli Zaretskii
64507149f4 Improve testing of etags
* test/manual/etags/y-src/cccp.c:
* test/manual/etags/y-src/parse.c: Correct #line directives to
allow testing invalidate_nodes in etags.c.
* test/manual/etags/ETAGS.good_1:
* test/manual/etags/ETAGS.good_2:
* test/manual/etags/ETAGS.good_3:
* test/manual/etags/ETAGS.good_4:
* test/manual/etags/ETAGS.good_5:
* test/manual/etags/ETAGS.good_6:
* test/manual/etags/CTAGS.good: Adapt to changes in test files.
2016-08-31 20:22:22 +03:00
Eli Zaretskii
2030ddbd15 * lib-src/etags.c (invalidate_nodes): Fix another thinko. 2016-08-31 20:19:42 +03:00
Paul Eggert
9166d40251 Fix etags problems found by static checking
* lib-src/etags.c (invalidate_nodes, put_entry):
Remove now-unnecessary tests for null pointers.  Simplify.
(put_entries): Rewrite to avoid GCC 6.2 warning about
dereferencing null pointer.
2016-08-31 10:15:45 -07:00
Eli Zaretskii
4ec31277e7 Fix a thinko in etags.c
* lib-src/etags.c (invalidate_nodes): Don't try to dereference
a null pointer.
2016-08-31 19:57:59 +03:00
Eli Zaretskii
6d8144a2ab Avoid recursive calls in etags
* lib-src/etags.c (stack_entry): New struct.
(push_node, pop_node, put_entry): New functions.
(free_tree, add_node, invalidate_nodes, put_entries): Re-implement
in a non-recursive way, to avoid stack overflow.  (Bug#5847)
2016-08-31 18:53:43 +03:00
Leo Liu
6f125aa3de Add 451 to url-http-codes
* lisp/url/url-http.el (url-http-codes): Add 451.
2016-08-31 16:39:13 +08:00
Paul Eggert
1393a4d22c ; Spelling and quotation fixes 2016-08-30 20:54:42 -07:00
Paul Eggert
f24011b4d1 * src/editfns.c (Fformat_message): Fix doc to match current behavior. 2016-08-30 19:55:07 -07:00
Paul Eggert
6f40b8b23a Minor doc quoting fixes
* doc/misc/htmlfontify.texi (Interactive):
* lisp/htmlfontify.el (htmlfontify-buffer):
Spell out character names, for clarity.  The old doc string
generated the *Help* text ‘^L ([FF]) or ¤ (244)’, where ‘[FF]’
stands for a form feed character; this was confusing.
* lisp/electric.el (electric-quote-mode):
* src/doc.c (syms_of_doc):
* src/editfns.c (Fformat_message):
Remove no-longer-necessary ‘\=’s in doc strings.
2016-08-30 19:45:05 -07:00
Paul Eggert
6cf3ee3d54 Update from gnulib
This incorporates:
2016-08-30 intprops: tune INT_NEGATE_OVERFLOW for GCC 5 and 6
2016-08-29 xalloc-oversized.h: port change to GCC 6.2.0
2016-08-29 intprops.h: port recent changes to GCC 6.2.0
2016-08-29 intprops.h: use __typeof__ with GCC 7
2016-08-29 intprops.h, xalloc-oversized.h: work with gcc 7
2016-08-24 intprops: fix paren typo on old platforms
2016-08-24 intprops: port to OpenVMS
* lib/intprops.h, lib/xalloc-oversized.h: Copy from gnulib.
2016-08-30 13:16:22 -07:00
Tassilo Horn
1145322a11 Fix rules for \phi and \varphi which were reversed
* lisp/leim/quail/latin-ltx.el: Special-case phi/varphi because those
  are reversed in ucs-names.  Also remove FIXME stating sigma/varsigma
  were reversed which is not true (anymore?).
2016-08-30 20:30:46 +02:00
Tassilo Horn
6730432053 Fix prettification of \phi, \varphi, and \varsigma
* lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Fix
  prettification of \phi, \varphi, and \varsigma.

Concretely, \phi's symbol was actually varphi, \varphi was missing, and
\varsigma was commented out with a FIXME that it was reversed with
\sigma which it was not.
2016-08-30 19:51:33 +02:00
Karl Fogel
2b404e8391 Use normal double quotes in TeX / LaTeX comments
* lisp/textmodes/tex-mode.el (tex-insert-quote): When in a comment,
  default to inserting a normal double quote (") instead of TeX-style
  open (``) or close ('') quote marks.

* etc/NEWS (TeX mode): Note the change.

* test/lisp/electric-tests.el (autowrapping-7): Adjust accordingly.

See this thread for discussion:

  https://lists.gnu.org/archive/html/emacs-devel/2016-08/msg00611.html
  From: Karl Fogel <kfogel {_AT_} red-bean.com>
  To: Emacs Development <emacs-devel {_AT_} gnu.org>
  Subject: [PATCH] Have LaTeX mode use normal double quotes in comments.
  Date: Mon, 29 Aug 2016 14:44:12 -0500
  Message-ID: <87twe3icmr.fsf@red-bean.com>
2016-08-30 11:14:37 -05:00
Alan Mackenzie
a9118afcd7 Correctly analyze C++ list initialization in member init areas.
* lisp/progmodes/cc-engine.el (c-back-over-list-of-member-inits): Remove a
superfluous call to c-backward-syntactic-ws.
(c-looking-at-or-maybe-in-bracelist): Change calling convention, so that it
reports encountering the Java "new" keyword.  Add, as an alternative, a check
that we can move back over member initializations, and handle this as finding
a brace block.
(c-looking-at-special-brace-list, c-guess-continued-construct): Adapt to the
new calling convention of c-looking-at-or-maybe-in-bracelist.
(c-guess-basic-syntax, CASE 5A.3): Replace lots of inline ad-hoc code with
calls to c-backward-over-enum-header and c-looking-at-or-maybe-in-bracelist,
using the extra info from the value of that function to generate a
topmost-into-cont element where needed (in Java).

* lisp/progmodes/cc-fonts.el (c-font-lock-declarations): Adapt to the new
calling convention of c-looking-at-or-maybe-in-bracelist.

* lisp/progmodes/cc-mode.el (c-fl-decl-start): Adapt to the new calling
convention of c-looking-at-or-maybe-in-bracelist.
2016-08-30 15:36:15 +00:00