1. 05 Apr, 2019 1 commit
    • Alan Mackenzie's avatar
      Enhance struct Lisp_Subr to hold the alternative "BC_" function. · b071398b
      Alan Mackenzie authored
      Also fix a GC bug, where symbols with position were not being disabled.
      
      * src/lisp.h (union Lisp_Function): New type.
      (struct Lisp_Subr): Add fields normal_function, BC_function, and next.
      (DEFUN): Setup all three function fields to the subr (BC_function is still a
      dummy), set field next to NULL.
      
      * src/alloc.c (Fgarbage_collect): Move the binding of
      Qsymbols_with_pos_enabled to garbage_collect_1 so that it gets bound when GC
      is invoked via garbage_collect.
      
      * src/lread.c (subr_ptr, using_BC_subrs): New static variables.
      (Fswitch_to_BC_subrs, Fswitch_to_normal_subrs): New defuns.
      (defsubr): Chain new subr to previous using field next and variable subr_ptr.
      (init_lread): Initialise subr_ptr to NULL.
      (syms_of_lread): Create subrs Sswitch_to_BC_subrs and Sswitch_to_normal_subrs.
      
      * src/pdumper.c (dump_subr): Enhance to dump struct Lisp_Subr's new fields.
      Update the expected value of HASH_Lisp_Subr_xxxxxxxxxx.
      (dump_vectorlike): Also dump PVEC_SYMBOL_WITH_POSes.
      b071398b
  2. 30 Mar, 2019 6 commits
    • Alan Mackenzie's avatar
      8a23e871
    • Alan Mackenzie's avatar
      Allow a CC Mode derived mode to have strings delimited by single quotes. · b619777d
      Alan Mackenzie authored
      Also fix the bug where the delimiters of '\033', etc. got the error face.
      
      * lisp/progmodes/cc-langs.el (c-single-quotes-quote-strings): Enhance the docr
      string.
      (c-string-delims): Change doc string to doc comment.
      
      * listp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): In
      searches and comparisons, take account of the string delimiters possibly
      being '.  Fix argument in call of c-before-change-check-unbalanced-strings.
      (c-parse-quotes-before-change, c-parse-quotes-after-change): Bind
      case-fold-search to nil.  Analyze escape constructs inside character constants
      more accurately, in particular accepting as valid more than one character
      after /[0-7], /x, /u, and /U.  Amend calculations to account for this extra
      length.
      b619777d
    • Eli Zaretskii's avatar
      Fix a thinko in a recent commit · dd7d83e1
      Eli Zaretskii authored
      * src/buffer.c (Fkill_buffer): Fix last change.  (Bug#31138)
      Reported by Mattias Engdegård <mattiase@acm.org>.
      dd7d83e1
    • Mattias Engdegård's avatar
      Release regexp before signalling overflow error · f2c14b2f
      Mattias Engdegård authored
      * src/search.c (looking_at_1, search_buffer_re): Unfreeze the regexp
      buffer before signalling a matcher overflow, since the error
      processing may require quite some regexp use as well (Bug#34910).
      f2c14b2f
    • Mattias Engdegård's avatar
      Fix spurious regexp reentrancy error · 75ec1b19
      Mattias Engdegård authored
      * src/search.c (compile_pattern): Don't give up if the last regexp
      cache entry is busy.  Instead, use the last (least recently used)
      non-busy entry, and only signal a reentrancy error if there is no free
      entry at all (Bug#34910).
      75ec1b19
    • Eli Zaretskii's avatar
      Don't run buffer-related hooks in " *code conversion work*" buffers · 9c0fa117
      Eli Zaretskii authored
      Note: portions of this change were mistakenly pushed as part
      of an unrelated commit a35a1f6a.
      
      * src/buffer.c (Fget_buffer_create): Set inhibit_buffer_hooks
      non-zero for temporary buffers created by coding.c.  Don't run
      buffer-list-update-hook for such buffers.
      (Frename_buffer, Fkill_buffer, record_buffer)
      (Fbury_buffer_internal): Don't run hooks for buffers whose
      inhibit_buffer_hooks flag is set.
      * src/buffer.h (struct buffer): New member
      inhibit_buffer_hooks.
      * src/pdumper.c (dump_buffer): Dump the new field.  Update the
      hash value in HASH_buffer_XXX.
      * src/coding.c (make_conversion_work_buffer): Function deleted;
      code moved to code_conversion_save.
      (code_conversion_save): Insert code from
      make_conversion_work_buffer, but arrange for unwind-protecting
      the current buffer before switching to the work buffer.  This
      avoids leaving reused_workbuf_in_use set if user presses C-g
      during encoding/decoding.
      (Vcode_conversion_workbuf_name): Now external variable.
      * src/coding.h (Vcode_conversion_reused_workbuf): Declare.
      9c0fa117
  3. 29 Mar, 2019 3 commits
  4. 28 Mar, 2019 8 commits
  5. 27 Mar, 2019 17 commits
    • Juri Linkov's avatar
    • Michael Albinus's avatar
    • Charles A. Roelli's avatar
    • Paul Eggert's avatar
      Tune css-mode regexp · df167575
      Paul Eggert authored
      * lisp/textmodes/css-mode.el (css--font-lock-keywords):
      Omit unnecessary \(?: \) in regexp.  Suggested by Mattias Engdegård in:
      https://lists.gnu.org/r/emacs-devel/2019-03/msg01042.html
      df167575
    • Michael Heerdegen's avatar
      Improve documentation of 'alist-get' (Bug#34708) · 6dfd28c3
      Michael Heerdegen authored
      * lisp/subr.el (alist-get): Enhance part of docstring explaining usage
      in place expressions.
      6dfd28c3
    • Paul Eggert's avatar
      Use regexp-opt-charset to improve regexp tweaks · 92acab73
      Paul Eggert authored
      * lisp/emacs-lisp/regexp-opt.el (regexp-opt):
      Reword confusing sentence in doc string.
      * lisp/erc/erc.el (erc-lurker-maybe-trim):
      * lisp/mail/footnote.el (footnote-hebrew-numeric-regex):
      Improve by using regexp-opt-charset.
      92acab73
    • Eli Zaretskii's avatar
      Attempt to fix crashes under GDB on Windows 10 · a35a1f6a
      Eli Zaretskii authored
      * src/pdumper.c (dump_discard_mem)
      [VM_SUPPORTED == VM_MS_WINDOWS]: Don't pass NULL pointer as
      last argument to VirtualProtect.  Reported by Martin Rudalics
      <rudalics@gmx.at>.
      a35a1f6a
    • Paul Eggert's avatar
      Minor xml.el tweaks · a697d1e6
      Paul Eggert authored
      * lisp/xml.el (xml-name-start-char-re, xml-name-char-re):
      No need to call concat.
      (xml-name-char-re): Use \u escapes rather than chars inline,
      so that the code matches the comments better and is easier
      to audit.
      a697d1e6
    • Michael Albinus's avatar
      Use connection-local setting for tramp-remote-path · 907d11fc
      Michael Albinus authored
      * doc/misc/tramp.texi (Remote programs): Mention connection-local
      settings for `tramp-remote-path'.
      
      * lisp/net/tramp-sh.el (tramp-get-remote-path): Expand connection-local
      variables.
      907d11fc
    • Basil L. Contovounesios's avatar
      Avoid recently obsolete seq-contains in css-mode · e50bfaae
      Basil L. Contovounesios authored
      * lisp/textmodes/css-mode.el (css--join-nested-selectors): Replace
      recently obsolete seq-contains with new predicate seq-contains-p.
      e50bfaae
    • Mattias Engdegård's avatar
    • Alan Mackenzie's avatar
      Improve C++ raw string fontification. · 29ec1e48
      Alan Mackenzie authored
      Integrate the handling of raw string and ordinary string fontification.
      
      * lisp/progmodes/cc-defs.el (c-font-lock-flush)
      (c-search-forward-char-property-without-value-on-char): new macros.
      (c-point): In the 'eoll arm, check for eobp.
      (c-search-forward-char-property-with-value-on-char): Handle the &optional
      limit argument being nil.
      (c-clear-char-property-with-value-on-char-function)
      (c-clear-char-property-with-value-on-char): Return the position of the first
      cleared property.
      
      * lisp/progmodes/cc-engine.el (c-find-decl-prefix-search): Don't spuriously
      recognize the change of face at a ) as the start of a string (a
      "pseudo match").
      (c-old-beg-rs c-old-end-rs): New variables.
      (c-raw-string-pos): Analyze raw string delimiters more carefully.
      (c-raw-string-in-end-delim): New function.
      (c-depropertize-raw-string): Largely rewritten.
      (c-before-change-check-raw-strings): New functionality: only remove the
      syntax-table text properties from raw strings whose delimiters are about to
      change.
      (c-propertize-raw-string-id): New function.
      (c-after-change-re-mark-raw-strings): Remove, incorporating functionality into
      other functions.
      (c-propertize-raw-string-opener): Largely rewritten.
      (c-after-change-re-mark-raw-strings): Removed.
      (c-after-change-unmark-raw-strings, c-after-change-unmark-raw-strings): New
      functions.
      
      * lisp/progmodes/cc-fonts.el (c-font-lock-raw-strings): Largely rewritten.
      
      * lisp/progmodes/cc-langs.el (c-before-font-lock-functions): Replace
      c-after-change-re-mark-unbalanced-strings by
      c-after-change-mark-abnormal-strings in the t, c+objc, c++ and java sections.
      Add c-after-change-unmark-raw-strings and remove
      c-after-change-re-mark-raw-strings from the c++ section.
      
      * lisp/progmodes/cc-mode.el (c-old-BEG c-old-END): Remove.
      (c-old-END-literality): New variable.
      (c-depropertize-CPP): Remove syntax-table properties from raw strings within
      macros.
      (c-before-change-check-unbalanced-strings): Call
      c-truncate-semi-nonlit-pos-cache to preserve the integrity of the cache.
      (c-before-change-check-unbalanced-strings): Call
      c-truncate-semi-nonlit-pos-cache, largely rewritten.
      (c-after-change-re-mark-unbalanced-strings): Renamed to
      c-after-change-mark-abnormal-strings.  Call c-maybe-re-mark-raw-string.
      29ec1e48
    • Andreas Schwab's avatar
      c2670448
    • NicolasPetton's avatar
    • YAMAMOTO Mitsuharu's avatar
      Support native image resizing on cairo · 2755cf18
      YAMAMOTO Mitsuharu authored
      * src/xterm.c (x_cr_draw_image): Add arguments image_width and
      image_height and support scaling.  All callers changed.
      * src/image.c (Fimage_scaling_p): Return t when USE_CAIRO.
      (x_set_image_size) [USE_CAIRO]: Record the scaled dimensions
      in the image struct.
      * src/dispextern.h (HAVE_NATIVE_SCALING): Define when
      USE_CAIRO as well.
      
      * etc/NEWS: Update the announcement of native image scaling.
      2755cf18
    • YAMAMOTO Mitsuharu's avatar
      Fix cairo image drawing with box · d7e44265
      YAMAMOTO Mitsuharu authored
      * src/xterm.c (x_cr_draw_image): Don't call cr_clip for non-mask case.
      (x_draw_image_foreground) [USE_CAIRO]: Draw image here ...
      (x_draw_image_glyph_string) [USE_CAIRO]: ... instead of here.
      (x_draw_image_foreground, x_draw_image_foreground_1)
      (x_draw_image_glyph_string) [USE_CAIRO]: Ifdef away unused code path.
      d7e44265
    • Paul Eggert's avatar
      2019-03-26 regex cleanup · 5d6a3144
      Paul Eggert authored
      Problems reported by Mattias Engdegård in:
      https://lists.gnu.org/r/emacs-devel/2019-03/msg01028.html
      * lisp/align.el (align-rules-list):
      * lisp/speedbar.el (speedbar-check-read-only, speedbar-check-vc):
      * lisp/vc/diff-mode.el (diff-add-change-log-entries-other-window):
      * lisp/woman.el (woman-parse-numeric-arg):
      Put "-" at end of character alternatives, since a range was not intended.
      * lisp/erc/erc.el (font-lock):
      * lisp/mail/footnote.el (cl-seq):
      Avoid duplicate character alternatives by using cl-seq API.
      * lisp/mail/footnote.el (footnote--current-regexp):
      * lisp/textmodes/css-mode.el (css--font-lock-keywords):
      Avoid repetition of repetition.
      * lisp/net/webjump.el (webjump-url-encode):
      Add ~ to character alternatives, and rewrite confusing range.
      * lisp/progmodes/verilog-mode.el (verilog-compiler-directives)
      (verilog-assignment-operator-re):
      Remove duplicate.
      * lisp/progmodes/verilog-mode.el (verilog-preprocessor-re):
      * lisp/textmodes/css-mode.el (css--font-lock-keywords):
      Don’t escape a char that doesn’t need it.
      * lisp/textmodes/picture.el (picture-tab-chars): In docstring,
      do not say regexp characters will be quoted; merely say in
      another way that the syntax is that of character alternatives.
      (picture-set-tab-stops, picture-tab-search): Don’t attempt
      to regexp-quote picture-tab-chars.
      (picture-tab-search): Quote \ in picture-tab-chars for
      skip-chars-backwards, which treats \ differently than
      regexp character alternatives do.
      5d6a3144
  6. 26 Mar, 2019 5 commits
    • Stefan Monnier's avatar
      * easy-mmode.el: simplify via custom-current-group · c8ec3108
      Stefan Monnier authored
      * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
      Don't try and guess a default :group, defcustom does it better anyway.
      c8ec3108
    • YAMAMOTO Mitsuharu's avatar
      Use cairo image surface instead of pattern for fringe bitmap · ae68fad0
      YAMAMOTO Mitsuharu authored
      * src/xterm.c (fringe_bmp, x_cr_define_fringe_bitmap)
      (x_cr_destroy_fringe_bitmap, x_cr_draw_image) [USE_CAIRO]:
      Change type of fringe bitmap.
      ae68fad0
    • YAMAMOTO Mitsuharu's avatar
      Fix cairo scrolling for left scroll bars case · 9a6cba2b
      YAMAMOTO Mitsuharu authored
      * src/xterm.c (x_scroll_run) [USE_CAIRO]: Fix scrolling by unusing
      WINDOW_LEFT_EDGE_X.  (Bug#31288)
      9a6cba2b
    • YAMAMOTO Mitsuharu's avatar
      Support tool bar icon image on GTK+ >= 3.10 with cairo · b40db491
      YAMAMOTO Mitsuharu authored
      * src/gtkutil.c (xg_get_image_for_pixmap) [USE_CAIRO]: Use cairo image
      surface for GtkImage source.
      (xg_tool_item_stale_p, update_frame_tool_bar) [USE_CAIRO]: Use cairo
      image surface instead of pixmap for data associated with tool bar item.
      b40db491
    • YAMAMOTO Mitsuharu's avatar
      Simplify cairo image surface creation and destruction · 75b7b2cf
      YAMAMOTO Mitsuharu authored
      * src/dispextern.h (struct image) [USE_CAIRO]: Remove member cr_data2.
      * src/image.c (set_cairo_image_surface): New function split from
      original create_cairo_image_surface.  Call cairo_surface_mark_dirty.
      (create_cairo_image_surface): Just create image surface and return it.
      (x_clear_image): Don't free cr_data2.
      (xpm_load, pbm_load, png_load_body, jpeg_load_body, tiff_load)
      (gif_load, imagemagick_load_image, svg_load_image) [USE_CAIRO]: Use
      new create_cairo_image_surface and cairo_image_surface_get_data
      instead of xmalloc.  Use set_cairo_image_surface instead of old
      create_cairo_image_surface.
      (pbm_load) [USE_CAIRO]: Call cairo_surface_destroy for surface instead
      of xfree for data.
      (gif_load) [USE_CAIRO]: Multiply y-coordinate value by width instead
      of subimg_width.
      75b7b2cf