1. 30 Sep, 2014 4 commits
    • Bill Wohler's avatar
    • Bill Wohler's avatar
      Add TODO to replace cl with cl-lib. · c5235fba
      Bill Wohler authored
      c5235fba
    • Paul Eggert's avatar
      Simplify stack-allocated Lisp objects, and make them more portable. · dc452569
      Paul Eggert authored
      The build_local_string macro was used in two ways: (1) string
      literals for which scoped allocation suffices, and (2) file name
      components, where it's not safe in general to assume bounded-size
      ASCII data.  Simplify by defining a new macro SCOPED_STRING that
      allocates a block-scope string, and by using SCOPED_STRING for (1)
      and build_string for (2).  Furthermore, actually use stack
      allocation only for objects known to have sufficient alignment.
      This simpler implementation means Emacs can make
      USE_STACK_LISP_OBJECTS the default unless GC_MARK_STACK !=
      GC_MAKE_GCPROS_NOOPS.
      * lisp.h (GCALIGNED): Align even if !USE_STACK_LISP_OBJECTS,
      for fewer differences among implementations.
      (struct Lisp_String): Now GCALIGNED.
      (USE_STACK_LISP_OBJECTS): Default to true, since the
      implementation no longer insists on a nonempty GCALIGNED.
      But make it false if GC_MARK_STACK != GC_MAKE_GCPROS_NOOPS.
      (SCOPED_CONS_INITIALIZER): Remove, since it's no longer needed
      separately.  Move definiens to scoped_cons.  The old definition
      was incorrect when GCALIGNED was defined to be empty.
      (union Aligned_String): New type.
      (USE_STACK_CONS, USE_STACK_STRING): New constants, so that the
      implementation ports to compilers that don't align strictly enough.
      Don't worry about the union sizes; it's not worth bothering about.
      (scoped_cons, scoped_list1, scoped_list3, scoped_list4):
      Rewrite using USE_STACK_CONS.
      (scoped_cons): Assume the use of union Aligned_Cons.
      (lisp_string_size, make_local_string, build_local_string): Remove.
      Unless otherwise specified, all callers of build_local_string
      changed to use SCOPED_STRING.
      (SCOPED_STRING): New macro.
      * data.c (wrong_choice):
      * menu.c (single_menu_item):
      * process.c (Fformat_network_address):
      Hoist use of SCOPED_STRING out of a scope, so that its returned
      object lives long enough.
      * fileio.c (Fexpand_file_name): Use build_string, not SCOPED_STRING,
      as the string might be long or might not be ASCII.
      dc452569
    • Stefan Monnier's avatar
      * lisp/minibuffer.el (completion-at-point): Emit warning for ill-behaved · a19f0977
      Stefan Monnier authored
      completion functions.
      a19f0977
  2. 29 Sep, 2014 6 commits
    • Stefan Monnier's avatar
    • Eli Zaretskii's avatar
      Follow-up to renaming v24.5 to 25.1. · 2b3d968a
      Eli Zaretskii authored
       README: Bump version to 25.0.50.
       configure.ac (AC_INIT): Bump version to 25.0.50.
      
       nt/makefile.w32-in (VERSION): Bump version to 25.0.50.
       nt/emacsclient.rc: Bump version to 25.0.50.
       nt/emacs.rc: Bump version to 25.0.50.
       nt/config.nt (VERSION): Bump version to 25.0.50.
      
       msdos/sed2v2.inp: Bump version to 25.0.50.
      
       etc/refcards/ru-refcard.tex: Bump version to 25.0.50.
       etc/refcards/emacsver.tex: Bump version to 25.0.50.
      
       src/msdos.c (internal_terminal_init): Bump version to 25.
      
       doc/man/emacs.1: Bump version to 25.0.50.
      
       doc/emacs/emacsver.texi (EMACSVER): Bump to 20.0.50.
      2b3d968a
    • Stefan Monnier's avatar
      Rename 24.5 to 25.1 · cbdc06f3
      Stefan Monnier authored
      Except where we expect to backport the corresponding change.
      cbdc06f3
    • Daiki Ueno's avatar
      mml: Signal error on invalid <#secure> tag · 8f24b587
      Daiki Ueno authored
      * mml.el (mml-parse-1): Error out if unknown mode is specified in
      <#secure> tag (bug#18513).
      8f24b587
    • Ulf Jasper's avatar
      Do not set `url-gateway-method' in `url-https'. (Bug#16543) · 2d7ade06
      Ulf Jasper authored
      Currently, when `url-retrieve' is called for an https url it modifies
      the variable `url-gateway-method'.  This has been changed to
      explicitly pass the requested gateway method to other functions.
      
      When `url-retrieve' is being processed then (via
      `accept-process-output') another `url-retrieve' call from a pending
      timer can be started.  The second call would always see the modified
      `url-gateway-method' of the first one, which in general does not match
      the url.
      
      2014-09-28  Ulf Jasper  <ulf.jasper@web.de>
      
      	* url-gw.el (url-open-stream): New optional parameter
      	`gateway-method'.  If non-nil use it instead of global variable
      	`url-gateway-method'.
      
      	* url/url-http.el (url-http): New optional parameter
      	`gateway-method', pass it to `url-http-find-free-connection'.
      	(url-http-find-free-connection): New optional parameter
      	gateway-method, pass it to `url-open-stream'.
      	(url-https-create-secure-wrapper): Do not modify
      	`url-gateway-method' but explicitly provide 'tls as gateway-method
      	parameter to `url-https'.
      2d7ade06
    • Dmitry Antipov's avatar
      Keep stack-allocated Lisp objects fast rather than versatile. · 71a72686
      Dmitry Antipov authored
      * configure.ac (HAVE_STATEMENT_EXPRESSIONS): Remove.
      For USE_STACK_LISP_OBJECTS, we always assume __GNUC__.
      * lisp.h (union Aligned_Cons) [!GCALIGNED]: Define as such.
      (SCOPED_CONS_INITIALIZER): New macro.
      (scoped_cons) [USE_STACK_LISP_OBJECTS]: Use it.
      (USE_LOCAL_ALLOCA): Remove.
      (local_cons, local_list1, local_list2, local_list3, local_list4):
      Remove.  Stack overflow checking makes them too slow.
      (make_local_vector): Likewise.  Also we just don't have enough
      users for it.
      (enum LISP_STRING_OVERHEAD): Remove.
      (local_string_init, local_vector_init): Remove prototypes.
      (make_local_string, build_local_string): Redesign to target short
      compile-time string constants, fall back to regular string allocation
      where appropriate.
      (lisp_string_size): New function.
      (verify_ascii) [ENABLE_CHECKING]: Add prototype.
      * alloc.c (local_string_init, local_vector_init): Remove.
      (verify_ascii) [ENABLE_CHECKING]: New function.
      * buffer.c, charset.c, chartab.c, data.c, editfns.c, emacs.c, fileio.c:
      * fns.c, font.c, fontset.c, frame.c, keyboard.c, keymap.c, lread.c:
      * menu.c, minibuf.c, process.c, textprop.c, xdisp.c, xfns.c, xfont.c:
      * xselect.c, xterm.c: All related users changed.
      71a72686
  3. 28 Sep, 2014 3 commits
    • Ken Brown's avatar
      * src/sheap.c (bss_sbrk_buffer_beg): Remove redundant variable. · c3301e3c
      Ken Brown authored
      * src/gmalloc.c [CYGWIN]: Adapt to change in sheap.c.
      c3301e3c
    • Ulf Jasper's avatar
      Do not set `url-gateway-method' in `url-https'. (Bug#16543) · 98c58df8
      Ulf Jasper authored
      Currently, when `url-retrieve' is called for an https url it modifies
      the variable `url-gateway-method'.  This has been changed to
      explicitly pass the requested gateway method to other functions.
      
      When `url-retrieve' is being processed then (via
      `accept-process-output') another `url-retrieve' call from a pending
      timer can be started.  The second call would always see the modified
      `url-gateway-method' of the first one, which in general does not match
      the url.
      
      2014-09-28  Ulf Jasper  <ulf.jasper@web.de>
      
      	* url-gw.el (url-open-stream): New optional parameter
      	`gateway-method'.  If non-nil use it instead of global variable
      	`url-gateway-method'.
      
      	* url/url-http.el (url-http): New optional parameter
      	`gateway-method', pass it to `url-http-find-free-connection'.
      	(url-http-find-free-connection): New optional parameter
      	gateway-method, pass it to `url-open-stream'.
      	(url-https-create-secure-wrapper): Do not modify
      	`url-gateway-method' but explicitly provide 'tls as gateway-method
      	parameter to `url-https'.
      98c58df8
    • Thien-Thi Nguyen's avatar
      Font-lock `cl-flet*', too. · 3ff1c9a8
      Thien-Thi Nguyen authored
      * lisp/emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-2):
      Add "flet*" to intermediate var `cl-lib-kw'.
      3ff1c9a8
  4. 27 Sep, 2014 8 commits
    • Ken Brown's avatar
      * configure.ac [CYGWIN]: Enable sound support. · bbf5e14b
      Ken Brown authored
      bbf5e14b
    • Ken Brown's avatar
      Fix implementation of HYBRID_MALLOC on Cygwin. · 6c300919
      Ken Brown authored
      * src/sheap.c (bss_sbrk_buffer_end): Cast to void *.
      (bss_sbrk_buffer_beg): New variable.  Use it...
      * src/gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix
        incorrect definition.
      6c300919
    • Stefan Monnier's avatar
      * lisp/epg-config.el (epg-gpg-program): Use the plain program names rather · 5551acd2
      Stefan Monnier authored
      than their absolute file name.
      5551acd2
    • Stefan Monnier's avatar
      * lisp/subr.el (track-mouse): New macro. · 19e0f0af
      Stefan Monnier authored
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form):
      Remove track-mouse case.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-track-mouse): Remove.
      * src/keyboard.c (track-mouse): Rename to internal--track-mouse.
      Make it into a function and change arg to be a function.
      19e0f0af
    • Leo Liu's avatar
      * lisp/emacs-lisp/eldoc.el (eldoc-mode): Fix thinko. · 548e1696
      Leo Liu authored
      * lisp/progmodes/elisp-mode.el (elisp--eldoc-last-data): Use defvar.
      548e1696
    • Stefan Monnier's avatar
      * pcase-tests.el: Add #18554 test case. · 87eb617a
      Stefan Monnier authored
      87eb617a
    • Stefan Monnier's avatar
      * lisp/emacs-lisp/pcase.el (pcase--split-match, pcase--app-subst-match): · 528872c5
      Stefan Monnier authored
      Handle the case where `match' is :pcase--succeed or :pcase--fail.
      
      Fixes: debbugs:18554
      528872c5
    • Stefan Monnier's avatar
      Introduce global-eldoc-mode. Move Elisp-specific code to elisp-mode.el. · e6cfa098
      Stefan Monnier authored
      * lisp/emacs-lisp/eldoc.el (global-eldoc-mode): New minor mode.
      (eldoc-schedule-timer): Obey it.
      (eldoc-documentation-function): Default to nil.
      (eldoc-mode): Don't enable if eldoc-documentation-function is not set.
      (eldoc-documentation-function-default, eldoc-get-fnsym-args-string)
      (eldoc-highlight-function-argument, eldoc-get-var-docstring)
      (eldoc-last-data-store, eldoc-docstring-first-line)
      (eldoc-docstring-format-sym-doc, eldoc-fnsym-in-current-sexp)
      (eldoc-beginning-of-sexp, eldoc-current-symbol)
      (eldoc-function-argstring): Move to elisp-mode.el.
      (eldoc-symbol-function): Remove, unused.
      * lisp/progmodes/elisp-mode.el: New file.  Rename all "eldoc-*" to "elisp--*".
      (elisp-completion-at-point): Rename from lisp-completion-at-point.
      (elisp--preceding-sexp): Rename from preceding-sexp.
      * lisp/loadup.el: Load new file progmodes/elisp-mode.
      * lisp/ielm.el (inferior-emacs-lisp-mode): Set eldoc-documentation-function.
      * lisp/emacs-lisp/lisp.el (lisp--local-variables-1, lisp--local-variables)
      (lisp--local-variables-completion-table, lisp--expect-function-p)
      (lisp--form-quoted-p, lisp--company-doc-buffer)
      (lisp--company-doc-string, lisp--company-location)
      (lisp-completion-at-point): Move to elisp-mode.el.
      * lisp/emacs-lisp/lisp-mode.el (lisp--mode-syntax-table): New syntax-table,
      extracted from emacs-lisp-mode-syntax-table.
      (emacs-lisp-mode-abbrev-table, emacs-lisp-mode-syntax-table): Move to
      elisp-mode.el.
      (lisp-imenu-generic-expression): Add comments to document what comes
      from which Lisp dialect.
      (emacs-lisp-mode-map, emacs-lisp-byte-compile)
      (emacs-lisp-byte-compile-and-load, emacs-lisp-mode-hook)
      (emacs-lisp-mode, emacs-list-byte-code-comment-re)
      (emacs-lisp-byte-code-comment)
      (emacs-lisp-byte-code-syntax-propertize, emacs-lisp-byte-code-mode)
      (lisp-interaction-mode-map, lisp-interaction-mode)
      (eval-print-last-sexp, last-sexp-setup-props)
      (last-sexp-toggle-display, prin1-char, preceding-sexp)
      (eval-last-sexp-1, eval-last-sexp-print-value)
      (eval-last-sexp-fake-value, eval-sexp-add-defvars, eval-last-sexp)
      (eval-defun-1, eval-defun-2, eval-defun): Move to elisp-mode.el.
      * src/lisp.mk (lisp): Add elisp-mode.elc.
      e6cfa098
  5. 26 Sep, 2014 8 commits
  6. 25 Sep, 2014 11 commits
    • Juri Linkov's avatar
      * lisp/vc/add-log.el (change-log-next-buffer): Don't create an empty · b8e352d0
      Juri Linkov authored
      buffer "ChangeLog" when the current buffer doesn't match ChangeLog.[0-9].
      Return the current buffer if no files match the default pattern
      ChangeLog.[0-9].  Signal "end of multi" when file is nil.
      
      Fixes: debbugs:18547
      b8e352d0
    • Eli Zaretskii's avatar
      Don't use USE_STACK_LISP_OBJECTS on Windows with GCC older than 4.2. · 686b2196
      Eli Zaretskii authored
       src/lisp.h (USE_STACK_LISP_OBJECTS): Default to false for 32-bit
       MinGW builds that use GCC before 4.2.
      
      Fixes: debbugs:18559
      686b2196
    • Eli Zaretskii's avatar
      src/w32term.h (ALIGN_STACK): Fix a typo in last commit. · 39234ddb
      Eli Zaretskii authored
      Fixes: debbugs:18559
      39234ddb
    • Kelvin White's avatar
      Follow Emacs versioning · 68546024
      Kelvin White authored
      68546024
    • Stefan Monnier's avatar
      * lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered): Don't modify · 80067ccf
      Stefan Monnier authored
      the global vc-handled-backends.
      
      Fixes: debbugs:18535
      80067ccf
    • Dmitry Antipov's avatar
    • Dmitry Antipov's avatar
    • Eli Zaretskii's avatar
      Default to stack objects on DOS_NT platforms as well. · db61bdb1
      Eli Zaretskii authored
       src/w32term.h (ALIGN_STACK) [__GNUC__]: Define to
       __attribute__((force_align_arg_pointer)) for GCC 4.2 and later.
       src/lisp.h (USE_STACK_LISP_OBJECTS): Remove the !DOS_NT condition.
       src/w32proc.c (enum_locale_fn, enum_codepage_fn): Add the
       ALIGN_STACK attribute.
       src/w32fns.c (w32_monitor_enum): Add the ALIGN_STACK attribute.
       src/w32uniscribe.c (add_opentype_font_name_to_list): Add the
       ALIGN_STACK attribute.
       src/w32font.c (add_font_name_to_list, add_font_entity_to_list)
       (add_one_font_entity_to_list): Add the ALIGN_STACK attribute.
      db61bdb1
    • Martin Rudalics's avatar
      Remove code left dead after 2014-07-27 changes. · 340e4cce
      Martin Rudalics authored
      * frame.c (frame_inhibit_resize):
      * widget.c (EmacsFrameResize):
      * window.c (resize_frame_windows, Fset_window_configuration):
      * xdisp.c (expose_frame):
      * xfns.c (x_change_tool_bar_height):
      * xmenu.c (update_frame_menubar):
      * xterm.c (handle_one_xevent, x_new_font, x_set_window_size_1):
      Remove code left dead after 2014-07-27 changes.
      340e4cce
    • Paul Eggert's avatar
    • Paul Eggert's avatar
      Fix local_cons etc. to not exhaust the stack when in a loop. · 10381f58
      Paul Eggert authored
      Problem reported in:
      http://lists.gnu.org/archive/html/emacs-devel/2014-09/msg00696.html
      * buffer.c (Fother_buffer, other_buffer_safely, init_buffer):
      * charset.c (load_charset_map_from_file, Ffind_charset_region)
      (Ffind_charset_string):
      * chartab.c (uniprop_encode_value_numeric, uniprop_table):
      * data.c (wrong_range):
      * editfns.c (Fpropertize, format2):
      * emacs.c (init_cmdargs, decode_env_path):
      * fileio.c (auto_save_error):
      * fns.c (Fyes_or_no_p):
      * font.c (font_style_to_value, font_parse_xlfd)
      (font_parse_family_registry, font_delete_unmatched)
      (font_add_log):
      * fontset.c (Fset_fontset_font):
      * frame.c (x_get_arg):
      * keyboard.c (echo_dash, safe_run_hooks_error, parse_menu_item)
      (read_char_minibuf_menu_prompt):
      * keymap.c (silly_event_symbol_error, describe_vector):
      * lread.c (load_warn_old_style_backquotes):
      * menu.c (single_menu_item):
      * minibuf.c (Fread_buffer):
      * process.c (status_message, Fformat_network_address)
      (server_accept_connection):
      * textprop.c (copy_text_properties):
      * xdisp.c (Fcurrent_bidi_paragraph_direction):
      * xfns.c (x_default_scroll_bar_color_parameter):
      * xfont.c (xfont_open):
      * xselect.c (x_clipboard_manager_error_1):
      * xterm.c (x_term_init):
      Put USE_LOCAL_ALLOCA at the start of the function.
      * fns.c (maybe_resize_hash_table): Use build_string instead of
      build_local_string, since we'd otherwise need a conditional
      USE_LOCAL_ALLOCA here, but this is just debugging output and is
      not worth the bother of optimization.
      * font.c (font_delete_unmatched): Remove by-hand code that
      observed MAX_ALLOCA limit, since it's now done automatically.
      * keymap.c (Fsingle_key_description): Put USE_SAFE_ALLOCA at top,
      since build_local_string needs its sa_alloc.
      * lisp.h (lisp_word_count): New function.
      (SAFE_ALLOCA_LISP): Use it.
      (USE_LOCAL_ALLOCA): New macro.
      (local_cons, make_local_vector, make_local_string):
      Observe the MAX_ALLOCA limit.
      (LISP_STRING_OVERHEAD): New constant.
      (make_local_string): Use it.
      10381f58