1. 10 Apr, 2019 10 commits
  2. 09 Apr, 2019 30 commits
    • Gemini Lasswell's avatar
      Address name conflicts in EIEIO documentation (bug#31660) · 8d2f1df5
      Gemini Lasswell authored
      * doc/misc/eieio.texi (Quick Start): Rename the class used in the
      example from 'record' to 'person'.
      (Building Classes): Advise user to check for name conflicts before
      naming a class.  Add a missing apostrophe.
      (Making New Objects): Correct grammar.  Rename the class used in the
      example from 'record' to 'my-class'.
    • Paul Eggert's avatar
      Remove the need for temacs.in · d8260374
      Paul Eggert authored
      Instead of building a file temacs.in used only to compute a
      fingerprint, compute the fingerprint directly from the .o and
      .a files that go into temacs.in.  This speeds up the build by
      avoiding the need to link temacs twice, once with a dummy
      * lib-src/make-fingerprint.c (main): No need to generate
      a fingerprint file that includes config.h, now that fingerprint.c
      depends on all the .o files.
      * src/Makefile.in ($(libsrc)/make-fingerprint$(EXEEXT)):
      Use the same rule as $(libsrc)/make-docfile$(EXEEXT).
      * src/fingerprint-dummy.c: Remove.
      * src/Makefile.in (${charsets}, $(libsrc)/make-docfile$(EXEEXT))
      ($(LIBEGNU_ARCHIVE), $(lwlibdir)/liblw.a, $(oldXMenudir)/libXMenu11.a)
      (../config.status, ${ETAGS}, ../lisp/TAGS, $(lwlibdir)/TAGS)
      Prefer ‘$(MAKE) -C $(dir $@)’ to ‘${MAKE} -C SOMESTRING’ when
      either will do, as the former is more regular and lets us
      coalesce rules better.
      (BUILD_EMACS_POST, temacs.in$(EXEEXT)): Remove.
      (FINGERPRINTED): New macro.
      (fingerprint.c): Use it instead of temacs.in$(EXEEXT), to
      avoid the need to build temacs.in at all.
      (temacs$(EXEEXT)): No need to depend on other .o files now;
      fingerprint.o is enough, since it depends on the rest.
      Spell out what used to be in BUILD_EMACS_PRE and BUILD_EMACS_POST.
      (mostlyclean): No need to remove temacs.in.
    • Paul Eggert's avatar
      Remove assumption of uint64_t etc. in portable code · e44ff2de
      Paul Eggert authored
      C11 doesn’t guarantee the existence of types like uint64_t,
      so avoid these types in portable code, as it’s easy to do so.
      There’s no need to avoid the types in w32-specific code,
      since w32 is guaranteed to have them.
      * lib-src/make-fingerprint.c (main):
      * src/fingerprint-dummy.c:
      * src/fingerprint.h:
      * src/pdumper.c (dump_fingerprint, struct dump_header):
      Prefer unsigned char to uint8_t in portable code, as either will do.
      Put an "#include <config.h>" in fingerprint.c files, so
      that the corresponding .o file is rebuilt after ./configure is run.
      * lib-src/make-fingerprint.c (main):
      Simplify loop.
      * src/Makefile.in (fingerprint.c): Update atomically.
      * src/pdumper.c: Omit unnecessary check that off_t is the same
      size as int32_t or int64_t, as the code does not rely on this
      (dump_off): Use int_least32_t, not int32_t.
      (struct dump_reloc): Use unsigned int, not uint32_t.
      (dump_anonymous_allocate_w32, dump_anonymous_allocate_posix)
      (dump_anonymous_allocate, dump_map_file_w32, dump_map_file_posix)
      Do the sanity checks at compile time, not at run-time, to avoid
      usage of uint64_t etc. on non-w32 platforms.
    • Paul Eggert's avatar
      Remove dmpstruct.h · 44a39e3e
      Paul Eggert authored
      The hassles of updating the dmpstruct.h-using code bit me again.
      These updates are more trouble than they’re worth.  See:
      As I’m the main person who’s made changes in this area since
      dmpstruct.h was introduced, I’m the most motivated to clean up
      the situation.
      * make-dist (possibly_non_vc_files): Remove src/dmpstruct.h.
      * src/Makefile.in (dmpstruct_headers, dmpstruct.h): Remove.
      (pdumper.o): Do not depend on dmpstruct.h.
      (mostlyclean): Do not remove dmpstruct.h.
      * src/dmpstruct.awk: Remove.
      * src/pdumper.c: Do not include dmpstruct.h.
      (CHECK_STRUCTS): Remove.  All uses removed.
    • Stefan Monnier's avatar
      diff-font-lock-syntax: clarify distinction between t and hunk-also · 85fbdf02
      Stefan Monnier authored
      * lisp/vc/diff-mode.el (diff-font-lock-syntax): Rework docstring.
      (diff-syntax-fontify-hunk): Never use the hunk method when
      diff-font-lock-syntax is just t.
    • Alex Branham's avatar
      Use lexical-binding in bug-reference.el · d96b672f
      Alex Branham authored
      * .dir-locals.el: Set bug-reference-url-format in all modes, not just
      changelog mode. Use (eval . (bug-reference-mode)) as described
      in (info "(emacs) Specifying File Variables")
      * lisp/progmodes/bug-reference.el: Use lexical binding.
      (bug-reference-fontify): Mention args in docstring.
    • Basil L. Contovounesios's avatar
      Fix Gnus duplicate suppression guards (bug#34987) · 6cb49922
      Basil L. Contovounesios authored
      * lisp/gnus/gnus-dup.el (gnus-dup-enter-articles)
      (gnus-dup-suppress-articles): Use gnus-dup-hashtb as an indicator of
      initialization instead of gnus-dup-list, which may happen to be nil.
      (gnus-dup-unsuppress-article): Do nothing if gnus-dup-hashtb is
    • Stefan Monnier's avatar
      * lisp/printing.el: Use lexical-binding · 4f19bbb1
      Stefan Monnier authored
      Require easy-menu instead of adding declarations.
      Remove backward compatiblity.  Remove redundant ':group' args.
      (pr-region-active-p): Use use-region-p.
      (pr-set-keymap-name): Delete function and callers.
      (pr-set-keymap-parents): Delete function; use set-keymap-parent instead.
      (pr-read-string): Delete function; use read-string instead.
      (pr-menu-char-height): Delete function; use frame-char-height instead.
      (pr-menu-char-width): Delete function; use frame-char-width instead.
      (pr-menu-position): Merge the two definitions.
      (pr-get-symbol): Delete function; use easy-menu-intern instead.
      (pr-update-mode-line): Delete function; use force-mode-line-update instead.
      (pr-do-update-menus): Turn local save-var into dynbound pr--save-var.
      (pr-menu-alist): Use setf.  Simplify since we don't keep key-bindings
      in the menus any more.
      (pr-dosify-file-name): Remove interactive spec.
      (pr-filename-style): Rename from pr-path-style.
      (pr-unixify-file-name): Delete function.
      (pr-standard-file-name): Don't turn \ into / under POSIX.
      (pr-temp-dir): Don't dosify.  Use temporary-file-directory unconditionally.
      (pr-save-file-modes): Delete macro.
      (pr-ps-directory-using-ghostscript, pr-ps-directory-print)
      (pr-ps-directory-ps-print, pr-ps-mode-using-ghostscript, pr-ps-print)
      (pr-ps-mode-preview, pr-ps-mode-print, pr-printify-directory)
      (pr-txt-directory, pr-ps-file-up-preview, pr-ps-directory-preview)
      (pr-ps-file-up-ps-print, pr-ps-preview, pr-ps-using-ghostscript):
      Use properly prefixed, declared, and
      explicitly let-bound dynamically bound variables around calls to
      pr-ps-utility-args and pr-set-dir-args.
      (pr-ps-file-using-ghostscript): Only dosify when passing to suprocess.
      (pr-expand-file-name): Delete function; use expand-file-name instead.
      (pr-ps-file-print): Properly dosify.
      (pr-menu-create): Use backquotes.
      (pr-eval-alist, pr-eval-local-alist): Use dolist.
      (pr-ps-utility-args): Don't dosify here.
      (pr-ps-utility-process): Dosify here instead.
      (pr-ps-file, pr-command): Don't dosify here either.
      (pr-interface-map): Move initialization into declaration.
      (pr-insert-section-1): Use 'push'.
      (pr-insert-toggle): Use closure instead of backquoted lambda.
      (pr-insert-menu): Use apply i.s.o eval.
      (pr-insert-radio-button): Avoid 'eval'.
    • Stefan Monnier's avatar
      quail.el: Use delete-and-extract-region · 8a5ecdaa
      Stefan Monnier authored
      * lisp/international/quail.el (quail-overlay-region-events):
      Use delete-and-extract-region.
      (quail-activate): Use setq-local.
    • Stefan Monnier's avatar
      python.el: don't syntax-propertize single/double quoted strings · 4b39b741
      Stefan Monnier authored
      * lisp/progmodes/python.el (python-syntax-propertize-function):
      Only mark triple-quoted strings, let the normal syntax-table handle
      the rest.
      (python-syntax-stringify): Adjust accordingly.
    • Stefan Monnier's avatar
    • Stefan Monnier's avatar
      Fix up Eshell 'require's after previous dependency reshuffle. · a017927c
      Stefan Monnier authored
      * lisp/eshell/em-unix.el:
      * lisp/eshell/em-script.el:
      * lisp/eshell/em-pred.el:
      * lisp/eshell/em-dirs.el:
      * lisp/eshell/em-alias.el:
      Fix up 'require's to silence byte-compiler.
      * lisp/eshell/esh-util.el (eshell-read-hosts-file): Don't limit number
      of entries per line.  Preserve the structure.
      (eshell-read-hosts): Adjust accordingly.
    • Mattias Engdegård's avatar
      Clarify the TESTFN argument to `alist-get' · 00a2d57a
      Mattias Engdegård authored
      * lisp/subr.el (alist-get):
      Rephrase the initial text to clarify the meaning of the TESTFN argument.
      It's an equality predicate, not a look-up function (Bug#35206).
      (cherry picked from commit c8146558)
    • Stefan Monnier's avatar
      * lisp/gnus/mm-view.el (mm-display-inline-fontify): Simplify. · 1055eee6
      Stefan Monnier authored
      Remove hacks that were needed before font-lock-ensure.
      Don't use switch-to-buffer.  Don't assume point-min == 1.
    • Basil L. Contovounesios's avatar
      ; Warn of while/dolist pitfall in gnus-sum.el · e1a457e6
      Basil L. Contovounesios authored
      Suggested by Andy Moreton in the following thread:
      * lisp/gnus/gnus-sum.el (gnus-summary-move-article): Add comment
      warning of common while/dolist pitfall. (bug#33653#134)
    • Stefan Monnier's avatar
      * lisp/vc/diff-mode.el: Cosmetic changes in diff-syntax-fontify-hunk · 90c7e363
      Stefan Monnier authored
      (diff-default-directory): Use defvar-local.
      (diff-syntax-fontify-hunk): Use 'setq' less.  Fit within 80 columns.
      Simplify some looking-at tests.
      (diff-syntax-fontify-props): Don't check the buffer-local part of
    • Mattias Engdegård's avatar
      Clarify the TESTFN argument to `alist-get' · c8146558
      Mattias Engdegård authored
      * lisp/subr.el (alist-get):
      Rephrase the initial text to clarify the meaning of the TESTFN argument.
      It's an equality predicate, not a look-up function (Bug#35206).
    • Eli Zaretskii's avatar
      ; * etc/NEWS: Fix recently added entries. · 44b306d3
      Eli Zaretskii authored
    • Eli Zaretskii's avatar
      Fix "M-x eshell" · 1e58dc9e
      Eli Zaretskii authored
      * lisp/eshell/em-dirs.el (eshell-variable-aliases-list)
      (eshell-directory-name, eshell-mode): Defvar them.
      (eshell-dirs-initialize): Require esh-var.  (Bug#35203)
      (eshell-apply-indices): Declare.
    • Jackson Ray Hamilton's avatar
    • Jackson Ray Hamilton's avatar
      Explain reasonings for JSX syntax support design decisions · cf416d96
      Jackson Ray Hamilton authored
      * lisp/progmodes/js.el: Throughout the code, provide explanations for
      why JSX support was implemented in the way that it was; in particular,
      address the overlap between syntax-propertize-function, font-lock, and
      indentation (as requested by Stefan).
    • Jackson Ray Hamilton's avatar
      Move curly functions closer to where they’re used · 7c3ffdaf
      Jackson Ray Hamilton authored
      * lisp/progmodes/js.el (js-jsx--enclosing-curly-pos)
      (js-jsx--goto-outermost-enclosing-curly): As the code evolved, these
      functions’ definitions ended up being far away from the only places
      where they were used.  Move them there.
    • Jackson Ray Hamilton's avatar
      Add open/close parenthesis syntax to “<” and “>” in JSX · 95455195
      Jackson Ray Hamilton authored
      * lisp/progmodes/js.el (js-jsx--syntax-propertize-tag): Like in
      sgml-mode, treat “<” and “>” like open/close parenthesis, making the
      text more navigable via forward-sexp, etc.
    • Jackson Ray Hamilton's avatar
      Permit non-ASCII identifiers in JS · 18bbfc4c
      Jackson Ray Hamilton authored
      * lisp/progmodes/js.el (js--name-start-re): Generally allow
      identifiers to begin with non-ASCII letters.  This is of particular
      importance to JSX parsing.
      * test/manual/indent/jsx-unclosed-2.jsx: Add test to ensure non-ASCII
      characters are parsed properly.
    • Jackson Ray Hamilton's avatar
      Identify JSX strings (for js2-mode) · 3eadf1ef
      Jackson Ray Hamilton authored
      * lisp/progmodes/js.el (js-jsx--syntax-propertize-tag): Derived modes
      like js2-mode may use font-lock-syntactic-face-function to apply faces
      to JSX strings (and only JSX strings).  Apply the js-jsx-string text
      property to such strings so they can be distinctly identified.
      (js-jsx--text-properties): Ensure the js-jsx-string text property gets
      cleaned up, too.
    • Jackson Ray Hamilton's avatar
      Properly set a dynamic, syntactic mode name · e48306f8
      Jackson Ray Hamilton authored
      Use mode-line-format constructs to properly set mode-name, rather than
      use the very hacky solution that was filling-in for my lack of
      knowledge of this feature.
      * lisp/progmodes/js.el (js--update-mode-name)
      (js--idly-update-mode-name): Remove.
      (js--syntactic-mode-name-part): New helper function for mode-name.
      (js-use-syntactic-mode-name): Helper to set up the dynamic mode-name.
      (js-jsx-enable): Don’t need to call any extra functions now.
      (js-mode): Use the new setup function rather than the old ones.
      (js-jsx-mode): Use the same initial mode name as js-mode so the final
      one is identical for both modes.
    • Jackson Ray Hamilton's avatar
      Improve whitespace and unary keyword parsing · 7a9dac5c
      Jackson Ray Hamilton authored
      * lisp/progmodes/js.el (js--name-start-chars): Remove, adding these
      chars back to js--name-start-re.
      (js--name-start-re): Add chars back from js--name-start-chars.
      (js-jsx--tag-start-re): Improve regexp to capture the tag name (so it
      can be disambiguated from a unary keyword), to match newlines (which
      are common in this spot), and to require at least one whitespace
      character before the attribute name.
      (js-jsx--matched-tag-type): Ensure the “tag name” isn’t possibly a
      unary keyword.
      (js-jsx--self-closing-re, js-jsx--matching-close-tag-pos): Allow
      whitespace around “<” and “>”.
      * test/manual/indent/jsx-unclosed-2.jsx: Add tests for unary keyword
      and whitespace parsing.
    • Jackson Ray Hamilton's avatar
      Optimize js-jsx--enclosing-tag-pos · 98e36a3e
      Jackson Ray Hamilton authored
      * lisp/progmodes/js.el (js-jsx--enclosing-tag-pos): Update docstring
      to be more precise.  Also, remember close tag positions after they’ve
      been calculated once to avoid many redundant calls to
      (js-jsx--text-properties): Ensure js-jsx-close-tag-pos text properties
      get cleaned up, too.
    • Jackson Ray Hamilton's avatar
      Optimize js-jsx--matching-close-tag-pos · 7b2e3c60
      Jackson Ray Hamilton authored
      This function’s performance was having a noticeable impact when
      editing large JSX structures.  Improve its performance
      slightly (elapsed time will be cut in half according to ELP).
      * lisp/progmodes/js.el (js-jsx--tag-re): Remove.
      (js-jsx--matched-tag-type): Simplify implementation with respect to
      the new implementation of js-jsx--matching-close-tag-pos.
      (js-jsx--self-closing-re): Simplify regexp slightly in sync with a
      generally simpler matching algorithm.
      (js-jsx--matching-close-tag-pos): Optimize matching algorithm by using
      multiple simple regexp searches, rather than one big complex search.
      * test/manual/indent/jsx-unclosed-2.jsx: Use the term “inequality” and
      add a test for a possible parsing foible.
    • Jackson Ray Hamilton's avatar
      Add tests for miscellaneous JSX parsing feats · 462baabe
      Jackson Ray Hamilton authored
      * test/manual/indent/jsx.jsx: Add tests for JSXMemberExpression names
      and JSXOpeningFragment/JSXClosingFragment support (already supported).