1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-28 08:11:05 -08:00
Commit graph

128378 commits

Author SHA1 Message Date
Michal Nazarewicz
6220faeb4e casing: don’t assume letters are *either* upper- or lower-case (bug#24603)
A compatibility digraph characters, such as Dž, are neither upper- nor
lower-case.  At the moment however, those are reported as upper-case¹
despite the fact that they change when upper-cased.

Stop checking if a character is upper-case before trying to up-case it
so that title-case characters are handled correctly.  This fixes one of
the issues mentioned in bug#24603.

¹ Because they change when converted to lower-case.  Notice an asymmetry
  in that for a character to be considered lower-case it must not be
  upper-case (plus the usual condition of changing when upper-cased).

* src/buffer.h (upcase1): Delete.
(upcase): Change to upcase character unconditionally just like downcase
does it.  This is what upcase1 was.

* src/casefiddle.c (casify_object, casify_region): Use upcase instead
of upcase1 and don’t check !uppercasep(x) before calling upcase.

* src/keyboard.c (read_key_sequence): Don’t check if uppercase(x), just
downcase(x) and see if it changed.

* test/src/casefiddle-tests.el (casefiddle-tests--characters,
casefiddle-tests-casing): Update test cases which are now passing.
2017-02-15 16:54:07 +01:00
Michal Nazarewicz
5ec3a58462 Generate upcase and downcase tables from Unicode data (bug#24603)
Use Unicode data to generate case tables instead of mostly repeating
them in lisp code.  Do that in a way which maps ‘Dz’ (and similar)
digraph to ‘dz’ when down- and ‘DZ’ when upcasing.

https://debbugs.gnu.org/cgi/bugreport.cgi?msg=89;bug=24603 lists all
changes to syntax table and case tables introduced by this commit.

* lisp/international/characters.el: Remove case-pairs defined with
explicit Lisp code and instead use Unicode character properties.

* test/src/casefiddle-tests.el (casefiddle-tests--characters,
casefiddle-tests-casing): Update test cases which are now working
as they should.
2017-02-15 16:54:06 +01:00
Michal Nazarewicz
0d4290650d Add tests for casefiddle.c (bug#24603)
Fixes cases marked FIXME upcoming in followup commits.

* test/src/casefiddle-tests.el (casefiddle-tests-char-properties,
casefiddle-tests-case-table, casefiddle-tests-casing-character,
casefiddle-tests-casing, casefiddle-tests-casing-byte8,
casefiddle-tests-casing-byte8-with-changes): New tests.
(casefiddle-tests--test-casing): New helper function for runnig
some of the tests.
2017-02-15 16:54:06 +01:00
Michal Nazarewicz
aeeb86c99d oldXMenu: add missing #include <string.h>
Some of the files in oldXMenu use functions from string.h without
including that header which results in compile warnings:

	ChgPane.c:46:5: warning: implicit declaration of function ‘strlen’
	ChgPane.c:46:20: warning: incompatible implicit declaration of
		built-in function ‘strlen’
	ChgSel.c:62:2: warning: implicit declaration of function ‘strlen’
	ChgSel.c:62:17: warning: incompatible implicit declaration of built-in
		function ‘strlen’
	Create.c:220:5: warning: implicit declaration of function ‘strcmp’
	InsPane.c:65:5: warning: implicit declaration of function ‘strlen’
	InsPane.c:65:20: warning: incompatible implicit declaration of
		built-in function ‘strlen’
	InsSel.c:68:5: warning: implicit declaration of function ‘strlen’
	InsSel.c:68:20: warning: incompatible implicit declaration of built-in
		function ‘strlen’
	InsSel.c:75:5: warning: implicit declaration of function ‘strcmp’

Add the necessary ‘#include <string.h>’.

oldXMenu/ChgPane.c, oldXMenu/ChgSel.c, oldXMenu/Create.c, oldXMenu/InsPane.c,
oldXMenu/InsSel.c: add missing #include <string.h>
2017-02-15 16:54:06 +01:00
Paul Eggert
e6041a05a0 Fixup recent rmail patch
* lisp/mail/rmail.el (rmail-epa-decrypt): Remove unused local.
2017-02-15 07:48:30 -08:00
Richard Stallman
971f4fabfa Rmail fix
* lisp/mail/rmail.el (rmail-epa-decrypt-1): Include the just-decrypted text
as element 4 of the value.
(rmail-epa-decrypt): Take the text to insert from that element.
2017-02-15 07:48:30 -08:00
Vibhav Pant
96e18ebb99 bytecomp-tests.el: Store all test forms in one constant.
* test/lisp/emacs-lisp/bytecomp-tests.el: Store all test expressions
in a single constant (byte-opt-testsuite-arith-data), add new forms
which generate lapcode with adjacent/redundant tags.
2017-02-15 21:12:44 +05:30
Glenn Morris
1b685e7a0b Small lispref edit
* doc/lispref/os.texi (User Identification):
Remove extraneous detail about user-mail-address.
2017-02-14 23:34:49 -08:00
Katsumi Yamaoka
8a9c468b6f Document fill-separate-heterogeneous-words-with-space (bug#25685)
* doc/lispref/text.texi (Filling):
Document fill-separate-heterogeneous-words-with-space (bug#25685).
2017-02-15 05:59:29 +00:00
Noam Postavsky
0a64666288 Test comment-multi-line = nil auto fill case too
* test/lisp/progmodes/js-tests.el (js-mode-auto-fill): Test with
`comment-multi-line' both nil and non-nil.
* lisp/newcomment.el (comment-multi-line): Mark safe if it's a
boolean.
* etc/NEWS: Mention that `js-mode' now sets `comment-multi-line'.
2017-02-14 22:29:56 -05:00
Katsumi Yamaoka
61ea36bb37 Don't delete leading and trailing space from CJK word (bug#25685)
* lisp/textmodes/fill.el (fill-delete-newlines):
Don't delete leading and trailing space from CJK word.
(fill-separate-heterogeneous-words-with-space):
New user option that controls it (bug#25685).
2017-02-15 01:26:59 +00:00
Juri Linkov
4e23578127 ‘M-s w RET word C-s’ repeats incremental search.
* lisp/isearch.el (isearch-new-nonincremental): New variable.
(with-isearch-suspended): Bind isearch-new-nonincremental to
isearch-nonincremental, and restore it afterwards.
(isearch-forward-exit-minibuffer, isearch-reverse-exit-minibuffer):
Set isearch-new-nonincremental to nil.  (Bug#25562)
2017-02-15 01:28:15 +02:00
Tom Tromey
3fb9f5452f Make vc-git detect conflict state for vc-dir
* lisp/vc/vc-git.el (vc-git-dir-status-state): New struct.
(vc-git-dir-status-update-file): New function.
(vc-git-after-dir-status-stage, vc-git-dir-status-goto-stage): Use
vc-git-dir-status-state; add 'ls-files-conflict state.
(vc-git-dir-status-files): Create a vc-git-dir-status-state.
2017-02-14 14:07:53 -07:00
Vibhav Pant
71b90192da byte-opt: Replace merged tags in jump tables too. (bug#25716)
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): While merging
  adjacent tags, make sure that the old tag is replaced in all jump
  tables, if any. This fixes the bytecode VM jumping to the wrong
  address in compiled cond forms where the body of a clause was a loop
  of any sort.
2017-02-14 21:53:26 +05:30
Eli Zaretskii
c1eb871e92 ; * test/file-organization.org: Minor copyedits. 2017-02-14 18:17:51 +02:00
Glenn Morris
3f383a4668 Remove overly broad element from default mail-dont-reply-to-names
* lisp/mail/mail-utils.el (mail-dont-reply-to):
Do not include just "user@" in mail-dont-reply-to-names, and simplify.
Ref: lists.gnu.org/archive/html/help-gnu-emacs/2017-02/msg00049.html
* lisp/gnus/message.el (message-dont-reply-to-names): Doc fix.
* doc/misc/message.texi (Wide Reply): Tiny fix re dont-reply-to-names.
2017-02-13 23:36:17 -08:00
Juri Linkov
31b4d9a137 * etc/NEWS: Mention query-replace-from-to-separator. (Bug#25482) 2017-02-14 02:04:28 +02:00
Vibhav Pant
fffd4ffd74 ; etc/TODO: Remove 'switch' item, as it is now implemented. 2017-02-13 22:56:17 +05:30
Arash Esbati
271dcf8652 Match all characters in optional argument of \documentclass
* lisp/textmodes/reftex.el (reftex-TeX-master-file): Match all
characters in optional argument containing name of the main file.
2017-02-13 17:07:12 +01:00
Vibhav Pant
cb410433e0 Merge branch 'master' into feature/byte-switch 2017-02-13 17:07:36 +05:30
Vibhav Pant
e742450427 ; Add more documentation for byte-switch related code. 2017-02-13 16:44:06 +05:30
Katsumi Yamaoka
4b18ef7ba3 Fix non-ASCII text encoding (bug#25658)
* lisp/gnus/mm-bodies.el (mm-encode-body):
Fix non-ASCII text encoding (bug#25658).
2017-02-13 08:30:28 +00:00
Vibhav Pant
c24e8290fa test/lisp/emacs-lisp/bytecomp-tests.el: Add more tests for switch. 2017-02-13 13:18:54 +05:30
Glenn Morris
ef6132c55f Fix recent bootstrap issue by moving string-to-list
* lisp/international/mule-util.el (string-to-list, string-to-vector):
Move from here...
* lisp/subr.el (string-to-list, string-to-vector): ...to here.
The implementation is trivial and at least string-to-list
has ended up being needed early during bootstrap.
2017-02-12 19:02:56 -08:00
Glenn Morris
04ea55fa47 Doc fixes related to mail-host-address
* lisp/startup.el (mail-host-address): Doc fix.
* doc/lispref/os.texi (System Environment):
Remove extraneous details of mail-host-address.
2017-02-12 17:53:13 -08:00
Glenn Morris
e9ec1c5b26 Simplify time-stamp mail host usage
* lisp/time-stamp.el (time-stamp-mail-host-name): Remove function.
(time-stamp-string-preprocess): Handle "h" (mail host) directly.
2017-02-12 17:44:46 -08:00
Glenn Morris
ee9970734f Doc fix for vhdl-mode re mail-host-address
* lisp/progmodes/vhdl-mode.el (vhdl-file-header): Doc fix.
(mail-host-address): Do not add to vhdl-related custom group,
since vhdl-template-replace-header-keywords doesn't use it.
2017-02-12 17:36:33 -08:00
Mark Oteiza
4c1d7acf81 Substitute leading $HOME/ in xdg-user-dirs
* lisp/xdg.el (xdg--substitute-home-env): New function.
(xdg--user-dirs-parse-line): Use it.
(xdg-user-dir): Expand ~/ in xdg-user-dirs values.
2017-02-12 20:31:38 -05:00
Mark Oteiza
01ebe5dc0b * lisp/buff-menu.el: Turn on lexical-binding. 2017-02-12 20:02:26 -05:00
Juri Linkov
d8cca4d8c5 * lisp/replace.el (query-replace-from-to-separator): Move propertize
and char-displayable-p test to query-replace-read-from.
Add choice nil to disable this feature.
(query-replace-read-from): Don't reevaluate custom setting.
Use char-displayable-p to test the first non-whitespace character
in query-replace-from-to-separator, use " -> " when fails.
Add prompt for the case when separator is nil but
query-replace-defaults is non-nil.
Remove unused test for regexp-flag.
Thanks to Thierry Volpiatto <thierry.volpiatto@gmail.com>
2017-02-13 02:37:52 +02:00
Karl Fogel
a84da83c1a Convert more uses of looking-at' to following-char'
This follows up to Mark Oteiza's commit of 12 Feb 2017, 14:46:03 UTC
(commit 91478f4623) with more of the same.

* lisp/bookmark.el (bookmark-send-edited-annotation):
  (bookmark-bmenu-execute-deletions): Replace instances of looking-at
  with char comparisons using following-char.
2017-02-12 17:21:06 -06:00
Paul Eggert
d4429dfd49 Fix typos in tests for lax-plist-get etc.
Problem reported by Eli Zaretskii (Bug#25606#62).
* test/src/fns-tests.el (test-cycle-lax-plist-get)
(test-cycle-plist-put, test-cycle-lax-plist-put):
Fix tests to match behavior.
2017-02-12 12:55:29 -08:00
Michael Albinus
0769c99578 Fix bug#25607
* lisp/net/tramp.el (tramp-completion-file-name-handler):
Improve autoloaded version.
(tramp-autoload-file-name-handler): Avoid recursive load.
(tramp-completion-handle-expand-file-name): Handle empty NAME.
(Bug#25607)
2017-02-12 18:19:32 +01:00
Mark Oteiza
7459cbec95 Remove server-buffer-clients string from minor-mode-alist
* lisp/server.el: Don't put an element for server-buffer-clients into
minor-mode-alist. (Bug#20201)
2017-02-12 11:51:19 -05:00
Mark Oteiza
91478f4623 Nix some useless uses of looking-at, looking-back
* lisp/allout.el (allout-kill-topic):
(allout-next-topic-pending-encryption):
* lisp/bookmark.el (bookmark-kill-line):
* lisp/cus-edit.el (custom-save-variables, custom-save-faces):
* lisp/cus-theme.el (custom-theme-write-variables):
(custom-theme-write-faces):
* lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer):
* lisp/emacs-lisp/checkdoc.el (checkdoc-interactive-loop):
(checkdoc-interactive-ispell-loop):
(checkdoc-message-interactive-ispell-loop, checkdoc-this-string-valid):
(checkdoc-this-string-valid-engine):
* lisp/emacs-lisp/elint.el (elint-get-top-forms):
* lisp/emulation/viper-cmd.el (viper-backward-indent):
* lisp/image-dired.el (image-dired-delete-char):
* lisp/simple.el (kill-visual-line): Replace instances of looking-at,
looking-back with char comparisons using following-char, preceding-char.
2017-02-12 10:59:33 -05:00
Vibhav Pant
219339e2eb ; lisp/emacs-lisp/bytecomp.el: Fix indentation. 2017-02-12 13:24:55 +05:30
Tom Tromey
862d6438cf Recognize JS regexp literals more correctly
Bug#25529
* lisp/progmodes/js.el (js--syntax-propertize-regexp-regexp): New
constant.
(js-syntax-propertize-regexp): Use it.  Remove "end" argument.
(js--syntax-propertize-regexp-syntax-table): Remove.
(js-syntax-propertize): Update.
* test/lisp/progmodes/js-tests.el (js-mode-regexp-syntax-bug-25529):
New test.
2017-02-11 12:30:32 -07:00
Vibhav Pant
e27351e5dd src/bytecode.c (exec_byte_code): Make hash_code a Lisp_Object.
This avoids using XUINT every time while comparing it with
HASH_HASH (h, i), replacing it with EQ.
2017-02-11 23:41:56 +05:30
Vibhav Pant
a35335c767 src/bytecode.c (exec_byte_code): Remove unnecessary (e)assert. 2017-02-11 23:09:47 +05:30
Tom Tromey
c2e19a7340 Fix bug in css--mdn-find-symbol
* lisp/textmodes/css-mode.el (css--mdn-find-symbol): Skip whitespace
before skipping word characters.
test/lisp/textmodes/css-mode-tests.el (css-mdn-symbol-guessing): Add
regression test.
2017-02-11 08:43:47 -07:00
Vibhav Pant
245fb2529b ; src/bytecode.c (exec_byte_code): Refactor byte-switch code.
Remove unnecessary asserts, remove duplicate code.
2017-02-11 20:36:30 +05:30
Vibhav Pant
7c2d493540 src/bytecode.c: Add optional sanity check for jump tables.
* src/bytecode.c (exec_byte_code): When sanity checks are enabled,
  check that the jump table's size is equal to it's count.
2017-02-11 20:13:54 +05:30
Vibhav Pant
c1a9b5db0e Merge branch 'master' into feature/byte-switch 2017-02-11 19:54:37 +05:30
Vibhav Pant
a75d080b17 * src/bytecode.c: Refactor to follow GNU coding standards 2017-02-11 18:17:57 +05:30
Eli Zaretskii
ac83b2dfe4 Fix handling of XBM images on MS-Windows
* src/image.c (xbm_load) [HAVE_NTGUI]: Fix calculation of
'nbytes' when inverting XBM data bits.  (Bug#25661)
2017-02-11 11:55:11 +02:00
Michael Albinus
09d5083420 ; Fix typo in etc/NEWS 2017-02-11 10:29:29 +01:00
Eli Zaretskii
44578d9acc Fix handling of PBM data
* src/image.c (pbm_load): Handle PBM data with no blanks between
individual pixel values correctly.  (Bug#25660)
2017-02-11 11:09:33 +02:00
Noam Postavsky
26187a38a1 Fix warnings in debug tracing code
* src/xdisp.c (dump_glyph, dump_glyph_string):
* src/xfaces.c (dump_realized_face): Cast arguments or adjust format
specifiers to match signedness.
2017-02-10 15:33:05 -05:00
Sam Steingold
59e7efe7bd Extract grep-find-ignored-directories processing from rgrep-default-command
(rgrep-find-ignored-directories): Extract from `rgrep-default-command'.
Some Emacs packages use `grep-find-ignored-directories' to ignore some
directories, so will use this function instead of custom code.
(rgrep-default-command): Use `rgrep-find-ignored-directories'.
2017-02-10 14:53:02 -05:00
Vibhav Pant
dcd0e6fe3a src/bytecode.c: Avoid comparing values unnecessarily in Bswitch
* src/bytecode.c: (exec_byte_code) While linear searching the jump
  table, compare the value's hash table first to avoid calling
  h->test.cmpfn every time.
2017-02-10 23:25:42 +05:30