Commit graph

906 commits

Author SHA1 Message Date
Eli Zaretskii
b603affa1f Revert "Fix tempfile creation when byte compiling"
This reverts commit 4fd446e9f6:
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
2018-01-20 09:48:22 +02:00
Paul Eggert
4fd446e9f6 Fix tempfile creation when byte compiling
This improves on the recent fix for master failing to build
on FreeBSD.  Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2018-01/msg00600.html
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
2018-01-19 14:40:56 -08:00
Stefan Monnier
728ded05f6 * lisp/emacs-lisp/bytecomp.el: Tweak last change
(byte-compile-file): Move comment closer to the code it describes.
2018-01-19 11:29:13 -05:00
Eli Zaretskii
c6c05e2aa9 Unbreak building Emacs on FreeBSD
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don't create
the temporary file under temporary-file-directory if the file
being compiled is specified by an absolute file name.  This avoids
problems with ACL copying from temporary-file-directory on
FreeBSD.  For the details, see
http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00513.html.
2018-01-19 17:31:54 +02:00
Noam Postavsky
5f72004678 Revert "Fix command repetition with lexical-binding (Bug#29334)"
It does not work with more complicated interactive forms, because
byte-compile-lambda actually receives an intermediate form of code
rather than valid lisp source (Bug#29988).
* src/callint.c (Fcall_interactively):
* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Revert previous
change, and update commentary.
2018-01-06 21:22:24 -05:00
Noam Postavsky
ce48658191 Fix command repetition with lexical-binding (Bug#29334)
`call-interactively' relies on analyzing the source of `interactive'
forms in order to preserve arguments like (region-end) in the command
history, rather than just storing the resulting position.  However,
the byte-compiler does not preserve the source of the interactive form
when lexical-binding is in effect, because `call-interactively' would
evaluate the form with dynamic binding in that case.

To fix this, change `call-interactively' so that it checks compiled
functions for lexical-binding as well.  Then the byte-compiler can
preserve the source of interactive forms regardless of the value of
lexical-binding.

* src/callint.c (Fcall_interactively): Functions compiled with
lexical-binding have their arglist encoded as an integer, use this to
choose the right kind of binding for compiled functions too.
* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Preserve the
uncompiled form of the interactive form when lexical-binding is
enabled too.
2018-01-03 20:51:28 -05:00
Paul Eggert
bb267f17f9 Merge from origin/emacs-26
63b04c11d5 Fix copyright years by hand
5c7dd8a783 Update copyright year to 2018
220a9ecba1 Merge from Gnulib
312c565566 Don't add empty keyboard macro to macro ring (Bug#24992)
39ca289a7a Allow customization of decoding of "man" command
f8240815ea * etc/NEWS: Add security consideration note on passphrase ...
0c78822c70 Fix subtle problem with scroll-down when scroll-margin is ...
acd289c5a4 Fix problems with indexing in User manual
b240c7846b * lisp/help.el (describe-key): Only (copy-sequence elt) wh...
e879a5444a * src/buffer.c (Frestore_buffer_modified_p): Fix bug#29846
81b1028b63 Improve documentation of 'inhibit-modification-hooks' and ...
7175496d7a Fix doc string of 'enable-recursive-minibuffers'
5b38406491 Fix documentation of delsel and of killing text

# Conflicts:
#	etc/NEWS
#	etc/refcards/ru-refcard.tex
2018-01-01 01:13:04 -08:00
Paul Eggert
5c7dd8a783 Update copyright year to 2018
Run admin/update-copyright.
2018-01-01 00:57:59 -08:00
Glenn Morris
b1cf262a79 Merge from origin/emacs-26
b3f4a3a (origin/emacs-26) Special-case %DUMBFW for GnuTLS between 3.2...
c2ae057 Work around GnuTLS version issues with %DUMBFW (tiny change)
2f9d9ef ; Remove the mention of "plain C code" in the docstring as well
aca827b Merge branch 'widen-less' into emacs-26
87548f5 ; Rephrase NEWS entry a bit
da0d773 (emacs-26) ; * lisp/erc/erc.el: Update URL.
3a60515 * lisp/erc/erc.el (erc-shorten-server-name): Silence compiler...
471b6c1 ; Replace non-ascii quote characters in doc strings etc
7af7f5e Fix some more aliases to user options
79fb4b5 Fix some flymake aliases
b9fbc03 (origin/widen-less) Widen in indent-for-tab-command in the no...
446faf3 Replace the mention of c-indent-defun with js-indent-line
7e9eef0 Consolidate 'widen' calls

# Conflicts:
#	etc/NEWS
#	lisp/progmodes/flymake-proc.el
2017-12-20 21:15:43 -05:00
Glenn Morris
471b6c163f ; Replace non-ascii quote characters in doc strings etc 2017-12-20 16:23:11 -05:00
Glenn Morris
8e46d93dcd Merge from origin/emacs-26
28e0261890 * lisp/progmodes/cc-defs.el (c-version): Update to 5.33.1.
ac53084f9b Improve fix for Bug#29712
ffd4771560 * doc/lispref/sequences.texi (Sequence Functions): Improve...
f274cbd185 Avoid reordering of output in 'shr-insert-document'
7890864413 Improve documentation of 'invisible-p'
a1327bbc64 Remove one more check that Vframe_list is non-nil
63b6281fdd Fix off-by-one error in 'css--hex-color'
804b37ca63 Save and restore text-pixel height and width of frames (Bu...
777fe94661 Partially revert "Mention new strictness for &optional, &r...
ad17db7964 * lisp/vc/smerge-mode.el (smerge-refine): Respect font-loc...
5a7d0095a4 * lisp/vc/smerge-mode.el (smerge-refine): Replace obsolete...
e019c35df6 FOR_EACH_FRAME no longer assumes frame-list
d64b88da2f * src/font.c (Ffont_info): Doc fix.  (Bug#29682)
92b2604a7f Modernise message.el face spec syntax
b1efbe6564 Update message.el obsolete face aliases
2494c14e76 ; * lisp/comint.el (comint-terminfo-terminal): Add a :vers...
12ad276d15 Improve documentation of TERM environment variable
8ed529f0f3 Add option to configure comint TERM
889f07c352 Better support utf-8-with-signature and utf-8-hfs in XML/HTML
a2697fac0e * lisp/menu-bar.el (menu-bar-mode): Doc fix.
ffb50eace6 ; * etc/NEWS: Fix last change.
95606af8b0 Fix Bug#29712 in tramp-tests.el
9bf66c6bee Don't run FOR_EACH_FRAME when there's no frame left (Bug#2...
c2a88ec8e8 * lisp/textmodes/tex-mode.el: Ensure uncompiled file is lo...
b178870528 Remember password change for IMAP in Gnus (Bug#29692)
a21dac18bb Add %DUMBFW to the default GnuTLS priority strings
780407cff1 Small fixes prompted by make check-declare
541a60108d Fix some custom groups
e220d6e112 Fix fontification of first declaration within a C++ lambda...
aa66da220c * src/data.c (Fadd_variable_watcher): Doc fix.
f838210b01 Fix misfontification of C++ member initialization list aft...
232c6465ce Fix doc-string of Fbuffer_list
3f9aac68d7 Don't raise an extraneous frame (bug#29696)
e7b1111155 Mention new strictness for &optional, &rest in arglists (B...
4cb8696e47 Don't misfontify "foo ()" inside C++ initialization parent...
ce31e726ad Fixes for defcustoms, prompted by cus-test-opts
aacd1e14fc * lisp/net/newst-backend.el (newsticker--raw-url-list-defa...
7e2f4d3d41 * lisp/htmlfontify.el (hfy-which-etags): Fix it.
52d2a690f6 Add missing :version tags revealed by cusver-check
f5d0360234 Escape column-zero doc parens

# Conflicts:
#	etc/NEWS
2017-12-16 12:18:45 -08:00
Glenn Morris
5e6fb1e246 Automatically evaluate top-level define-obsolete-function-alias etc
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-make-obsolete):
New handler.
2017-12-15 16:22:25 -05:00
Glenn Morris
52d2a690f6 Add missing :version tags revealed by cusver-check
* lisp/comint.el (comint-move-point-for-matching-input):
* lisp/epa.el (epa-replace-original-text):
* lisp/image-dired.el (image-dired-cmd-optipng-program)
(image-dired-cmd-optipng-options):
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-use-jump-table):
* lisp/gnus/gnus-cloud.el (gnus-cloud-storage-method)
(gnus-cloud-interactive):
* lisp/net/mailcap.el (mailcap-user-mime-data):
* lisp/progmodes/cc-vars.el (c-asymmetry-fontification-flag)
(c-noise-macro-names, c-noise-macro-with-parens-names):
* lisp/progmodes/flymake.el (flymake-start-on-flymake-mode)
(flymake-wrap-around):
* lisp/progmodes/grep.el (grep-use-null-filename-separator):
* lisp/progmodes/js.el (js-indent-align-list-continuation):
* lisp/progmodes/perl-mode.el (perl-flymake-command):
* lisp/progmodes/python.el (python-flymake-command)
(python-flymake-command-output-pattern, python-flymake-msg-alist):
* lisp/progmodes/ruby-mode.el (ruby-flymake-use-rubocop-if-available)
(ruby-rubocop-config):
* lisp/textmodes/less-css-mode.el (less-css):
* lisp/textmodes/tex-mode.el (tex-chktex-program)
(tex-chktex-extra-flags): Add missing :version tags.
2017-12-12 23:21:24 -08:00
Philipp Stephani
8b8197235f Raise an error when detecting old-style backquotes.
They have been deprecated for a decade now.

* src/lread.c (Fload): Don't use record_unwind_protect to warn about
old-style backquotes any more.  They now generate a hard error.
(read1): Signal an error when detecting old-style backquotes.  Remove
unused label.
(syms_of_lread): Remove unused internal variable
'lread--old-style-backquotes'.
(load_error_old_style_backquotes): Rename from
'load_warn_oldstyle_backquotes'.  Signal an error.

* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Remove check
from byte compiler.  It isn't triggered any more.

* test/src/lread-tests.el (lread-tests--old-style-backquotes): Adapt
unit test.

* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--old-style-backquotes)
(bytecomp-tests-function-put): Adapt unit tests.

* etc/NEWS: Document change.
2017-12-09 21:24:05 +01:00
Eli Zaretskii
bf9b972843 Fix byte compilation of files with leading directories
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Pass basename
of target-file to make-temp-file, in case target-file includes a
leading directory that might not exist under TMPDIR.  See
http://lists.gnu.org/archive/html/emacs-devel/2017-11/msg00680.html
for the details.
2017-12-02 13:29:39 +02:00
Glenn Morris
408862f02a ; * lisp/emacs-lisp/bytecomp.el: Tweak message formatting in previous. 2017-11-29 15:27:06 -05:00
Glenn Morris
9964db4c34 Restore obsolete method of changing byte-compile-dest-file
* lisp/emacs-lisp/bytecomp.el (byte-compile-dest-file):
Restore seven-year obsolete feature that was removed for six months,
since automake uses it.
2017-11-29 15:11:01 -05:00
Glenn Morris
f2e6961a1b ; * lisp/emacs-lisp/bytecomp.el (byte-compile-dest-file):
Fix typo in previous.
2017-11-27 14:25:35 -05:00
Glenn Morris
1c8bd8a119 A few small doc fixes for bytecomp.el
* lisp/emacs-lisp/bytecomp.el (emacs-lisp-file-regexp)
(byte-compile-dest-file-function, byte-compile-dest-file): Doc fixes.
2017-11-27 14:10:34 -05:00
João Távora
30ea272fe4 Hook Flymake onto proper checkdoc and byte-compile interfaces
The interfaces in bytecomp.el and checkdoc.el are mostly boilerplate,
with little knowledge of actual internals or thought given to the
usefulness of said interfaces in contexts other than Flymake's.

* lisp/emacs-lisp/bytecomp.el
(byte-compile-log-warning-function): New variable.
(byte-compile-log-warning): Use it.
(byte-compile--log-warning-for-byte-compile): New function.

* lisp/emacs-lisp/checkdoc.el
(checkdoc-create-error-function): New variable.
(checkdoc-create-error): Use it.
(checkdoc--create-error-for-checkdoc): New function.xo

* lisp/progmodes/flymake-elisp.el (flymake-elisp--checkdoc-1):
Use checkdoc-create-error-function.
(flymake-elisp--batch-byte-compile): Use
byte-compile-log-warning-function.
2017-10-03 14:18:55 +01:00
Paul Eggert
bc511a64f6 Prefer HTTPS to FTP and HTTP in documentation
Most of this change is to boilerplate commentary such as license URLs.
This change was prompted by ftp://ftp.gnu.org's going-away party,
planned for November.  Change these FTP URLs to https://ftp.gnu.org
instead.  Make similar changes for URLs to other organizations moving
away from FTP.  Also, change HTTP to HTTPS for URLs to gnu.org and
fsf.org when this works, as this will further help defend against
man-in-the-middle attacks (for this part I omitted the MS-DOS and
MS-Windows sources and the test tarballs to keep the workload down).
HTTPS is not fully working to lists.gnu.org so I left those URLs alone
for now.
2017-09-13 15:54:37 -07:00
Noam Postavsky
160295867d Support lazy loading for autogenerated usage docstrings too (Bug#27748)
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble):
Consider any documentation that ended up in code as a docstring (e.g.,
autogenerated (fn ARG1 ARG2) type things), not just what the user
passed.
2017-08-30 20:07:39 -04:00
Noam Postavsky
112fbe3515 Minor simplification for byte-compile-constant-push
* lisp/emacs-lisp/bytecomp.el (byte-compile-constant): Move the meat
of the code from here...
(byte-compile-constant-push): ... to here.  No need to bind
byte-compile--for-effect anymore.
2017-08-29 22:58:50 -04:00
Paul Eggert
231bfd6818 Fix over-protection of byte-compiled files
Problem reported by Sven Joachim (Bug#28244).
Also, fix similar problem for autoload files.
* lisp/emacs-lisp/autoload.el (autoload--save-buffer):
Set temp file modes to the buffer-file-name file modes (or 666
if not available) as adjusted by umask.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Set temp file modes to 666 as adjusted by umask.
2017-08-26 23:07:58 -07:00
Noam Postavsky
2326a3ab13 Stop printing '4' in .elc files after 'define-symbol-prop' calls
* lisp/emacs-lisp/bytecomp.el (byte-compile-define-symbol-prop):
Return nil in case we have compiled the form, to prevent a redundant
constant from getting added to the compiled output.
2017-08-19 23:29:28 -04:00
Stefan Monnier
cc30d77ecd Let `define-symbol-prop' take effect during compilation
* src/fns.c (syms_of_fns): New variable `overriding-plist-environment'.
(Fget): Consult it.
* lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables): Let-bind
it to nil.
(byte-compile-define-symbol-prop): New function, handles compilation
of top-level `define-symbol-prop' and `function-put' calls by putting
the symbol setting into `overriding-plist-environment'.

Co-authored-by: Noam Postavsky <npostavs@gmail.com>
2017-08-07 18:54:49 -04:00
Paul Eggert
785a4a1d52 Fix a couple of make-temp-file races
* lisp/emacs-lisp/autoload.el (autoload--save-buffer):
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Use make-temp-file, not make-temp-name, to avoid an unlikely race
that could lose data.  Remove the deletion hook as quickly as
possible after the file is renamed; though a race still remains
here, it is smaller than before.
2017-08-05 21:28:09 -07:00
Stefan Monnier
6e2d6d54e1 * lisp/emacs-lisp/bytecomp.el: Fix bug#14860.
* lisp/emacs-lisp/bytecomp.el (byte-compile--function-signature): New fun.
Dig into advice wrappers to find the "real" signature.
(byte-compile-callargs-warn, byte-compile-arglist-warn): Use it.
(byte-compile-arglist-signature): Don't bother with "new-style" arglists,
since bytecode functions are now handled in byte-compile--function-signature.

* lisp/files.el (create-file-buffer, insert-directory):
Remove workaround introduced for (bug#14860).

* lisp/help-fns.el (help-fns--analyse-function): `nadvice` is preloaded.

* lisp/help.el (help-function-arglist):
Dig into advice wrappers to find the "real" signature.
2017-07-14 11:27:21 -04:00
Philipp Stephani
0dd1bbb0bb Implement field numbers in format strings
A field number explicitly specifies the argument to be formatted.
This is especially important for potential localization work, since
grammars of various languages dictate different word orders.

* src/editfns.c (Fformat): Update documentation.
(styled_format): Implement field numbers.

* doc/lispref/strings.texi (Formatting Strings): Document field numbers.

* lisp/emacs-lisp/bytecomp.el (byte-compile-format-warn): Adapt.

* test/src/editfns-tests.el (format-with-field): New unit test.
2017-06-02 00:22:13 +02:00
Philipp Stephani
ebe0bdae9d Don't attempt to recover from undefined behavior in some cases
These functions can only be run in batch mode and exit Emacs on
return, so nothing can be recovered.  Disable unsafe recover
mechanisms so that we get real failures and good stack traces on
fatal signals.

* lisp/emacs-lisp/bytecomp.el (batch-byte-compile)
(batch-byte-recompile-directory):
* lisp/emacs-lisp/ert.el (ert-run-tests-batch-and-exit)
(ert-summarize-tests-batch-and-exit): Don't attempt to recover
from undefined behavior.
2017-05-27 15:30:19 +02:00
Andreas Politz
f151eb0141 Don't save unrelated buffers before recompiling directory (Bug#25964)
* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Only save
buffers visiting lisp files under the directory being compiled.
2017-05-20 18:28:23 -04:00
Philipp
a1d4615921 Make `old-style-backquotes' variable internal
* src/lread.c (load_warn_old_style_backquotes, Fload, read1)
(syms_of_lread): Rename `old-style-backquotes' to
`lread--old-style-backquotes', and clarify that it's for internal
use only.
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Rename
variable.
* test/src/lread-tests.el (lread-tests--old-style-backquotes): Add
unit test.
* emacs-lisp/bytecomp-tests.el
(bytecomp-tests--old-style-backquotes): Add unit test.
2017-05-13 12:32:29 +02:00
Philipp Stephani
16004397f4 Improve unescaped character literal warnings
* src/lread.c (load_warn_unescaped_character_literals)
(syms_of_lread):
lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Improve
formatting of unescaped character literal warnings.

* test/src/lread-tests.el (lread-tests--unescaped-char-literals):
test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--unescaped-char-literals): Adapt unit tests.
2017-05-13 12:28:48 +02:00
Glenn Morris
233cfb0ea9 Remove obsolete method of changing byte-compile-dest-file
* lisp/emacs-lisp/bytecomp.el (byte-compile-dest-file):
Define unconditionally.
2017-05-06 18:06:17 -07:00
Philipp Stephani
c2bbdc3316 Warn about missing backslashes during load
* src/lread.c (load_warn_unescaped_character_literals, Fload, read1)
(syms_of_lread): Warn if unescaped character literals are
found (Bug#20152).
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Check for
unescaped character literals during byte compilation.
* test/src/lread-tests.el (lread-tests--unescaped-char-literals): New
unit test.
(lread-tests--with-temp-file, lread-tests--last-message): Helper
functions for unit test.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--unescaped-char-literals): New unit test.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--with-temp-file):
Helper macro for unit test.
2017-05-01 20:39:10 +02:00
Vibhav Pant
1c91bc9221 b-c--cond-jump-table-info: Use correct body for singleton clauses
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table-info):
When a clause's body consists of a single constant expression, use
that expression as the body to be compiled. This fixes switch bytecode
evaluating to nil to such clauses.
2017-04-22 22:08:15 +05:30
Vibhav Pant
b389379c87 bytecomp: Don't inline functions that use byte-switch (Bug#26518)
* lisp/emacs-lisp/bytecomp.el (byte-compile-unfold-bcf): Don't inline
  FORM if the bytecode uses the byte-switch instruction. It is
  impossible to guess the correct stack depth while inlining such
  bytecode, resulting in faulty code.
2017-04-20 21:23:08 +05:30
Glenn Morris
b6a57fb80c Tweak bytecomp's loading of cl-extra
* lisp/emacs-lisp/bytecomp.el: Don't force load of cl-extra in a
post-bootstrap emacs where cl-loaddefs does exist.
2017-04-18 20:52:22 -04:00
Paul Eggert
55086ef651 Fix obsolete ‘test/automated’ references
* Makefile.in (mostlyclean, clean, maybeclean_dirs, distclean)
(bootstrap-clean, maintainer-clean):
Clean ‘test’, not ‘test/automated’.  Test for existence of
subdirectory only for ‘test’, not for directories that should
always exist.
* admin/MAINTAINERS, etc/TODO, lisp/emacs-lisp/bytecomp.el:
* lisp/emacs-lisp/seq.el, lisp/emacs-lisp/thunk.el:
* lisp/man.el (Man-parse-man-k):
* lisp/url/url-domsuf.el, make-dist:
* test/file-organization.org:
Fix obsolete references to test/automated.
2017-03-27 11:30:08 -07:00
Paul Eggert
e6fd84d2d5 Merge from origin/emacs-25
ab0a60a ; * CONTRIBUTE (Generating ChangeLog entries): Drop duplicate...
7e02a47 Index byte-compile-debug
7c1e598 Document `byte-compile-debug' in the ELisp manual
4d81eb4 Document variable `byte-compile-debug'
72ef710 Fix call to debugger on assertion failure
ae8264c Call modification hooks in org-src fontify buffers
b3139da ; Fix last change in doc/lispref/strings.texi
c331f39 Improve documentation of 'format' conversions
9f52f67 Remove stale functions from ert manual
c416b14 Fix a typo in Eshell manual
06695a0 ; Fix a typo in ediff-merg.el
954e9e9 Improve documentation of hooks related to saving buffers
9fcab85 Improve documentation of auto-save-visited-file-name
2236c53 fix typo in mailcap-mime-extensions
85a3e4e Fix typos in flymake.el
a1ef10e More NEWS checking for admin.el's set-version

# Conflicts:
#	lisp/emacs-lisp/bytecomp.el
2017-03-19 12:29:06 -07:00
Vibhav Pant
092071345f Byte compile cond clauses without any bodies correctly.
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table): When a
cond clause has no body, push t on to the stack.
2017-03-10 00:22:35 +05:30
Paul Eggert
cb70725584 ; Spelling, punctuation and minor wording fixes 2017-02-16 09:18:21 -08:00
Vibhav Pant
501ad54626 bytecomp.el: Avoid unnecessary calculation for jump table addresses.
* lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): Don't do
  redundant operations while calculating the correct jump addresses
  from TAGs in jump tables.
2017-02-16 20:30:04 +05:30
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
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
Vibhav Pant
dde800c8c9 Improve byte-switch execution.
* lisp/emacs-lisp/byte-opt.el,
  lisp/emacs-lisp/bytecomp.el (byte-decompile-bytecode-1),
  (byte-compile-lapcode): Calculate the actual jump address while
  compiling, store it in the jump table.

* src/bytecode.c: Jump to the looked up value directly, do a linear
  search when the number of elements is <= 5.
2017-02-09 12:18:54 +05:30
Vibhav Pant
c4316a2661 ; bytecomp.el (byte-compile-cond-jump-table): Add TODO note 2017-02-06 19:33:01 +05:30
Vibhav Pant
a12b416bca ; byte(-opt, comp).el: Add more documentation for byte-switch code. 2017-02-06 13:26:25 +05:30