1. 28 Jul, 2016 2 commits
    • Vincent Belaïche's avatar
    • Vincent Belaïche's avatar
      Enable addition of local printers from a mode hook. · 41b28dea
      Vincent Belaïche authored
      * doc/misc/ses.texi (Printer functions): Split the node into 5
      sub-nodes + add some extra documentation.
      (Various kinds of printer functions): Make an itemisation to
      disintguish better the 3 types of printers, give an example of
      lambda printer definition.
      (Standard printer functions): Add documentation for ses-prin1
      printer function.
      (Local printer functions): Add documentation for creating
      local printers programmatically from a hook.
      (Writing a lambda printer function): Add documentation about
      anti-stackoverflow precautions to take when you call the
      standard printer functions from inside a local printer.
      
      * lisp/ses.el (ses-standard-printer-functions): Add ses-prin1
      among standard printer function, and update docstring
      accordingly.
      (ses-call-printer, ses-export-tab): Call `ses-prin1' instead
      of prin1-to-string.
      (ses-define-local-printer): Add definition to arguments so
      that a local printer can be defined programmatically from a
      mode hook.  Make docstring more substantial.  Use completing
      read for local printer name input.  Plus some minor
      optimization.
      (ses-define-if-new-local-printer): New defsubst.
      (ses-center, ses-center-span, ses-dashfill)
      (ses-dashfill-span, ses-tildefill-span): Allow to pass printer
      as an optional argument to superseed column printer/default
      spreadsheet printer.
      (ses-prin1): New defun.
      41b28dea
  2. 27 Jul, 2016 5 commits
    • Ted Zlatanov's avatar
      Prompt to save gnus-cloud-method. · ec359399
      Ted Zlatanov authored
      Since `gnus-cloud-method' is a defcustom, when it's set, we should
      prompt the user to save it, so the customization is not lost on
      restart.
      
      * gnus-srvr.el (gnus-server-toggle-cloud-method-server): Prompt to
      save the customization of `gnus-cloud-method'.
      ec359399
    • Ken Brown's avatar
      Fix dired-test-bug22694 · 773778e1
      Ken Brown authored
      * test/lisp/dired-tests.el (dired-test-bug22694): Delete the
      "bug22694" directory, if it exists, before running the test.  It
      might be left over from a previous aborted run of the test.
      773778e1
    • Michal Nazarewicz's avatar
      Fix ‘is multibyte’ test regex.c’s mutually_exclusive_p (bug#24020) · 74f9c1a8
      Michal Nazarewicz authored
      * src/regex.c (mutually_exclusive_p): Fix how whether character is
      unibyte is tested when calling execute_charset function.  This bug has
      been introduced by [6dc6b007: Fix ‘[[🇨🇨]]*literal’ regex failing to
      match ‘literal’] which dropped a call to IS_REAL_ASCII (c) macro.
      Reinstitute it.
      74f9c1a8
    • Tino Calancha's avatar
      Remove hook when disabling ibuffer-auto-mode · e0d42597
      Tino Calancha authored
      * lisp/ibuf-ext.el (ibuffer-auto-mode):
      Remove 'ibuffer-auto-update-changed' from 'post-command-hook'.
      e0d42597
    • Tino Calancha's avatar
      ; Spelling fixes · 40476552
      Tino Calancha authored
      40476552
  3. 26 Jul, 2016 5 commits
  4. 25 Jul, 2016 3 commits
    • Katsumi Yamaoka's avatar
      * lisp/gnus/mm-decode.el (mm-convert-shr-links): · 52052267
      Katsumi Yamaoka authored
      Preserve key bindings that shr adds (bug#23964).
      52052267
    • Michal Nazarewicz's avatar
      Fix ‘[[🇨🇨]]*literal’ regex failing to match ‘literal’ (bug#24020) · 6dc6b007
      Michal Nazarewicz authored
      The regex engine tries to optimise Kleene star by avoiding backtracking
      when it can detect that star’s operand cannot match what follows it in
      the pattern.
      
      For example, when ‘[[:alpha:]]*1’ tries to match a ‘foo’, the engine
      will test the longest match for ‘[[:alpha:]]*’, namely ’foo’ which is
      the entire string.  Literal digit one still present in the pattern will
      however not match the remaining empty string.
      
      Normally, backtracking would be performed trying a shorter match for the
      character class (namely ‘fo’ leaving ‘o’ in the string), but since the
      engine knows whatever would be put back into the string cannot possibly
      match literal digit one so no backtracking will be attempted.
      
      In the regexes of the form ‘[[:CC:]]*X’, the optimisation can be applied
      if the character class CC does not match character X.  In the above
      example, this holds because digit one is not in alpha character class.
      
      This test is performed by mutually_exclusive_p function but it did not
      check class bits of a charset opcode.  This resulted in an assumption
      that character classes do not match multibyte characters.  For example,
      it would incorrectly conclude that [[:alpha:]] doesn’t match ‘ż’.
      
      This, in turn, led to the aforementioned Kleene star optimisation being
      incorrectly applied in patterns such as ‘[[:graph:]]*’ (which should
      match ‘’ but doesn’t as can be tested by executing
          (string-match-p "[[:graph:]]*" "")
      which should return 0 but instead yields nil.
      
      This issue affects any class witch matches multibyte characters, i.e.
      if ‘[[🇨🇨]]’ matches a multibyte character X then ‘[[🇨🇨]]*X’ will
      fail to match ‘X’.
      
      * src/regex.c (executing_charset): A new function for executing the
      charset and charset_not opcodes.  It performs check on the character
      taking into consideration existing bitmap, range table and class bits.
      It also advances the pointer in the regex bytecode past the parsed
      opcode.
      (CHARSET_LOOKUP_RANGE_TABLE_RAW, CHARSET_LOOKUP_RANGE_TABLE): Removed.
      Code now included in executing_charset.
      (mutually_exclusive_p, re_match_2_internal): Changed to take advantage
      of executing_charset function.
      
      * test/src/regex-tests.el: New file with tests for the character class
      matching.
      6dc6b007
    • NicolasPetton's avatar
      Fix auto-reverting image-mode buffer (bug#21598) · b176d169
      NicolasPetton authored
      When auto-reverting an image buffer, `image-mode' is not called since
      `revert-buffer' is called with `preserve-modes' set to non-nil.
      
      * lisp/image-mode.el (image-after-revert-hook): Check if there is an
      image display property for the current buffer before updating it.
      b176d169
  5. 24 Jul, 2016 2 commits
    • Paul Eggert's avatar
      ‘signal’ no longer returns · 50cc08bf
      Paul Eggert authored
      Although for decades ‘signal’ has been documented to not return,
      a corner case in the Lisp debugger causes ‘signal’ to return.
      Remove the corner case and adjust Emacs internals accordingly.
      An alternative would be to document the corner case, but this
      would complicate the Lisp API unnecessarily.  (Bug#24047)
      * src/eval.c (signal_or_quit): New function, with most of the
      old contents of Fsignal.
      (quit): New function, which uses signal_or_quit and which
      might return.  All keyboard-based callers of Fsignal (Qquit,
      Qnil) changed to use this new function instead.
      (Fsignal): Use signal_or_quit.  Now _Noreturn.  All callers
      changed.
      (xsignal): Move to lisp.h.
      * src/lisp.h (xsignal): Now an inline function, as it's now
      just an alias for Fsignal.
      50cc08bf
    • Paul Eggert's avatar
      Require libgnutls unless --with-gnutls=no · 2c2b0cd0
      Paul Eggert authored
      * configure.ac: Report an error if the gnutls library is missing,
      unless --with-gnutls=no is specified.
      2c2b0cd0
  6. 23 Jul, 2016 2 commits
    • Alan Mackenzie's avatar
      Fontify C++ parameter packs. · 4d342102
      Alan Mackenzie authored
      This fixes debbugs #23610.
      
      * lisp/progmodes/cc-langs.el (c-pack-ops, c-pack-key): New
      c-lang-defconsts/defvars.
      (c-type-decl-prefix-key): Add "..." and "&&" into the C++ version.
      
      * lisp/progmodes/cc-engine.el (c-forward-type): Handle matches of c-pack-key.
      4d342102
    • Alan Mackenzie's avatar
      Java Mode: Handle strings as case labels correctly. · edcdf649
      Alan Mackenzie authored
      This fixes debbugs #23901.
      
      * lisp/progmodes/cc-langs.el (c-nonlabel-token-key): Remove "\"" from the
      Java value.
      edcdf649
  7. 22 Jul, 2016 6 commits
    • Kaushal Modi's avatar
      Avoid repeated warnings while restoring desktop · 03f32876
      Kaushal Modi authored
      * lisp/desktop.el (desktop-restore-file-buffer): Do not print warnings
      when files are being opened during desktop restore.
      03f32876
    • Eli Zaretskii's avatar
      Fix compilation warning in the MinGW build · d0e1774a
      Eli Zaretskii authored
      * nt/inc/ms-w32.h: Include stdint.h.
      (_execvp, execve): Provide prototypes.
      
      * lib-src/emacsclient.c [WINDOWSNT]: Remove prototype for execvp,
      it is now in nt/inc/ms-w32.h.
      * lib-src/ntlib.c (getppid): Avoid compiler warnings due to format
      mismatch.
      (sys_ctime): Remove, not used.
      d0e1774a
    • Lars Ingebrigtsen's avatar
      Move read-multiple-choice to subr-x.el · ad90397c
      Lars Ingebrigtsen authored
      * lisp/faces.el (read-multiple-choice-face): Fix doc string.
      
      * lisp/emacs-lisp/subr-x.el (read-multiple-choice): Move here
      from subr.el.
      
      * lisp/gnus/message.el (subr-x): Ditto.
      
      * lisp/net/nsm.el: Require subr-x for read-multiple-choice.
      
      read-multiple-choice doesn't need to be in the dumped Emacs, so move
      it to a less central file.
      ad90397c
    • Tino Calancha's avatar
      Update define-ibuffer-op doc string · 431641a2
      Tino Calancha authored
      * lisp/ibuf-macs.el (define-ibuffer-op):
      Mention that BODY is evaluated with 'buf' bound to the actual
      marked buffer being processed.
      431641a2
    • Tino Calancha's avatar
      Update define-ibuffer-op doc string · c608f490
      Tino Calancha authored
      * lisp/ibuf-macs.el (define-ibuffer-op): Document arg COMPLEX
      instead of refer the reader to the source code.
      Document arg BODY.
      c608f490
    • Tino Calancha's avatar
      Fix shell-command[-on-region] doc strings · b13b728c
      Tino Calancha authored
      * lisp/simple.el (shell-command, shell-command-on-region):
      Drop the sentence saying that the command may delete the buffer
      '*Shell Command Output*': the command never delete such
      buffer (Bug#23936).
      b13b728c
  8. 21 Jul, 2016 7 commits
  9. 20 Jul, 2016 6 commits
    • Paul Eggert's avatar
      Fix lifetime bug in tzlookup · 852111f3
      Paul Eggert authored
      * src/editfns.c (tzlookup): Fix storage lifetime bug when
      INTEGERP (zone) && settz.  Problem found by Coverity Scan.
      852111f3
    • Lars Ingebrigtsen's avatar
      Fix shr.el/image build problem · 90fb0b2d
      Lars Ingebrigtsen authored
      Fixes: bug#24035
      
      * lisp/net/shr.el: Require image, since some builds seem to
      break without it (bug#24035).
      90fb0b2d
    • Ted Zlatanov's avatar
      Bring the Gnus Cloud package into working order. · 30b3a842
      Ted Zlatanov authored
      * lisp/gnus/gnus-sync.el: Removed in favor of gnus-cloud.el.
      
      * lisp/gnus/gnus-cloud.el: Autoload EPG functions. Change storage format to
      simplify non-file data.
      (gnus-cloud-storage-method): New defcustom to support nil, Base64,
      Base64+gzip, or EPG encoding on the Gnus Cloud IMAP server. Defaults to
      EPG if that's available, Base64+gzip otherwise.
      (gnus-cloud-interactive): New defcustom to make Gnus Cloud operations
      interactive, defaults to enabled.
      (gnus-cloud-group-name): New variable for the Gnus Cloud group name.
      (gnus-cloud-make-chunk): Tag with "Gnus-Cloud-Version" instead of just
      "Version".
      (gnus-cloud-insert-data): Simplify and support :newsrc-data entries.
      (gnus-cloud-encode-data, gnus-cloud-decode-data): Support various
      storage methods as per gnus-cloud-storage-method.
      (gnus-cloud-parse-chunk): Look for "Gnus-Cloud-Version" marker.
      (gnus-cloud-parse-version-1): Fix parsing loop bug. Handle :newsrc-data
      entries.
      (gnus-cloud-update-all): Handle :newsrc-data entries and dispatch to
      file and data handlers.
      (gnus-cloud-update-newsrc-data): New function to handle :newrsc-data
      entries.
      (gnus-cloud-update-file): Rework to support gnus-cloud-interactive and
      be more careful.
      (gnus-cloud-delete-file): Remove; merged into gnus-cloud-update-file.
      (gnus-cloud-file-covered-p, gnus-cloud-all-files)
      (gnus-cloud-files-to-upload, gnus-cloud-ensure-cloud-group)
      (gnus-cloud-add-timestamps, gnus-cloud-available-chunks)
      (gnus-cloud-prune-old-chunks): Fix indentation.
      (gnus-cloud-timestamp): New function to make a standard Gnus Cloud
      timestamp.
      (gnus-cloud-file-new-p): Use it.
      (gnus-cloud-upload-all-data): Add interactive convenience function to
      upload all data.
      (gnus-cloud-upload-data): Make interactive; collect files and newsrc
      data separately; refresh Gnus Cloud group after insert.
      (gnus-cloud-download-all-data): Add interactive convenience function to
      download all data.
      (gnus-cloud-download-data): Rework to support "Gnus-Cloud-Version"
      marker and different storage methods.
      (gnus-cloud-host-server-p): New function to check if a server is the
      Gnus Cloud host.
      (gnus-cloud-collect-full-newsrc): Tag entries with :newsrc-data.
      (gnus-cloud-host-acceptable-method-p): New function so
      other code can check if a server method can host the Gnus cloud.
      (gnus-cloud-storage-method): Use 'radio instead of 'choice for better UI.
      (gnus-cloud-method): Make this a defcustom and note how to set it.
      
      * lisp/gnus/gnus-group.el (gnus-group-cloud-map): Add Gnus Cloud autoloaded
      keybindings under the `~' prefix.
      
      * lisp/gnus/gnus-srvr.el (gnus-server-mode-map, gnus-server-make-menu-bar)
      (gnus-server-cloud, gnus-server-cloud-host)
      (gnus-server-font-lock-keywords, gnus-server-insert-server-line)
      (gnus-server-toggle-cloud-method-server): Support Gnus Cloud
      synchronized servers and synchronization host server toggling (`i' and
      `I') and visual display.
      (gnus-server-toggle-cloud-method-server): Use
      gnus-cloud-host-acceptable-method-p.
      (gnus-server-toggle-cloud-method-server): Use custom-set-variables to
      set the gnus-cloud-method. Ask the user if it's OK to upload the data
      right now.
      
      * doc/misc/gnus.texi: Document Gnus Cloud package.
      30b3a842
    • Paul Eggert's avatar
      Remove CHECK_FRAME_FONT cruft from bytecode.c · 60dd094a
      Paul Eggert authored
      * src/bytecode.c [CHECK_FRAME_FONT]: Do not include frame.h, xterm.h.
      Remove some old ‘#if 0’ code.
      60dd094a
    • Paul Eggert's avatar
      Work around GCC bug 54561 in a better way · 3e71e437
      Paul Eggert authored
      The new approach is less selective, but also less intrusive on C code.
      * src/bytecode.c, src/image.c, src/keyboard.c: Ignore -Wclobbered.
      * src/conf_post.h (NONVOLATILE): Remove.  All uses removed.
      3e71e437
    • Paul Eggert's avatar
      Fix port to glibc 2.24 (pre-release) + ppc64 · 63750fd4
      Paul Eggert authored
      * src/callproc.c (child_setup): Use emacs_exec_file
      so that ASLR is enabled in the child process.
      * src/emacs.c: Move some personality details into sys/sysdep.c.
      Do not include <sys/personality.h>.
      (main): Disable ASLR earlier, so that we don’t chdir twice.
      * src/lisp.h (disable_address_randomization): New decl.
      * src/sysdep.c (disable_address_randomization)
      [HAVE_PERSONALITY_ADDR_NO_RANDOMIZE]: Move personality details
      here from emacs.c.
      (emacs_exec_file): New function.
      63750fd4
  10. 19 Jul, 2016 2 commits